Liquid、JavaScriptなどに関する質問
Graph QL もしくは REST APIで、特定のcollectionの商品を全て取得したいです。
調べていたのですが、Graph QLでは、下記のように1つのコレクションに対して、商品個数を決めて商品情報を取得しているかと思います。
全ての商品IDを取得したい場合はどのような方法で取得すれば良いですか?
よろしくお願いいたします。
collection(id: "${collectionId}") { products(first: 250) { edges { node { id } } } }
補足
▼達成したいこと
カートに入っている商品が特定コレクションに入っていたら、という条件を設けたいです
→liquidではなく、カスタム・公開アプリの前提でお願いいたします。
解決済! ベストソリューションを見る。
成功
@Taito 様
下記の投稿を拝見する限りでは、2023年4月13日の時点では、1度のクエリで全ての商品を取得する方法はなかったようです。
そして、おそらく今もないので、
下記のヘルプのようにpageinfoを利用して、
クエリを何度か叩く必要がありそうです。
https://shopify.dev/docs/api/usage/pagination-graphql#forward-pagination
また、
即時性はないと思うのですが、BulkOperationを利用するという方法もあるかもしれません。
https://shopify.dev/docs/api/usage/bulk-operations/queries
上記、ご存知の上でのご質問でしたら、本回答はスルーしてください。
ご参考まで。
(キュー田辺)
成功
@Taito 様
下記の投稿を拝見する限りでは、2023年4月13日の時点では、1度のクエリで全ての商品を取得する方法はなかったようです。
そして、おそらく今もないので、
下記のヘルプのようにpageinfoを利用して、
クエリを何度か叩く必要がありそうです。
https://shopify.dev/docs/api/usage/pagination-graphql#forward-pagination
また、
即時性はないと思うのですが、BulkOperationを利用するという方法もあるかもしれません。
https://shopify.dev/docs/api/usage/bulk-operations/queries
上記、ご存知の上でのご質問でしたら、本回答はスルーしてください。
ご参考まで。
(キュー田辺)
@Qcoltd 様
お世話になっております。
ご返信ありがとうございます。
やはりそうですよね。。
ただ、下記記事を参考にコレクション内の商品を取得してみたのですが、いかがでしょうか。
const { admin, session } = await shopify.unauthenticated.admin(storeUrl);
const collectionProducts = await admin.rest.resources.Collection.products({ session, id: collectionId });
let productIds = [];
if (collectionProducts) {
productIds = collectionProducts.products.map(product => product.id);
}
今の所取得できているので、問題ないかと考えているのですが、何か問題点等ありそうでしょうか。
@Taito 様
そちらの方法ですと、250件を超えて商品情報を取得できるということでしょうか?
最初の投稿に、first:250を指定されていたのでご存知だと思いますが、
https://www.shopify.com/jp/blog/partner-graphql-rate-limits
RESTの場合、レスポンスで返ってくるのは250アイテムまでです。
とありますので、
コレクションに所属する商品の数が250以内なのであれば、
全て取得できるかと思います。
もし、250件を超えて取得できている場合は、
ドキュメントと食い違っているということになりますので、
念のため、Shopifyに問題ないか確認をとった方がいいかもしれませんね。
回答をくれる可能性は低いですがShopifyサポートにお問い合わせいただくか、
に記載のある engineering@shopify.engineering にお問い合わせいただくか、
でしょうか。
大した情報がなく恐縮です。
(キュー田辺)
@Qcoltd 様
失念しておりました。
ありがとうございます。
このあと250商品以上をテストする予定でございますので、また分かりましたらこちらに記載させていただきます。
詳細の情報までありがとうございます。
@Qcoltd 様
お世話になっております。
ご返信お待たせいたしました。
250商品以上試したところやはり不可能でした。
Graph QLを使用して、取得しようと思います。
その際、現在うまく行っていないので、またご質問させていただくかと存じます。
よろしくお願いいたします。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 7, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 30, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024