ConnectWiz + WooCommerce
稼働中の連携WooCommerce と双方向で同期。所有権の取り決めつきで
世に言う「Woo 連携」の多くは、取り込みボタンと祈りでできています。こちらは統制された双方向の同期です。データの領域ごとに、どのシステムが真実を持つかを自社で決めます。そして競合は黙った上書きではなく、すべて台帳に載ります。
EC
できること、正確に
ワンクリックで連携
WooCommerce の標準的な認可フローが、API キーと Webhook を自動で用意します。キーをコピーする儀式も、Webhook のチェックリストもありません。
深い取り込み
画像、カテゴリーの階層、通常価格とセール価格およびその期間、GTIN、タグ、アップセルとクロスセル、バリエーションごとの価格と画像。カタログは丸ごと届きます。名前と価格だけの骨組みではありません。
本物の書き戻し
こちらで編集した商品は、Woo へ書き戻せます。操作ごとのスイッチとリハーサルモードで統制されるので、何かが変わる前に、何が変わるかを確認できます。
項目単位の所有権
領域ごとに選べます。データを Woo に置くか、こちらに置くか、双方向で同期するか。ほかが所有する項目は理由を画面に出したうえで読み取り専用になります。原本が2つある混乱は起きません。
競合の台帳
失敗した同期も競合した同期も、解決して再試行できる目に見える台帳に載ります。棚卸しのときに黙った上書きが見つかる、ということはありません。
注文も同じ流れに乗る
Woo の注文は取得元が明記された状態で、チャットショップ、AI、API からの注文と並びます。注文の真実は、どの面から見ても1つです。
技術的な仕組み
ほかの連携が飛ばす、同期の作り込み
疑り深い連携のハンドシェイク
接続リンクは15分で期限切れになります。コールバックは何よりも先に使用済みとして記録されるので、古い認証情報で再生されることはありません。そして使うストアの URL は、自社が入力したものであって、コールバックが名乗るものではありません。
再送に強い設計
Woo は再送のたびに配信 ID を振り直します。そのため重複排除はあえて ID を無視し、メッセージの内容を鍵にします。送信側では、idempotency キーを注文自身のメタデータに載せ、検索で見つけ直します。危ないのは、書き込みは通ったのに応答が失われた場合だからです。
関連は2周目で解決
アップセルとクロスセルは、まだ存在しないかもしれない商品を指すストアの ID として届きます。そのためカタログが着地したあと、2周目で解決します。カテゴリーの階層は別途取得します。商品のペイロードは末端のカテゴリー名しか持たないからです。
通貨は一度だけ、正しく読む
Woo が通貨を公開するのは注文単位で、商品単位ではありません。そのためストアの通貨は、カタログを取り込む前にストア自身の設定から一度だけ読みます。行ごとに推測することはしません。
控えめなステータスの対応表
出荷の反映は、語彙が本当に一致する場合にだけ対応づけます。「返品」の注文を無理に翻訳することはありません。その場合は注文メモとして人に届きます。ステータスのメモは顧客通知をオフにして投稿するので、Woo が顧客に二重でメールを送ることもありません。
手で打った内容が勝つ
こちらで人が手入力した項目が、取り込みで上書きされることはありません。同期は人を尊重し、そのことを各項目の取得元カードに表示します。
セットアップ
接続のしくみ
ストアの連携
接続をクリックし、自社の WooCommerce 管理画面で承認します。キーと Webhook は自動で用意されます。
所有権の決定
データの領域ごとに、真実を持つ側を選びます。Woo か、ConnectWiz か、双方向か。
リハーサルのあと本番へ
書き戻しの操作は、まずリハーサルモードで実行します。差分に問題がなければ本番に切り替えます。
セキュリティと保証
退屈な保証
キーは自動発行、貼り付けはなし
wc-auth のフローでは、ストアがサーバー間でキーを当社に渡します。保存時に暗号化され、人がコピー&ペーストで漏らす儀式は存在しません。
Webhook はすべて検証
受信する配信には、ストアごとに当社が発行するシークレットで HMAC 署名が付き、一定時間で比較されます。偽装された「商品更新」は入口で跳ね返されます。
ストアに対して礼儀正しく
検証は通ったが処理対象でない配信にも、成功を返します。Woo は5回連続で失敗すると Webhook を無効化するからです。ストアに見限られるくらいなら、こちらで例外を吸収します。
SSRF を防ぐ送信経路
ストアの URL への呼び出しは、すべて送信ガードを通ります。悪意のある「ストアのアドレス」を使って内部ネットワークを探ることはできません。
包み隠さない但し書き
線引きを明示
決済処理は行いません
同期するのは注文です。カードへの請求は、ストアと決済事業者に残ります。そうでないふりをすると、プラットフォームは中途半端な銀行になってしまいます。
メディアも所有権に従う
Woo がコンテンツ項目を所有している領域では、こちらでは設計上読み取り専用になります。所有権の取り決めの要点は、それが当社をも縛ることにあります。
商品2,000件の上限
取り込み1回で運べるのは2,000件までです。これは明記された技術上の限界です。それより大きなカタログは、規模についての相談になります。黙ってタイムアウトするより、正直に話すほうを選びます。
注文は読むもので、複製しない
ストアの注文は、2つ目の台帳に複製するのではなく、連絡先の上にそのまま表示します(1分間キャッシュ、直近10件)。真実の置き場所を1つに保つための意図的な判断で、ここに明記しておきます。