納品書のcustomer.first_nameについて

納品書をorder printerアプリで印刷しています。

顧客名を{{ customer.name }}で記載するようにしていますが、姓と名が逆になってしまっています。

{{ customer_address.first_name }}と{{ customer_address.last_name }}、{{ customer.first_name }}と{{ customer.last_name }}で表示できるか、と思いコードを変更してみましたが、何も表示されません。

なにかお分かりになる方、助けてください。

※注文者名を表示させる{{ billing_address.last_name }} {{ billing_address.first_name }}だと、amazonPay支払い且つギフト配送のときに、配送先情報に注文者情報が上書きされるため、billing_addressでもNGです。

コミュニティ内に同様のご質問とその回答があるようですが、

https://community.shopify.com/c/shopify-%E3%82%A2%E3%83%97%E3%83%AA/order-printer-%E3%81%A7%E9%A1%A7%E5%AE%A2%E5%90%8D-customer-name-%E3%82%92%E5%A7%93%E5%90%8D%E9%A0%86%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84/td-p/1192055

{{ billing_address.last_name }}

{{ billing_address.first_name }}

だけでなく、

{{ shipping_address.last_name }}

{{ shipping_address.first_name }}

でも、

質問者様のご希望に沿わないのかもしれませんね。

かなりトリッキーなやり方になってしまいますし、

使用するのに条件が発生してしまいますが、

下記でも対応できるかと思います。

{% assign customer_name_array = customer.name | split: " " %}
{{ customer_name_array[1] }} {{ customer_name_array[0] }}

これを使用する条件とは、

first_nameとlast_nameに半角スペースが含まれない、

ことになります。

first_nameかlast_nameもしくはその両方に、半角スペースが含まれてしまいますと、

上記の方法では正しくお名前を出力できません。

いずれにしてもベストプラクティスからは程遠いので、

他の方の回答も待たれると良いかと思います。

(キュー田辺)

返答くださりありがとうございます!

ほとんどの方が日本名のお客様なので、教えていただいた方法でやってみます。ありがとうございました!

つい対処療法をお教えしてしまいましたが、

Order Printerの制作者であるShopifyに問い合わせをする方が、

ベストかもしれません。

(対応してくれるかは分かりませんが。。。)

ご質問内容の通り、Shopifyのドキュメントによると、customerオブジェクトは、first_nameとlast_nameを持ちます。

https://shopify.dev/api/liquid/objects/customer#customer-last_name

https://shopify.dev/api/liquid/objects/customer#customer-first_name

これらが、Shopify自身が制作しているアプリで使用できないのは、おかしいため、

アプリストアからお問い合わせいただくか、

https://apps.shopify.com/order-printer?locale=ja

(※「サポート」に「サポートに連絡する」というフォームがあります。)

Shopify自体のサポートにお問い合わせいただくと、

https://help.shopify.com/ja/questions#/login

かなり可能性は低いですが、もしかしたら、

customer.first_nameとcustomer.last_nameを使用できるようにしてくれるかもしれません。

(キュー田辺)

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

サポートに聞いてみますね。対応してくださるといいのですが…