FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

注文時の住所の文字数がオーバーしたときにShopifyFlowで通知メールを送りたい

解決済

注文時の住所の文字数がオーバーしたときにShopifyFlowで通知メールを送りたい

n_ogawa3
遊覧客
22 0 6

テーマは「Dawn」を使用しています。

ShopifyのプランはBasicです。

 

配送は「ヤマト運輸」を利用しており、伝票発行はヤマトのB2システムを使っています。

(ShopifyからCSVを取得→ヤマトB2にCSVを読み込ませて伝票発行→発送しています)

 

ただ、ヤマトには以下の通り住所に文字数制限があります。

(文字数がオーバーしたままCSVを取り込むとエラーになり発送作業に支障が出ています)

都道府県(4文字以内)+市区郡町村(12文字以内)+町・番地(16文字以内)

本当は、カート内で文字数制限を設けたかったのですが、以下の記事ではプラン的に厳しそうでした。

https://community.shopify.com/c/%E7%B7%8F%E5%90%88%E7%9A%84%E3%81%AA%E3%83%87%E3%82%A3%E3%82%B9%E3%8...

 

そこで、せめて事前に文字数オーバーをスタッフ側で検知して、発送前に配送住所を修正できればと思っています。

 

具体的には、ShopifyFlowを使って、注文時の配送先住所の文字数をチェック→文字数オーバーした時にスタッフに通知(メール)を送るといったことは可能でしょうか。

可能な場合、具体的なShopifyFlowの設定内容も教えていただけると助かります。

 

※その他、もっと良い方法やアプリがあればご教示いただきたいです。

 

丸投げな質問で申し訳ないのですが、どなたか教えていただけますでしょうか。

よろしくお願いいたします。

 

 

1 件の受理された解決策

Qcoltd
Shopify Partner
1214 486 465

成功

@n_ogawa3 様

 

Shopify Flowでは下記のようになるかと思います。

screenshot_20240402_04.png

 

Run codeを使った方がスマートなフローになりそうですが、まだ早期アクセスの機能であるため、昔ながらのアプローチで組んでみました。

https://help.shopify.com/ja/manual/shopify-flow/reference/actions/run-code

 

 

1. 注文情報にメタフィールド「custom.is_more_than_17_cahrs」を真偽値で、準備します。

2. Create Orderdをトリガーにします。

3. Update order metafieldsで「custom.is_more_than_17_cahrs」を更新します。

 

Valueには下記を設定します。

 

{%- assign prefecture = order.shippingAddress.province | replace: 'Aichi', '愛知県' | replace: 'Akita', '秋田 県' | replace: 'Aomori', '青森県' | replace: 'Chiba', '千葉県' | replace: 'Ehime', '愛 媛県' | replace: 'Fukui', '福井県' | replace: 'Fukuoka', '福岡県' | replace: 'Fukushima', '福島県' | replace: 'Gifu', '岐阜県' | replace: 'Gunma', '群馬県' | replace: 'Hiroshima', '広島県' | replace: 'Hokkaidō', '北海道' | replace: 'Hyōgo', '兵庫県' | replace: 'Ibaraki', '茨城県' | replace: 'Ishikawa', '石川県' | replace: 'Iwate', '岩手県' | replace: 'Kagawa', '香川県' | replace: 'Yamanashi', '山梨県' | replace: 'Yamaguchi', '山口県' | replace: 'Kōchi', '高知県' | replace: 'Kumamoto', '熊本県' | replace: 'Kyōto', '京都府' | replace: 'Mie', '三重県' | replace: 'Yamagata', '山形県' | replace: 'Miyazaki', '宮崎県' | replace: 'Nagano', '長野県' | replace: 'Nagasaki', '長崎県' | replace: 'Nara', '奈良県' | replace: 'Niigata', '新潟県' | replace: 'Ōita', '大分県' | replace: 'Okayama', '岡山県' | replace: 'Okinawa', '沖縄県' | replace: 'Ōsaka', '大阪府' | replace: 'Saga', '佐賀 県' | replace: 'Saitama', '埼玉県' | replace: 'Shiga', '滋賀県' | replace: 'Shimane', '島根県' | replace: 'Shizuoka', '静岡県' | replace: 'Tochigi', '栃木県' | replace: 'Tokushima', '徳島県' | replace: 'Tottori', '鳥取県' | replace: 'Toyama', '富山県' | replace: 'Tōkyō', '東京都' | replace: 'Miyagi', '宮城県' | replace: 'Wakayama', '和 歌山県' | replace: 'Kanagawa', '神奈川県' | replace: 'Kagoshima', '鹿児島県' -%}
{%- assign prefecture_num = prefecture | size -%}
{%- assign city_num = order.shippingAddress.city | size -%}
{%- assign address1_num = order.shippingAddress.address1 | size -%}
{%- assign count = 0  | plus: prefecture_num | plus: city_num | plus: address1_num -%}
{%- if count > 16 -%}
true
{%- else -%}
false
{%- endif -%}

 

これで、都道府県、市区町村、住所の文字数の合計が17文字以上の時に、custom.is_more_than_17_cahrsがTrueに、そうでなければFalseに設定されます。

 

4. メタフィールドの更新に時間がかかることがあるため、Waitで1分待機します。

5. custom.is_more_than_17_cahrsがTrueかどうか判定します。

このような設定になります。

screenshot_20240402_05.png

 

6. custom.is_more_than_17_cahrsがTrueであれば、Send internal emailでメールを送信します。

 

以上となります。

 

もっと簡単に設定できるアプリもあるかもしれませんが、

取り急ぎ、Shopify Flowでの実装方法をご紹介いたしました。

※十分に検証していないので、なにか不具合があるかもしれません。

 

ご参考まで。

(キュー田辺)

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

元の投稿で解決策を見る

3件の返信3

Qcoltd
Shopify Partner
1214 486 465

成功

@n_ogawa3 様

 

Shopify Flowでは下記のようになるかと思います。

screenshot_20240402_04.png

 

Run codeを使った方がスマートなフローになりそうですが、まだ早期アクセスの機能であるため、昔ながらのアプローチで組んでみました。

https://help.shopify.com/ja/manual/shopify-flow/reference/actions/run-code

 

 

1. 注文情報にメタフィールド「custom.is_more_than_17_cahrs」を真偽値で、準備します。

2. Create Orderdをトリガーにします。

3. Update order metafieldsで「custom.is_more_than_17_cahrs」を更新します。

 

Valueには下記を設定します。

 

{%- assign prefecture = order.shippingAddress.province | replace: 'Aichi', '愛知県' | replace: 'Akita', '秋田 県' | replace: 'Aomori', '青森県' | replace: 'Chiba', '千葉県' | replace: 'Ehime', '愛 媛県' | replace: 'Fukui', '福井県' | replace: 'Fukuoka', '福岡県' | replace: 'Fukushima', '福島県' | replace: 'Gifu', '岐阜県' | replace: 'Gunma', '群馬県' | replace: 'Hiroshima', '広島県' | replace: 'Hokkaidō', '北海道' | replace: 'Hyōgo', '兵庫県' | replace: 'Ibaraki', '茨城県' | replace: 'Ishikawa', '石川県' | replace: 'Iwate', '岩手県' | replace: 'Kagawa', '香川県' | replace: 'Yamanashi', '山梨県' | replace: 'Yamaguchi', '山口県' | replace: 'Kōchi', '高知県' | replace: 'Kumamoto', '熊本県' | replace: 'Kyōto', '京都府' | replace: 'Mie', '三重県' | replace: 'Yamagata', '山形県' | replace: 'Miyazaki', '宮崎県' | replace: 'Nagano', '長野県' | replace: 'Nagasaki', '長崎県' | replace: 'Nara', '奈良県' | replace: 'Niigata', '新潟県' | replace: 'Ōita', '大分県' | replace: 'Okayama', '岡山県' | replace: 'Okinawa', '沖縄県' | replace: 'Ōsaka', '大阪府' | replace: 'Saga', '佐賀 県' | replace: 'Saitama', '埼玉県' | replace: 'Shiga', '滋賀県' | replace: 'Shimane', '島根県' | replace: 'Shizuoka', '静岡県' | replace: 'Tochigi', '栃木県' | replace: 'Tokushima', '徳島県' | replace: 'Tottori', '鳥取県' | replace: 'Toyama', '富山県' | replace: 'Tōkyō', '東京都' | replace: 'Miyagi', '宮城県' | replace: 'Wakayama', '和 歌山県' | replace: 'Kanagawa', '神奈川県' | replace: 'Kagoshima', '鹿児島県' -%}
{%- assign prefecture_num = prefecture | size -%}
{%- assign city_num = order.shippingAddress.city | size -%}
{%- assign address1_num = order.shippingAddress.address1 | size -%}
{%- assign count = 0  | plus: prefecture_num | plus: city_num | plus: address1_num -%}
{%- if count > 16 -%}
true
{%- else -%}
false
{%- endif -%}

 

これで、都道府県、市区町村、住所の文字数の合計が17文字以上の時に、custom.is_more_than_17_cahrsがTrueに、そうでなければFalseに設定されます。

 

4. メタフィールドの更新に時間がかかることがあるため、Waitで1分待機します。

5. custom.is_more_than_17_cahrsがTrueかどうか判定します。

このような設定になります。

screenshot_20240402_05.png

 

6. custom.is_more_than_17_cahrsがTrueであれば、Send internal emailでメールを送信します。

 

以上となります。

 

もっと簡単に設定できるアプリもあるかもしれませんが、

取り急ぎ、Shopify Flowでの実装方法をご紹介いたしました。

※十分に検証していないので、なにか不具合があるかもしれません。

 

ご参考まで。

(キュー田辺)

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

お返事が遅くなりまして申し訳ございません。

迅速なお返事ありがとうございました。

 

試しているのですが、文字数制限内でもエラー通知メールが届いてしまいます…。

一旦合計数ではなく、都道府県などの項目別で設定して検証してみたいと思います!

 

ちなみに、通知メール(Send internal email)で、都道府県、市区町村、住所のそれぞれの文字数を本文に反映することは可能でしょうか?

※以下の「(●文字)」の部分に文字数を反映させたいです。

----------------------------------

<メールイメージ>

配送先住所が長すぎる注文があります。
至急ご確認ください。


■注文番号:*****
■支払方法:shopify_payments

■氏名(16文字以内):〇〇 〇〇(●文字)
■会社名(25文字以内):〇〇会社(●文字)

■都道府県(4文字以内):〇〇県(●文字)
■市区郡町村(12文字以内):〇〇市(●文字)
■町・番地(16文字以内):*******(●文字)
■建物名等(16文字以内):*******(●文字)

※都道府県+市区郡町村+町・番地+アパートマンション名合計32文字まで

■タグ:*****
■備考:*****


※こちらのメールはShopifyに連携しているアプリ「Shopify Flow」を使って送信されています。

----------------------------------

 

配送先住所が長すぎる注文があります。<br>
至急ご確認ください。<br>
<br>

----------------------------------

■注文番号:{{order.name}}<br>
■支払方法:{% for paymentGatewayNames_item in order.paymentGatewayNames %}{{paymentGatewayNames_item}}{% endfor %}<br>
<br>
■氏名(16文字以内):{{order.shippingAddress.lastName}} {{order.shippingAddress.firstName}}<br>
■会社名(25文字以内):{{order.shippingAddress.company}}<br>
<br>
■都道府県(4文字以内):{{order.shippingAddress.province | replace: 'Aichi', '愛知県' | replace: 'Akita', '秋田 県' | replace: 'Aomori', '青森県' | replace: 'Chiba', '千葉県' | replace: 'Ehime', '愛 媛県' | replace: 'Fukui', '福井県' | replace: 'Fukuoka', '福岡県' | replace: 'Fukushima', '福島県' | replace: 'Gifu', '岐阜県' | replace: 'Gunma', '群馬県' | replace: 'Hiroshima', '広島県' | replace: 'Hokkaidō', '北海道' | replace: 'Hyōgo', '兵庫県' | replace: 'Ibaraki', '茨城県' | replace: 'Ishikawa', '石川県' | replace: 'Iwate', '岩手県' | replace: 'Kagawa', '香川県' | replace: 'Yamanashi', '山梨県' | replace: 'Yamaguchi', '山口県' | replace: 'Kōchi', '高知県' | replace: 'Kumamoto', '熊本県' | replace: 'Kyōto', '京都府' | replace: 'Mie', '三重県' | replace: 'Yamagata', '山形県' | replace: 'Miyazaki', '宮崎県' | replace: 'Nagano', '長野県' | replace: 'Nagasaki', '長崎県' | replace: 'Nara', '奈良県' | replace: 'Niigata', '新潟県' | replace: 'Ōita', '大分県' | replace: 'Okayama', '岡山県' | replace: 'Okinawa', '沖縄県' | replace: 'Ōsaka', '大阪府' | replace: 'Saga', '佐賀 県' | replace: 'Saitama', '埼玉県' | replace: 'Shiga', '滋賀県' | replace: 'Shimane', '島根県' | replace: 'Shizuoka', '静岡県' | replace: 'Tochigi', '栃木県' | replace: 'Tokushima', '徳島県' | replace: 'Tottori', '鳥取県' | replace: 'Toyama', '富山県' | replace: 'Tōkyō', '東京都' | replace: 'Miyagi', '宮城県' | replace: 'Wakayama', '和 歌山県' | replace: 'Kanagawa', '神奈川県' | replace: 'Kagoshima', '鹿児島県' }}<br>
■市区郡町村(12文字以内):{{order.shippingAddress.city}}<br>
■町・番地(16文字以内):{{order.shippingAddress.address1}}<br>
■建物名等(16文字以内):{{order.shippingAddress.address2}}<br>
<br>
※都道府県+市区郡町村+町・番地+アパートマンション名合計32文字まで<br>
<br>
■タグ:{% for tags_item in order.tags %}{{tags_item}}、{% endfor %}<br>
■備考:{{order.note}}<br>

----------------------------------

<br>
※こちらのメールはShopifyに連携しているアプリ「Shopify Flow」を使って送信されています。<br>

 

 

なお、チェックアウト画面での文字数制限は「Checkout Logic」というアプリで解決できました!

※無料版で使いたいので不格好ですが以下のように設定すると文字数オーバーの場合はエラーが出て注文ができなくなりました!

n_ogawa3_0-1713321657402.png

 

よろしくお願いいたします。

 

Qcoltd
Shopify Partner
1214 486 465

@n_ogawa3 様

 

> 試しているのですが、文字数制限内でもエラー通知メールが届いてしまいます…。

> 一旦合計数ではなく、都道府県などの項目別で設定して検証してみたいと思います!

 

左様でしたか。検証が不十分で恐縮です。

 

 

> ちなみに、通知メール(Send internal email)で、都道府県、市区町村、住所のそれぞれの文字数を本文に反映することは可能でしょうか?

> ※以下の「(●文字)」の部分に文字数を反映させたいです。

 

一例の紹介になってしまうのですが、

氏名であれば、

 

{% assign fullname = order.shippingAddress.lastName | append: " " | append: order.shippingAddress.firstName %}
■氏名(16文字以内):{{ fullname }} ({{ fullname | size }}文字)<br>

 

となるかと思います。

 

 

> なお、チェックアウト画面での文字数制限は「Checkout Logic」というアプリで解決できました!

> ※無料版で使いたいので不格好ですが以下のように設定すると文字数オーバーの場合はエラーが出て注文ができなくなりました!

 

なるほどです。

Shopify Functionsに、チェックアウトのバリデーションを行う機能もあるので、おそらくそれを利用したアプリが公開されていたのですね。

勉強になりました。

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