Liquid、JavaScriptなどに関する質問
・特定 vendor値のvariant id を取得したいです。
・無理ならばデータに入っている全てのvariant id を取得したいです。
■https://kenkengems.myshopify.com/admin/variants.json?fields=sku,id&limit=250&page=2
上の情報ですが、ブラウザでは表示されますが、プログラム(PHP)からのアクセスでは情報が取得できないでおります。
file_get_contentes やcurlも試しましたが、取得できません。
PHPで取得できるサンプルコード等はありますでしょうか?
■特定のproduct IDからvariant id を取得するAPIがあるのは知っています。
vendor番号から商品IDを取得するAPIはありますでしょうか?
詳しい方教えてください。
解決済! ベストソリューションを見る。
成功
■https://kenkengems.myshopify.com/admin/variants.json?fields=sku,id&limit=250&page=2
上の情報ですが、ブラウザでは表示されますが、プログラム(PHP)からのアクセスでは情報が取得できないでおります。
file_get_contentes やcurlも試しましたが、取得できません。
PHPで取得できるサンプルコード等はありますでしょうか?
上記はAPIではなく、管理画面にログインしているブラウザでしか表示されないJSONのため、
外部サーバーから読み込むことは出来ません(セキュリティ突破すれば出来ますが危険です)。
/admin/api/2020-10/products.json?fields=vendor,variants
プライベートアプリからAPIキーとパスワード取得後、上記の「Product API」を使い、
vendorとvariantsに絞って取得してみてはどうでしょうか?
https://shopify.dev/docs/admin-api/rest/reference/products/product#index-2020-10
成功
■https://kenkengems.myshopify.com/admin/variants.json?fields=sku,id&limit=250&page=2
上の情報ですが、ブラウザでは表示されますが、プログラム(PHP)からのアクセスでは情報が取得できないでおります。
file_get_contentes やcurlも試しましたが、取得できません。
PHPで取得できるサンプルコード等はありますでしょうか?
上記はAPIではなく、管理画面にログインしているブラウザでしか表示されないJSONのため、
外部サーバーから読み込むことは出来ません(セキュリティ突破すれば出来ますが危険です)。
/admin/api/2020-10/products.json?fields=vendor,variants
プライベートアプリからAPIキーとパスワード取得後、上記の「Product API」を使い、
vendorとvariantsに絞って取得してみてはどうでしょうか?
https://shopify.dev/docs/admin-api/rest/reference/products/product#index-2020-10
ありがとうございます!APIでフィールドが絞れることを知らなかったので目からうろこでした。
すみませんもう一つ壁に当たりまして、教えてください。
1ページは最大250データ取得可能のようですが、
全ページのデータを取得するには、下のようにsince_idを順番に変えて取得するしかないのでしょうか、
それとsince_idのidはproduct_id でしょうか、
/admin/api/2020-10/products.json?fields=vendor,variants?limit=250&since_id=******
よろしくお願いします。
> ?fields=vendor,variants?limit=250&since_id=
まず「?」が2つありますのでこのURLは正しくありません。引数を繋ぐのは「&」になります。
エンドポイントの「since_id」ですがプロダクトIDではなくバリアントIDです。(A商品のSサイズで白色、等)
詳しくはヘルプをご覧ください。
https://shopify.dev/docs/admin-api/rest/reference/products/product-variant
>1ページは最大250データ取得可能のようですが、
Shopifyに限らず一度に取得できる件数には制限があります。
次のページにデータがある場合は、
レスポンスヘッダ情報の中にある「rel="next"」からURLを取得し、再度リクエストすることで取得出来ます。
但し、プラン x APIの種類 で各々レート制限がありますので、
全てのデータを取得するためには、リクエスト毎にレスポンスヘッダを判別しながら、
レートを回避しながら次々とリクエストし続ける必要があります。
他にも色々な制限がありますが、詳しくはヘルプをご覧ください。
https://shopify.dev/concepts/about-apis/rate-limits
ありがとうございます。本当に助かります。
いただいた情報をもとに進めていて、添付は、レスポンスヘッダーですが、
[18]に、rel="next" があります。
次のページはこの長いURLという事でしょうか?
教えてください m(_ _)m
リエンゲージメントの自動化で売り上げ向上へ!素敵なオンラインストアを作成し、見込み顧客の携帯へ広告を直接に送信する、またはSNSなどで宣伝すると、お客様がストアに行き着...
By Mirai Mar 24, 2024Shopifyは世界で最も革新的なブランドと起業家をサポートしています。個人起業家やあらゆる規模のビジネスの成長を後押しするために、Shopify アカデミーではShopif...
By SarahF_Shopify Mar 22, 2024オンラインストア運営はとてもやりがいのある活動です。新しい注文が入った時の喜びや世界中のお客様とやりとりできる可能性、商品に対して最高のレビューをもらった時の満足感は、毎日の...
By Mina Mar 13, 2024