1. Top
  2. ブログ一覧
  3. Shopify Flowで複雑な業務フローをパパッと組む

Eコマース

Shopify Flowで複雑な業務フローをパパッと組む

公開日

2024.11.21

Shopify Flowで複雑な業務フローをパパッと組むのサムネイル

EC サイトの運営を効率化するためには、業務フローの自動化が重要です。しかし、専用サーバーを用意したり、複雑なスクリプトを組んだりするのは手間がかかります。特に中小規模の事業者にとっては、運用負担が大きくなりがちです。そんな中、Shopify Flow は手軽に利用できる自動化ツールとして注目されています。本記事では、実店舗受け取り型の BOPIS(Buy Online, Pickup In Store)運用における課題を例に、Shopify Flow を活用した効率化の方法を解説します。

BOPIS 運用の課題と解決策

BOPIS は、オンラインで注文した商品を実店舗で受け取る仕組みです。これにより、顧客は送料を節約できるだけでなく、商品の受け取り時間を柔軟に選べるため、利便性が向上します。また、店舗側も在庫管理が効率化され、オンラインとオフラインの売上を統合的に管理できるメリットがあります。しかし、便利な反面、受取準備完了後にお客様が一度も来店せず、商品が店舗に放置されるケースが問題視されています。

このような未回収商品が増えると、在庫管理が複雑になり、店舗運営に支障をきたします。そこで、店舗在庫を最適化するため、ストア規定として一定期間を過ぎた未回収商品を廃棄する方針を設定しました。この新たな規定に基づき、未回収注文の自動判定とタグ付けを行うフローを構築して管理を効率化しました。

従来、このようなフローを実現するには、以下の手順が必要でした:

  • カスタムアプリを作成する
  • サーバーを用意して運用する
  • 定期実行の仕組みをキューで構築する
  • エラー検知と通知機能を実装する

これらの作業にはコストがかかり、運用後のメンテナンスも課題です。そこで、Shopify Flow を利用することで、サーバーレスかつ簡易な設定で問題を解決しました。

Shopify Flow とは

Shopify Flow は、Shopify が提供する自動化ツールです。特定のイベントをトリガーに業務フローを設定でき、コードを書く必要がありません。Flow の特徴的な機能には以下が含まれます:

  • トリガー:注文の更新やタグの追加など、イベントを起点にフローを開始
  • アクション:タグ付け、メール送信、Webhook の呼び出しなどの操作を自動実行
  • 条件分岐:特定の条件に基づいて異なるアクションを実行

これらを活用して、BOPIS 運用の課題を解決するフローを構築しました。

実装フローの概要

受取準備通知済タグと保管期限の設定

まず、受取準備通知済の通知をフックとして、以下の設定を行います:

  1. 「受取準備通知済」タグを注文データに追加
  2. 保管期限をメタフィールドに記録

「受取準備通知済」タグを付与します。

image

続いてメタフィールドを設定します。 Flow では、Liquid を利用して動的に値を設定できます。また、date_plusタグを使用することで、受取準備完了通知日から 10 日後の日付を自動計算し、メタフィールドに保存します。メタフィールドは日時型もサポートしているため、保管期限を時刻として記録しました。

メタフィールドの設定例: image

アクション: image

全体のフローは以下の通りです:

image

実行すると注文データに10日後の時間が入ることを確認できました。 image

保管期限切れ注文をコレクションするフロー

次に、毎日午前 11 時に保管期限切れをチェックするフローを設定します。ここでは Flow のスケジュール実行機能を利用します。 以下のようにタイムゾーンを指定して、開始日時と毎日フローを実行するスケジュールを設定します。

image

次に、以下の条件に基づいて注文データを取得します:

  • 店舗受け取りの注文
  • 「受取準備通知済」タグがある
  • 「保管期限切れ」タグがない
  • 注文作成日から 10 日経過

これにより、受取準備通知済の未回収の BOPIS 注文を絞り込むことができます。Flow の制約として、一度に最大 100 件の注文しか取得できませんが、実運用では十分対応可能な件数でした。

image

続いて、期限切れ注文に対して「保管期限切れ」タグを付与します。この処理は、Flow のループ実行機能を活用して、各注文の保管期限を個別にチェックすることで実現しました。比較には Flow の実行時刻変数scheduledAtを使用し、注文データのメタフィールドに記録された保管期限と比較します。 タグづけは「Add Order Tags」アクションを使用し、保管期限切れの注文に「保管期限切れ」タグを付与します。

条件: image

アクション: image

全体の FLow は以下の通りです:

image

順次タグづけされれば、注文一覧画面のタグフィルターで保管期限切れの注文を確認できます。ビューとして保存しておけば、運用担当者が簡単に確認できるため、在庫管理の効率化につながります。

image

Shopify Flowデバッグ機能

Shopify Flowには、業務フローのデバッグを効率的に行うための便利な機能が備わっています。これにより、フローの動作状況をリアルタイムで確認し、問題が発生した場合でも迅速に対処できます。以下に、主なデバッグ機能を紹介します。

実行履歴の確認

Flowでは、すべてのフロー実行履歴が記録されます。各フローの実行状況やその結果は、Shopify管理画面のFlowセクションから確認可能です。実行履歴には以下のような情報が含まれます:

  • フローがいつ開始されたか
  • 各ステップでの条件判定やアクションの結果
  • フローが成功したか、失敗したか

これにより、正常に処理が進んでいるかを簡単に追跡することができます。

エラー確認

フローが失敗した場合、どのステップでエラーが発生したのか、具体的な原因が表示されます。たとえば、条件分岐で不正なデータが入力された場合や、APIリクエストが失敗した場合など、エラーの詳細がわかるため、迅速に修正できます。エラー内容はログ形式で表示されるため、問題箇所を正確に特定できます。

再実行機能

失敗したフローは、管理画面から手動で再実行することが可能です。特に一時的なエラーやネットワークの問題でフローが中断された場合、この再実行機能が役立ちます。再実行時には、フロー全体を再実行するのではなく、失敗したステップから再開することも可能です。これにより、効率的にエラー処理を行えます。

メール通知やWebhookの活用

エラー発生時にメール通知を設定したり、Webhookを利用して外部システムにアラートを送信することもできます。これにより、エラーが発生した際に即座に気づき、対応を始めることができます。

デバッグの利便性

Shopify Flowのデバッグ機能は、複雑な業務フローを運用する上で非常に重要です。実行履歴やエラー内容を簡単に確認できるため、トラブルシューティングの効率が向上します。また、再実行機能を活用することで、問題を素早く解決し、フローの安定性を保つことが可能です。

これらのデバッグ機能を活用すれば、業務フローの自動化だけでなく、継続的な運用管理もスムーズに行えるでしょう。

最近の新機能の活用

Shopify Flow には、業務効率化のための新機能も続々と追加されています。ここでは、今年追加された以下の機能を紹介します。 なお、以下の機能は本件のフローには too much で利用していませんが、今後の運用に活用することで、より高度な自動化を実現できるでしょう。

Run Code アクション

Run Code アクションは、JavaScript を利用してデータの加工や整形を行える機能です。例えば、保管期限切れ判定のロジックを Run Code で実装し、注文データ一覧から必要な情報を絞り込むことができます。 Run Code は以下の構成となっています。

  • Input Data: フローから受け取るデータ。 GraphQL の形式で必要なフィールドを指定
  • Code: JavaScript でデータの加工処理を記述
  • Output Data: フローに返すデータ。 GraphQL の形式で必要なフィールドを指定

これらを組み合わせて取得した注文データから保管期限切れの注文を抽出する処理を Run Code で実装しました。 console.log でデバッグ情報を出力することも可能です。 次の説明のためにメタフィールド以外に id と tags を取得しています。

image

Admin Request アクション

Admin Request アクションは、Shopify Admin API の主要な mutation を実行できる機能です。例えば、注文や商品の更新や削除などが可能です。 ここでは orderUpdate mutation を使用して、保管期限切れの注文に対して「保管期限切れ」タグを付与する処理を実装しました。

id とタグは Run Code で取得したデータを使用します。Liquid の変数を使用して、Run Code で取得したデータを Admin Request に渡します。

image

これらの機能を組み合わせることで、より複雑な要件にも対応可能です。

全体のFlowは以下の通りです。 image

Shopify Flow の利点と課題

Shopify Flow は、手軽さと柔軟性が大きな魅力です。特に、コード不要で自動化フローを構築できる点は、多くの事業者にとってメリットとなります。一方で、以下のような課題もあります:

  • テスト環境の不足:フローの動作確認にはテストストアが必要
  • AI サポートの限界:AI を利用した自動フロー変更は現時点では難しい、スクラッチ開発なら GitHub copilot などを活用できる

とはいえ、Flow の豊富なテンプレートを活用することで、多くの課題は解消できます。

まとめ

Shopify Flow は、サーバーレスかつコード不要で、業務フローの自動化を実現する強力なツールです。本記事で紹介した BOPIS 運用の例以外にも、多くのシナリオに応用可能です。ぜひ、Flow を活用して日々の運営を効率化し、ストアの生産性向上を目指してください!

参考文献

著者:青木 治人 / Haruhito Aoki
#Shopify