Liquid、JavaScriptなどに関する質問
カスタムアプリでStorefront API (API ver. 2022-10) のcheckoutCreate mutationを叩いているのですが、同じmutationを渡しても成功する場合と以下のエラーが返る場合があります。
{ "data": { "checkoutCreate": { "checkout": null, "checkoutUserErrors": [ { "field": [ "input", "lineItems", "0", "variantId" ], "message": "Variant 無効です" }, { "field": [ "input", "lineItems", "1", "variantId" ], "message": "Variant 無効です" }, { "field": [ "input", "lineItems", "2", "variantId" ], "message": "Variant 無効です" } ] } } }
このエラーが返った時に叩いたAPIは以下のコードによるものです。
axios.post( `https://****.myshopify.com/api/2022-10/graphql.json`, { query: ` mutation { checkoutCreate(input: { lineItems: [{variantId: "gid://shopify/ProductVariant/********", quantity: 1}, {variantId: "gid://shopify/ProductVariant/********", quantity: 2}, {variantId: "gid://shopify/ProductVariant/********", quantity: 1}] shippingAddress: { zip: "*******", country: "Japan", province: "****", city: "****", address1: "****", firstName: "****", lastName: "****" } }) { checkout { id webUrl subtotalPrice { amount } totalTax { amount } taxesIncluded availableShippingRates { shippingRates { handle price { amount } title } } } checkoutUserErrors { field message } } } `, variables: {}, }, { headers: { "X-Shopify-Storefront-Access-Token": "****", "Shopify-Storefront-Buyer-IP": "**.**.**.**", "Content-Type": "application/json", }, }, )
一方で、同じinputで同じmutationを叩いていてもエラーにならず、checkoutCreate.checkout.idを取得できる場合もあります。
考えられる原因や解決策がありましたら教えていただけますと幸いです。
全く同じinput(variantIdも全くの同一)であるにも関わらず、
エラーが返却される場合と、されない場合がある、
ということでしたら、
この回答は役に立ちませんので、
無視していただければ幸いです。
もし、万が一、
エラーが出る場合と出ない場合でvariantIdが異なる場合は、
下記の、海外のShopifyコミュニティの投稿が参考になるかもしれません。
https://community.shopify.com/c/shopify-apis-and-sdks/checkout-create-error/td-p/1792447
checkoutCreateをコールした際、
'Variant is invalid'が時々返ってくることがある。
しかし、ShopifyのWebサイト上からは通常通り購入できる。
という質問に対して、
一般的に、
商品のステータスが「公開中」になっていないときや、
販売チャンネルが設定されていないときに、
Variant is invalidになる。
という回答がベストアンサーとして選ばれていました。
このスレッドの投稿者の場合は、
別のアプリが商品の販売チャンネルを全て無効にしてしまうことがあったようなので、
@asdeva 様の状況とマッチするか分からないのですが、
Variant 無効が発生する商品の
販売チャンネルとステータスを確認されると良いかもしれません。
なお、
Shopify Admin API GraphiQL explorer (Storefront APIのテストもできます)
https://shopify.dev/apps/tools/graphiql-admin-api
を使い質問者様からいただいたクエリをなるべく再現して何度かAPIコールしてみたのですが、
私の環境ではエラーを再現できず、
これ以上は分からなそうでした。
大した情報がなく恐縮です。
(キュー田辺)
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024