前提・実現したいこと
shopifyのproducts.jsonで、{{ product.handle }}が見つかるまでページネーションさせるjsを作りたいのですが、検討もつきません。。。
https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250
で{{ product.handle }}が見つかるまで、?page=1,2,3...というページネーションを繰り返させたいです。
該当のソースコード
jsの基本構造をよくわかっていないと思いますので、訳のわからないことしていると思います...汗
var num = 1; var collection = for (let step == null; step !== null; step++) { if ( str.indexOf('{{ product.handle }}') != -1) { var page = 'https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250?page='+(num++); } }
###ソースコードの全文
/////SKU取得以降のコードは問題なく動いています。
products.jsonで取得できる商品数が最大250商品のため、2ページ目以降に表示される商品情報の取得をなんとかして成功させたいです。
<script> var num = 1; var collection = for (let step == null; step !== null; step++) { if ( str.indexOf('{{ product.handle }}') != -1) { var page = 'https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250?page='+(num++); } } /////SKU取得 var obj_this_page = this; var obj_all_products = {}; jQuery.getJSON(collection, function(all_products) { console.log(all_products); obj_all_products = all_products; }).then( function( all_products ){ Object.keys(all_products.products).forEach(function (key) { product = all_products.products[key] var product_handle = product.handle; var current_handle = "{{ product.handle }}"; var current_handle_array = current_handle.split("-",2); var current_handle_prefix = current_handle_array[0]; var product_style_switch = current_handle_array[1]; var switch_handle = current_handle_prefix + '-' + product_style_switch; console.log( "product_handle : "+product_handle ); console.log( "current_handle : "+current_handle ); console.log( "current_handle_prefix : "+current_handle_prefix ); console.log( "product_style_switch : "+product_style_switch ); console.log( "switch_handle : "+switch_handle ); console.log( "" ); var src_colorSelecter =""; var product_img = product.images.length; var title = product.title.split(" "); if (product_handle.indexOf(current_handle_prefix) !== -1) { console.log( product ); if ( product.handle == "{{ product.handle }}" ) { src_colorSelecter += '<div class="other_color current_item">'; }else{ src_colorSelecter += '<div class="other_color">'; } if ( product_img == 0){ src_colorSelecter += '<a href=\"/products/'+product.handle+'\"><img src=\"https://cdn.shopify.com/shopifycloud/shopify/assets/no-image-50-3d8cc48bd078edcd544c8d60f929ed2d8800a3fc52e0f602e84b1767e392bfcd_1728x.gif\"></a><br /><span>'+title[title.length - 1]+'</span></div>'; } else { src_colorSelecter += '<a href=\"/products/'+product.handle+'\"><img src=\"'+product.images[0].src.replace(/-ue.jpg/,'-ue_360x.jpg')+'\"></a><br /><span>'+title[title.length - 1]+'</span></div>'; } console.log(product.current_handle_switch); $('#wrap_other_color').append(src_colorSelecter); } else {} }); } ) </script>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/05 23:51 編集
2022/01/06 01:45
2022/01/06 04:48