Liquid、JavaScriptなどに関する質問
ShopifyのGraphQL APIでバリアントごとの月次売り上げを集計する場合、どのようにするのが最適でしょうか。
NET売り上げを集計する場合、ordersを取得して、バリアントのSKUとrefundsが集計できれば良さそうだと思っているのですが、この集計方法だとordersの件数が増えたときにコストが足りなくなってしまいそうだと考えています。
query ($cursor: String) { orders(first: 250, after: $cursor, query: "updated_at:>2024-11-01 updated_at:<2024-1-01") { pageInfo { hasNextPage endCursor } nodes { id updatedAt lineItems(first: 250) { nodes { variant { sku price } name quantity } } refunds { refundLineItems(first: 250) { nodes { lineItem { variant { sku } } quantity } } } } } }
Graph QLでは一括クエリが存在しているとのことで、以下のように一括クエリにすれば良いかと考えたのですが
mutation { bulkOperationRunQuery( query: """ { orders(query: "updated_at:>2024-11-01 updated_at:<2024-1-01") { edges { node { id updatedAt lineItems(first: 250) { edges { node { variant { sku price } name quantity } } } refunds { refundLineItems(first: 250) { edges { node { lineItem { variant { sku } } quantity } } } } } } } } """ ) { bulkOperation { id status } userErrors { field message } } }
この場合、refundsのなかでさらにrefundsLineItemsを取ることができなくなってしまうようで、集計できなくなってしまいました。
"message": "リストフィールド内の接続フィールドを含むクエリは、現在サポートされていません。"
何か良い解決方法があればご教授いただければと思います。
解決済! ベストソリューションを見る。
成功
バリアントごとの月次売り上げを集計するという要件であれば、bulkOperationRunQueryを使う選択がよいと思います。
また、エラーはOrders.refundsの仕様上避けられませんので、Ordersのクエリ内でrefundsLineItemsを取得できないと思います。
解決方法ですが、上記の要件においてそもそもrefundsは必要でしょうか?
Orders.lineItems のcurrentQuantity は返品を考慮した数になっていたと思います。
成功
バリアントごとの月次売り上げを集計するという要件であれば、bulkOperationRunQueryを使う選択がよいと思います。
また、エラーはOrders.refundsの仕様上避けられませんので、Ordersのクエリ内でrefundsLineItemsを取得できないと思います。
解決方法ですが、上記の要件においてそもそもrefundsは必要でしょうか?
Orders.lineItems のcurrentQuantity は返品を考慮した数になっていたと思います。
なるほど、LineItemsの方に要件を満たすフィールドが入っているのですね。
今回の要件だとこれで問題なさそうです。ありがとうございます!
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024