shopify flowのワークフローについて

AI-generated summary

配送先住所が佐川急便の伝票制限(16文字)を超える注文を自動検知したいという質問。

背景:

  • 佐川の配送伝票には住所が16文字までしか記載できない
  • アドレス1またはアドレス2が17文字以上の場合にSlack通知を希望

提案された解決策:
Shopify Flowで以下の4ステップのワークフローを構築:

  1. トリガー: Order created
  2. Run codeアクション: GraphQLで配送先住所を取得し、JavaScriptで文字数を判定(17文字以上ならtrue)
  3. 条件分岐: Run codeの結果がtrueの場合に次へ進む
  4. Send internal emailアクション: 指定メールアドレスに通知を送信

具体的なコード例とキャプチャ画像付きで詳細な実装方法が提示され、質問者は解決策を採用して実装予定。

shopifyワークフローで以下を実現したいです。

■やりたいこと
添付画像参照。配送先住所のアドレス1またはアドレス2の文字数が17文字以上だったらslackに通知を飛ばす

■なんでやりたいか
佐川の配送伝票に記載できる住所が16文字までなので、17文字以上になってる注文があった場合に自動検知したい

どうのようなフローを組めば良いのかご教示いただきたいです。

@Anonymous_3fbd407793119651271c78a1b2f28213 様

下記のようなFlowでお届け先のアドレス1・アドレス2が17文字以上の場合、アラートのメールを送ることができるかと思います。

1.トリガー:Order created

2.アクション:Run code

入力に下記を記載

query{
  order {
    shippingAddress {
      address1,
      address2,
    }
  }
}

コードを書くに下記を記載

export default function main(input) {
  //配送住所を取得
  const Address1 = input.order.shippingAddress.address1;
  const Address2 = input.order.shippingAddress.address2;

  //それぞれの文字数を取得
  const length1 = Address1.length;
  const length2 = Address2.length;
  
  //17文字以上かどうかを判定
  const isAddress1Long = length1 >= 17;
  const isAddress2Long = length2 >= 17;

  //どちらか、または両方が17文字以上ならtrue
  const result = isAddress1Long || isAddress2Long;

  return {
    result: `${result}`,
  }
}

出力に下記を記載

"The output of Run Code"
type Output {
  result: String!
}

3.条件を設定

変数を追加から、runCode > result を設定

次のものと一致するを選択

値にtrueを設定

4.アクション: Send internal email

Email addressに通知したいメールアドレスを記載

Subjectにメールタイトルを記載

Messageに本文を記載

ご参考まで。

(キュー小坂)

キャプチャも添付いただき大変助かります。

こちらを元に実装させていただきます。

ありがとうございました!