Shopifyの電話番号から国際番号を取り除いて表示する Tsun Inc.

Shopifyの電話番号から国際番号を取り除いて表示する

「RuffRuff 予約販売」は在庫切れや新商品販売前、入荷待ちなどのタイミングで発生する機会損失の削減をサポートします。
自身のShopifyストアに驚くほど簡単に予約販売を実現し、無制限での予約商品を登録および無制限で予約注文を受け付けることが可能です。また、予約商品と通常商品を同時に注文させないように制限したり、入荷時期が未定な場合は再入荷通知も可能です。
他の予約販売アプリにはない商品出荷前に支払回収できる「後払い」機能などのユニークな機能もたくさん存在します。


Tsun Inc.でCTOをしている小笠原です!
最近はShopifyのアプリやテーマの開発を行っています。
このブログではShopify開発に役立つ情報を共有していきます。
Shopifyエンジニアの方の参考になれば嬉しいです!

なぜやるのか

Shopifyで管理される電話番号(customer.phoneやshipping_address.phoneなど)は国際番号(日本であれば81)が付与されているケースがあります。
付与されるケースとしては、顧客管理画面から顧客データを編集した場合や顧客自身が入力した場合(おそらくレアケース)があります。

電話番号をストア内に表示したい場合や帳票に表示する際に国際番号を取り除いて表示したかったので方法を調べました!

Shopifyコミュニティ内の https://community.shopify.com/c/総合的なディスカッション/手動で顧客追加した際の国際電話番号への矯正に起因する国内配送サービスとの問題について/td-p/878158 で議論されているように、そもそも取り除いた状態で保存させるオプション等はないので、国際番号の除去が必要であれば表示する際に自分でやるしかなさそうです。

やりかた

Liquidで電話番号に対して下記のフィルターをかけます。

{{ shipping_address.phone | replace: '+811', '01' | replace: '+812', '02' | replace: '+813', '03' | replace: '+814', '04' | replace: '+815', '05' | replace: '+816', '06' | replace: '+817', '07' | replace: '+818', '08' | replace: '+819', '09' | replace: '+810', '0' }}

shipping_address.phone の部分は使用する電話番号に読み替えてください。

やっていることは単純で、+81が先頭に付与されていたら+81を除去しつつ、かつ0から始まらない場合は0を付与しています。(顧客管理画面から編集した場合はShopify側で0が除去されているはずですが念の為)

Liquidのreplaceフィルターが正規表現に対応していないので力技でやってます。 正規表現が使えればもっとスマートにできますが、Liquidの更新に期待しましょう。

まとめ

今回はLiquidのフィルターを使って、電話番号から国際番号を取り除いて表示する方法をご紹介しました。

今後はこういった小ネタも随時投稿していきますので、ぜひチェックしてみてください。

👆️目次はShopifyアプリ「RuffRuff 目次作成」を利用

ブログに戻る
1 6
1 3
  • 編集プロセス

    EコマースやShopifyの初学者にとって、できるだけ “やさしく” “わかりやすく” “正確に” 難しいコマース用語やマーケティング用語、ストア構築から販売までの仕組み・ノウハウを伝えることを心がけて、記事コンテンツを作成しています。

    詳しく見る 
  • 掲載情報に関して

    掲載している各種情報は、株式会社Tsunが経験および、調査した情報をもとにしています。できるだけ“最新“かつ“正確“な情報の掲載に努めておりますが、内容を完全に保証するものではありません。当サイトによって生じた損害について、株式会社Tsunではその賠償の責任を一切負わないものとします。掲載情報に誤りがある場合には、お手数ですが株式会社Tsunまでご連絡をいただけますようお願いいたします。