メタフィールドの自動更新方法について

Topic summary

注文管理のメタフィールドを使用して出荷日を自動更新する方法についての質問です。

現状の課題:

  • 出荷日の項目を手動で更新する必要があり、1日数百件の注文がある場合に作業負担が大きい
  • 注文時刻に基づいた自動更新を希望(例:11/6 15時以降~11/7 14時59分までの注文は翌営業日の11/8に発送)

提案された解決策:

  • Shopify Flowアプリを使用した自動更新フローが提案されました
  • 注文作成時刻(createdAt)を基準に、15時前後で翌日または翌々日を出荷日として設定するLiquidコードが提供されています
  • metafieldのnamespaceとkeyは質問者の設定に合わせて変更が必要

残された課題:

  • 土日祝日などの非営業日が存在する場合の処理方法は未解決
  • 実際の発送済み状態との整合性確認や、Fulfillment Createdをトリガーにする方法も検討の余地があると指摘されています
Summarized with AI on November 25. AI used: claude-sonnet-4-5-20250929.

注文管理の注文内容の項目にメタフィールドを使用して出荷日を作成いたしました。

現在、出荷日の項目は手動で更新する必要があり、1日数百件の注文が入った場合、手動で出荷日を更新するのが手間になってしまうと考え、Shopifyフローのアプリを使用して、メタフィールドの出荷日欄を自動更新する方法がないかを確認させていただきたく、ご連絡させていただきました。

ちなみに出荷日の考え方として、下記になります。

例:11/6の15時以降の注文~11/7の14時59分59秒までの注文を翌営業日(11/8)発送。11/7の15時以降の注文~11/8の14時59分59秒までの注文を11/9発送

下図のようなフローではいかがでしょうか?

metafieldのnamespaceとkeyは、質問者様が設定した内容にご変更ください。

また、Valueの内容は下記です。

{% assign one_day = 1 | times: 24 | times: 60 | times: 60 %}{% assign two_day = 2 | times: 24 | times: 60 | times: 60 %}{% assign createdTime = order.createdAt | date: '%k' | plus: 9 %}{% if createdTime > 23 %}{% assign createdTime = order.createdAt | minus: 24 %}{% endif %}{% if createdTime < 15 %}{{ order.createdAt | date: '%s' | plus: one_day | date: '%Y-%m-%d' }}{% else %}{{ order.createdAt | date: '%s' | plus: two_day | date: '%Y-%m-%d' }}{% endif %}

1つ懸念がございまして、

土日祝日休日などで、営業日ではない日が存在する場合、

上記ではうまくいきません。

営業日ではない日が存在する場合は、

そのリストと、

上記の方法で決定された日付がそのリストの日付と一致するかどうかを判定し、

一致する場合は、日付をプラス1するというループ処理を追加する必要があります。

それは少し大変ですので、

もし、

実際の出荷時に、

Shopify上で、「発送済み」にされているようでしたら、

Flowのトリガーを、Fulfillment Createdに変更し、

そのcreatedAtを出荷日として設定するフローを組んだ方が間違い無いかもしれません。

ご参考まで。

(キュー田辺)

1 Like