draftOrderCreateで作成した注文状況ページが英語ページになってしまう

Topic summary

GraphQL の draftOrderCreatedraftOrderComplete API で作成した注文の注文状況ページが英語表示になってしまう問題について議論されています。

調査結果:

  • draftOrderComplete で注文完了すると、order.customerLocale が “en” になることが判明
  • Shopify管理画面のGUIから完了した場合は “ja” となり、日本語表示される
  • draftOrderComplete には locale を指定するパラメータが存在しない
  • customerUpdatecustomer.locale を “ja” に変更しても、order.customerLocale は更新されず効果なし

解決策:
質問者は Admin API での対応を断念し、別アプローチで解決:

  • 注文状況ページの URL に ?locale=ja パラメータを付与
  • ScriptTag 経由でブラウザの使用言語と Shopify.locale が異なる場合のみパラメータを追加するスクリプトを実装

この方法で日本語表示が実現され、解決策として共有されました。

Summarized with AI on November 22. AI used: claude-sonnet-4-5-20250929.

GraphQL draftOrderCreate APIで下書き注文作成し、draftOrderComplete APIで注文作成するアプリを作成しています。

これで作成した注文の注文状況ページの言語が英語ページになってしまいますが、日本語にする方法はありませんでしょうか?

注文状況ページは、注文確認メールのリンクや注文詳細画面の「その他操作」の「注文状況ページを表示する」から遷移できるページです。

解決策は分からなかったのですが、

調査結果をお伝えすることで質問者様が何かを閃くかもしれないため、

ご報告させていただければと思います。

下書き注文を draftOrderComplete で注文完了した場合、

そのorderの customerLocale が “en” になってしまうようでした。

なお、Shopify管理画面のGUIから注文完了した場合、

customerLocale は “ja” となりました。

そしてこの場合、注文状況ページは日本語で表示されました。

このcustomerLocaleの変化によって、

注文状況ページが英語になってしまうのかの確かな証拠はないのですが、

かなり怪しいと思っています。

次に、

customerLocaleが"en"になってしまうことが、

原因であればそうならないようにできないかと考えたのですが、

draftOrderCompleteにはそのようなパラメータはないように見えました。

また、

draftOrderCreateで下書き注文を作っても、

Shopify管理画面のGUIから下書き注文を作っても、

draftOrderCompleteで完了すると、

CustomerLocaleが"en"になることから、

下書き注文の作り方の問題でもなさそうでした。

最後に、

それならば、order.customerLocaleをAPIから変更してしまおうと考えたのですが、

どうやら、読み取り専用らしく更新もできませんでした。

参考: https://community.shopify.com/topic/1533598

なお、上記の参考にした投稿によると、customerUpdateを使ってlocaleを変更する、とあったので、試してみたのですが、

customerのlocaleをupdateしても、

order.customerLocaleがupdateされるわけではなく、"en"のままであるため、

注文状況ページは英語のままでした。

また、

customerのlocaleを"ja"にしてから、

下書き注文を作成し、

それをdraftOrderCompleteで完了しても、

order.customerLocaleは"en"になってしまいました。

さらに、この際、

Customer.localeも"en"に変化してしまうようでした。

ここまで調査した段階で私の方ではお手上げでした。

customerLocaleの変化が原因かどうかもはっきりしない報告で恐縮ですが、

何かの参考になれば幸いです。

(キュー田辺)

1 Like

@Qcoltd

調査結果、確認致しました。

ご丁寧にありがとうございます!

調査結果のとおりAdmin APIでやるのは難しいと判断したので、別アプローチで試したらとりあえずうまくいきました。

URLパラメータに「?locale=ja」を付けると日本語になるので、ScriptTag経由でブラウザ使用言語とShopify.localの言語が異なる時だけパラメータを付けるみたいなスクリプトを追加しました。

1 Like

@pop21

注文状況ページのURLにパラメータをつけることで解決できるのですね。

私たちがそれを行う必要が出てきた場合に、参考にさせていただこうと思います。

解決策のご共有ありがとうございました。