注文apiについて

Topic summary

Shopifyの注文APIで、注文作成方法と注文履歴からの画像取得方法が主題。結論として、GraphQLで新規注文を作成する場合は直接の注文作成mutationではなく、draftOrderCreatedraftOrderComplete の流れが必要と整理された。REST APIだけでなく、GraphQLでも下書き注文経由で対応可能。

画像取得では、注文の lineItems から image を取得しようとした際に、Field 'image' doesn't exist on type 'OrderLineItem' というエラーが発生。サンプルクエリの確認が提案されたが、最終的に質問者側で原因を特定した。

判明した点は、注文作成時に variantId を使わないと画像情報が注文に紐づかないこと。管理画面で画像が表示されなかったのもこれが原因とみられる。variantのない商品でも variantId は存在するため、注文APIでは variantId を指定してリクエストすべき、という実務上の結論で解決している。

Summarized with AI on March 10. AI used: gpt-5.4.

注文作成はRESTapiにしかないのでしょうか?
GraphQLのmutationでは注文の更新や削除はできそうでしたが、新たに作成するものが見つけられませんでした。
また、現在顧客の注文履歴を取得しようとしているのですが、画像やskuが取得できません。
画像はそもそも注文時に画像情報を追加できていないように思えます。Shopifyの管理画面から注文履歴を見ても画像が表示されません。
OrderAPIにどのようにリクエストしたら良いでしょうか?

https://shopify.dev/docs/admin-api/graphql/reference/orders/lineitem

1.create order with graphQL

https://community.shopify.com/post/516388

graphQLの場合、

draftOrderCreate->draftOrderCompleteの流れが必要になります。

2.注文履歴から画像の取得

記載のURLにありますが、lineItem->imageで普通に取得出来ないでしょうか?

1 Like

回答ありがとうございます!

1.については理解できました。

2.lineItem->imageですと以下のエラーになります。


message: "Field 'image' doesn't exist on type 'OrderLineItem'"

以下がクエリです。


lineItems(first:100){
edges{
node{
image
}
}
}

https://shopify.dev/docs/admin-api/graphql/reference/orders/lineitem#samples

graphQLのクエリーでエラーが出ていますでしょうか?上記のテストで一度テストを頂ければ、

解消ができると思います。

1 Like

はい、sample通りにリクエストしているのですが、imageを取得しようとするとエラーメッセージが返ってきます。

titleやquantityなどは取得できるのですが、imageが取得できません。

色々試した結果variantIdで注文しないとimageは追加されないことがわかりました。

variantがない製品でもvariantIdは存在するので注文のapiにはvariantIdでリクエストすべきです。

1 Like