概要

MintJams Commerce は、MintJams CMS(JCR)を実行基盤とするヘッドレスコマースです。Shopify と双方向に連携し、イベント駆動で注文・返金・在庫・商品を処理します。処理は Camel の EIP ルート、Groovy エンドポイント、BPMN ワークフローで構成されます。

連携モデル

  • 受信(Shopify → CMS): Webhook を HMAC 検証して取り込み、トピックごとに専用ワークフロー(orders/paidproducts/createrefunds/createinventory_levels/update など)へ、その他は汎用エンティティとして正規化
  • 送信(CMS → Shopify): Admin API で在庫・価格・公開・メタフィールドを書き戻し(adminApi.enabled で制御)
  • Webhook 受信口: /content/public/commerce/endpoints/shopify/webhook.groovy(公開・HMAC 検証)

データの流れ

Shopify イベント → Webhook(HMAC 検証)
  → direct:commerce-ingest(イベントログに記録)
  → トピック別ルート または 汎用エンティティへ正規化
  → /content/commerce/... に保存
  → ルール適用(しきい値・レビュー・入荷待ち検出 など)
  → タスク/通知 または バッチ → 投影・キャッシュ
  → 送信(sync.groovy → Shopify Admin API)
  → 監査証跡 /content/commerce/sync/

データの置き場所(抜粋)

パス 内容
/content/commerce/orders/raw/{yyyy}/{MM}/order_{id}.json 受信した注文
/content/commerce/refunds/raw/{yyyy}/{MM}/refund_{id}.json 受信した返金
/content/commerce/products/product_{id}.json 商品ミラー+メタデータ+PIM オーバーレイ
/content/commerce/inventory/levels/{inventory_item_id}.json 拠点別在庫
/content/commerce/events/{source}/{yyyy}/{MM}/{eventId}.json イベントログ
/content/commerce/entities/{source}/{collection}/{id}.json 正規化エンティティ
/content/commerce/sync/{yyyy}/{MM}/sync_{epochMs}.json 送信監査証跡
/etc/commerce/config/*.yml 各機能の設定

ステータス

コンテンツには 2 つの軸のステータスが付きます。

  • commerce:status — 取り込み処理のライフサイクル(例: received / review_pending / approved / fulfilled / resolved / error
  • commerce:source_status — Shopify 側の業務ステータスのミラー(商品: active/archived/draft、注文: financial_statuspartially_refunded/refunded

主な機能領域

  1. カタログ・PIM — 商品ミラーと CMS 主導のオーバーレイ(多言語・カスタム属性・メタフィールド)
  2. 在庫 — 多拠点・動的しきい値・販売速度・欠品予測・自動発注・入荷待ち
  3. 注文・返金 — 受信、スクリーニング/レビュー、フルフィルメント、返金記録、書き戻し
  4. Storefront — ヘッドレスのカタログ公開と編集可能なランディングページ
  5. 運用ツール — ダッシュボード、ヘルスモニター、通知、突合、レポート、タスク SLA、CRM
  6. データ連携・取り込み — イベント取り込み・再実行、双方向同期

管理エンドポイント(認証あり・抜粋)

health.groovy / tasks.groovy / forecast.groovy / events.groovy / sync.groovy / pim.groovy / reconcile.groovy / reports.groovy / crm.groovy / dashboard.groovy(いずれも /content/commerce/endpoints/ 配下、/bin/cms.cgi/<workspace>/... で呼び出し)。