FROM CACHE - jp_header

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

解決済
pop21
Shopify Partner
6 1 2

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

 

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

 

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

1 件の受理された解決策
pop21
Shopify Partner
6 1 2

成功

@Qcoltd 

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

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

 

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

 

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

元の投稿で解決策を見る

3件の返信3
Qcoltd
Shopify Partner
827 317 310

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

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

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

 

下書き注文を 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/c/shopify-apis-and-sdks/order-api-set-customer-language-locale-for-not...

 

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

customerのlocaleをupdateしても、

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

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

 

また、

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

下書き注文を作成し、

それをdraftOrderCompleteで完了しても、

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

 

さらに、この際、

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

 

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

 

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

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

(キュー田辺)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
https://techlab.q-co.jp/
pop21
Shopify Partner
6 1 2

成功

@Qcoltd 

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

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

 

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

 

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

Qcoltd
Shopify Partner
827 317 310

@pop21 様

 

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

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

 

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

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
https://techlab.q-co.jp/