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コールしてみたのですが、
私の環境ではエラーを再現できず、
これ以上は分からなそうでした。
大した情報がなく恐縮です。
(キュー田辺)
Shopifyペイメント決済サービスを利用していて、ストアの管理画面の通知セクションに突然「Shopifyペイメントの使用を継続するために必要な情報」というバナーメッセージが表示さ...
By Mirai Dec 3, 2023すべてのShopifyアカウントはデフォルトではmyshopify.comのURLと関連付けられており、これはアカウント設定時に使用したビジネス名に基づいて作成されます。しかし、オ...
By Nina_13 Nov 26, 2023このトピックは英語版コミュニティの投稿:Shopify Web Pixel Manager Sandbox FAQの日本翻訳です。
By Mirai Nov 19, 2023