本文へスキップ
NeoLogic
NeoLogic

店とECで最後の1点が同時に売れたら?在庫連携で先に決めること

ECと店舗が最後の1点を同時に売ろうとしたら、どちらを確定するか。2店舗とECの例で、返品、店舗間移動、連携停止まで追います。数量を確定する場所と、再開前に確かめる項目を書ける記入シート付き。

店舗とECが最後のバッグ1点を同じ在庫台帳で参照する様子

ECと店舗の在庫をそろえるには、在庫の更新元と拠点別の販売可能数を決め、注文・取消・返品・移動の反映を確かめます。

たとえば、店頭で最後の1点を販売しようとした直後、ECにも注文が入った。双方の画面には「在庫1」と出ていても、確定できるのは1件だけです。返品された商品が検品中だったり、別の店へ移動中だったりすれば、手元や社内にある数と、今売ってよい数も違います。

そのため、同時に届いた注文のどちらを受けるか、在庫の反映が止まったら販売をどう止めるか、何を確かめて再開するかを決めます。リアルタイム連携だけで売り越しゼロは保証できず、返品も受け付けただけでは販売可能に戻しません。

A店・B店とEC1店で、紺のバッグ1点を売る場面から考えます(想定例)。

販売場所と保管場所を分ける

まず「どこで注文を受けるか」と「どこに商品があるか」を分けます。販売経路はA店店頭・B店店頭・ECの3つですが、保管拠点はA店・B店の2つです。ECがA店の在庫を売る場合、その1点を「A店1点+EC1点」と足してはいけません。商品は、色・サイズまで区別する商品コード(以下、SKU)で対応付けます。数量の単位と拠点を区別する番号もそろえます。

Shopifyの拠点設定では、ロケーションに在庫を割り当て、オンライン注文の出荷対象にするかを設定できます。本例では両店をEC出荷対象とし、引当可能な拠点のうちA店を優先します。ただし出荷可否は在庫数とは別です。対象商品の取扱い、配送方法、当日の出荷対応を確認してから出荷拠点を確定します。

表1 販売経路と保管拠点の対応

販売経路 保管拠点・出荷元 確定前に見ること
A店店頭 A店 A店で注文に確保済みの数と現物
B店店頭 B店 B店で注文に確保済みの数と現物
EC1店 A店・B店(本例は両店を出荷対象) 出荷可能な拠点の残数。EC在庫を別加算しない

表1のように、販売経路に保管拠点を対応付けます。B店をEC出荷対象から外す運用なら、B店に販売可能な商品があっても、EC向けの販売可能数には加えません。店舗受取や取り寄せを認める場合は、その条件を別に決めます。

更新する元データを決める

注文の発生元はECやPOSに分かれていても、数量を最終確定する台帳は一つに定めます。本稿でいう台帳は、在庫を確定するシステム上の記録です。同時販売を許すなら、残数の確認と引当の確定を一続きで処理する仕組みが必要です。引当とは、その注文向けに在庫を確保して他へ売れなくすることです。

ECやPOSから注文と取消を台帳へ集め、商品・拠点ごとに数を確定して、各画面へ戻します。店舗の担当者は、画面の数がいつ更新されたものかを見ます。両側で別々に残数を書き換えません。図1の①〜③がこの受け渡しです。

数量は次の式で区分します。販売可能数=拠点内の保有数−引当済み数−販売不可数。本例の販売不可は返品検品中などを含み、引当済みとは重複させません。移動中の品は両店の保有数から外して別記し、到着前に加算しません。Shopifyの在庫状態でも、保有・販売可能・引当・販売不可・入荷予定を区別しています。この式は例の管理用で、製品の全状態を再現するものではありません。

既存システムから販売可能数を受け取るなら、引当や検品中の数をもう一度差し引かないようにします。マイナスになった場合も、見た目を0に丸めて完了にせず、対象注文・更新順・基準時刻を調べます。

ECと店頭の注文を共通の在庫台帳へ集め、返品検品と店舗間移動を反映して、同期失敗時は販売停止と照合を行う関係図

図1 販売経路と保管拠点を分けた受け渡し(想定例)。

最後の1点を、どちらの注文で確定するか

9月10日9時、A店に紺のバッグが1点あり、B店にはありません。直後にECと店頭から同じ1点への注文が来ます。以下の時刻は日本時間、数量は点です。

時刻 台帳での処理 店舗での対応
9:00:01 EC注文に1点を確保。販売可能数は0 店頭画面に古い「1」が残っていても、確定前に台帳へ照会
9:00:02 店頭注文の引当を拒否 販売を確定せず、商品を渡さない

EC注文に1点を確保した直後も、A店POSには古い「1」が残ります。店頭で同じ商品を売ろうとしたときは、台帳ですでに確保済みと分かるため、販売を確定せず商品も渡しません。画面更新が速いことと、複数の注文が同じ在庫を確保できないことは別の条件です。両経路が旧残数を見て先に売上や引渡しを確定するなら、この例のようには防げません。最後の1点を片方だけに割り当てる、確定前に人が確認するなどの代替運用が必要です。

最初のEC注文に1点を確保しても、A店にある現物は1点のままです。販売可能数だけが0になります。その注文を出荷前に取り消したら、梱包や出荷が止まったことを確かめ、1点を販売可能に戻します。

その後、別のEC注文に1点を確保して出荷した場合は、店の保有数と注文向けの確保数が各1点減ります。販売可能数は0のままで、出荷時にもう一度減らす必要はありません。

返品と店舗間移動では、現物がある場所も変わる

翌日、同じ商品がB店へ返品されたら、保有1・販売不可1・販売可能0と記録します。返品受付、返金、現物受領、再販売可の承認は別の出来事です。検品担当が合格を記録して初めて販売可能1へ戻します。Shopifyの調整理由には再販売できる返品の補充があり、品質確認待ちを販売不可として扱えます(出典:Shopifyの在庫数量の調整)。

検品後の1点をB店からA店へ送るときは、B店の保有数を1減らし、「移動中1」と記録します。A店が現物を受け取ったら、移動中を減らしてA店へ1点を加えます。図1の④は検品結果、⑤は移動の出発・到着です。

通信のやり直しで同じ返品や到着の知らせが二度届いても、在庫を2点増やさないことを試します。

数量が一致しても、古い反映のままなら再開しない

B店からの出発時に通知が失敗したとします。台帳の販売可能数は0ですが、ECとB店POSには古い「1」が残っています。この間に届いたEC注文は、依頼を受けた記録だけ残し、支払いも出荷も進めず保留します。自社の仕組みが決済後にしか注文を受け取れないなら、同じ方法では扱えないため、受付停止や決済後の取消対応を別途決めます。

責任者は、その商品のEC受付と両店での販売を止めます。これは同期障害とは別の管理操作で止められる前提です。停止指示も同じ故障経路に依存する場合は止められないため、チャネル側の管理画面や店舗への連絡など代替手段を用意します。旧表示が残る間も、止めたことと数量の反映成功を混同しません。

A店に商品が到着すると、ECの古い「1」と台帳の「1」が偶然一致します。それでも反映時刻は古いため、まだ再開しません。注文・返品・移動の履歴を照合し、各画面に最新の数が反映されたことを確かめます。

保留していたEC注文を取り消す際も、その注文には在庫を確保していないため、取消で1点を増やしません。未処理の注文を整理してから、責任者が再開を判断します。図1の⑥と配布チェック表に、止めた人、残っていた注文、再開時に見た内容を残してください。

標準連携で足りる条件と、個別に補う条件を比べる

Shopify POSには、Shopifyと注文・在庫を同期する仕組みがあります。外部POS、連携アプリ、独自台帳との接続は、対応範囲を別に調べます。標準連携は製品に用意された接続や既製の連携サービス、個別連携は不足する受け渡しや確認工程の開発を指し、併用もできます。

まず表2の同じケースを、利用中の製品・プラン・拠点設定で試します。標準機能で必要な状態と復旧手順まで扱えれば、それを使う判断ができます。未対応の例外が残るときだけ、業務側のルール変更と個別開発を比較します。追加開発も、接続先から取得・更新できる情報や保守体制に制約されます。

表2 利用中の製品で試すケースと、不足時の対応候補。

ケース 標準連携で足りる条件 不足時に比較する対応
SKU・拠点 色・サイズ・単位と出荷元を対応付けられる コード変換や拠点対応だけを追加
取消・返品・移動 未引当取消、検品中、到着前を区別できる 手順の変更/不足する状態の受け渡し
最後の1点 確定前に共通の残数を見て引当できる 販売枠の分離/確定前の点検工程
停止・再送・復旧 失敗検知、重複防止、反映照合まで扱える 監視・再送管理と人の再開承認を補う

自社の動作と照合する15行の記録

連携の実装担当者が決める情報

数量の差分を送るのか確定残数を送るのか、送信のきっかけ、通常の反映間隔、再送方法、最終反映時刻を決めます。注文IDだけでなく、取消・返品・移動ごとのイベントIDと処理済み記録を使い、同じ処理の再送で二重加算しないようにします。

下の表3ではR08〜R11の参照画面がEC1/A店POS0/B店POS1のままです。EC・B店POSの最終反映時刻は9月11日10:20:00。R12の照合後はEC1/A店POS1/B店POS0となります。同じ在庫の参照値なので足し合わせません。

ここまでの例を2026年9月10〜11日の記録にまとめます。各行は処理後の残高なので、行をまたいで足し合わせません。表3の引当数はその注文に残る数、表4は拠点全体の数です。更新間隔や検知までの秒数は例の仮定です。

代表となる4行は、次の状態と判断を対応させます。

記録 見ている数量・状態 取る対応
R02:店頭の引当拒否 EC注文が1点を確保済み。古い店頭表示は1点 店頭販売を確定せず、商品も渡さない
R06:返品の検品中 B店の保有1・販売不可1・販売可能0 検品合格まで再販売しない
R08〜R10:移動中に連携停止 移動中1・両店の販売可能0。ECとB店POSには古い1が残る 未引当のEC注文を保留し、別の管理経路から対象商品の販売を停止
R11:到着後の偶然一致 A店に1点が届き、EC表示も1。ただしECの反映時刻は古い 数量一致だけで再開せず、R12で反映と履歴を照合し、未処理注文を整理して再開承認
全15行の注文・時刻・在庫状態を見る

表3 注文・返品・移動の取引記録

商品コード:BAG-NV。2026年9月10〜11日、日本時間。数量は点で表し、各行には処理後の状態を書いています。

行ID SKU 拠点 販売経路 在庫状態 注文ID 更新時刻 引当数 返品検品 同期失敗
R00 BAG-NV A店・B店 共通 開始残高 — 09/10 09:00:00 0 対象外 無
R01 BAG-NV A店 EC 引当確定 E-101 09/10 09:00:01 1 対象外 未確認(遅延)
R02 BAG-NV A店 A店店頭 引当拒否・未販売 P-201 09/10 09:00:02 0 対象外 未確認(遅延)
R03 BAG-NV A店 EC 出荷前取消 E-101 09/10 09:02:00 0 対象外 無
R04 BAG-NV A店 EC 引当確定 E-102 09/10 09:03:00 1 対象外 無
R05 BAG-NV A店 EC 出荷済み E-102 09/10 09:10:00 0 対象外 無
R06 BAG-NV B店 EC返品→B店 返品受領・検品中 E-102 09/11 10:00:00 0 検品中 無
R07 BAG-NV B店 共通 返品検品合格 E-102 09/11 10:20:00 0 合格 無
R08 BAG-NV B店→A店 共通 移動出発 — 09/11 11:00:00 0 対象外 有
R09 BAG-NV 未確定(A店予定) EC 受付のみ・確定保留 E-103 09/11 11:00:05 0 対象外 有
R10 BAG-NV A店・B店 全経路 SKU販売停止 — 09/11 11:00:10 0 対象外 有
R11 BAG-NV A店 共通 移動到着確認 — 09/11 11:30:00 0 対象外 有
R12 BAG-NV A店・B店 全経路 再送・反映照合 — 09/11 11:40:00 0 対象外 復旧確認中
R13 BAG-NV 未確定(A店予定) EC 未引当注文の取消 E-103 09/11 11:42:00 0 対象外 復旧確認中
R14 BAG-NV A店・B店 全経路 再開承認 — 09/11 11:45:00 0 対象外 無

「引当数」は、その行の注文に残る確保数です。店頭で断った注文は0点ですが、A店全体では最初のEC注文に1点を確保しています。移動出発と到着の行は、同じ移動番号T-301で結びます。

同じ行IDで拠点別数量・引当・移動中を照合する

表4 拠点・状態別の数量記録

数量はすべて点。保有=拠点にある現物、不可=販売不可、可=販売可能。合計可は本例の両店合計。管理総数=A店保有+B店保有+移動中。

行ID A店保有 A店引当 A店不可 A店可 B店保有 B店引当 B店不可 B店可 移動中 合計可 管理総数 受付状態
R00 1 0 0 1 0 0 0 0 0 1 1 通常制御
R01 1 1 0 0 0 0 0 0 0 0 1 確定前照合
R02 1 1 0 0 0 0 0 0 0 0 1 確定前照合
R03 1 0 0 1 0 0 0 0 0 1 1 通常制御
R04 1 1 0 0 0 0 0 0 0 0 1 通常制御
R05 0 0 0 0 0 0 0 0 0 0 0 通常制御
R06 0 0 0 0 1 0 1 0 0 0 1 通常制御
R07 0 0 0 0 1 0 0 1 0 1 1 通常制御
R08 0 0 0 0 0 0 0 0 1 0 1 未検知
R09 0 0 0 0 0 0 0 0 1 0 1 確定保留
R10 0 0 0 0 0 0 0 0 1 0 1 停止
R11 1 0 0 1 0 0 0 0 0 1 1 停止継続
R12 1 0 0 1 0 0 0 0 0 1 1 照合中
R13 1 0 0 1 0 0 0 0 0 1 1 停止継続
R14 1 0 0 1 0 0 0 0 0 1 1 再開承認

通常制御=残数に応じて受付・引当を制限し、追加の全面停止はしていない状態。販売可能0の品は販売を制限します。移動到着後は数量が戻っても、反映が古いため停止を継続します。

在庫連携チェックのExcelシートは、「拠点設定」から埋め、次に「時系列」で注文・取消・返品・移動を追い、「停止復旧」で例外時の担当と再開条件を決めます。印刷用の停止・復旧チェックシート(PDF)も利用できます。どちらも記入例と未記入版を含みます。空欄は未確認のまま残し、数量の式が整合しても、同期成功や販売再開は別に確認してください。

まず一つの商品で、各店の現物と販売可能数を見比べてください。既製連携で不足する受け渡しが具体的になったら、製品名、拠点表、停止時の未処理例を用意して相談内容を整理します。既存POSの売上・返品や商品コードの照合が中心なら、小売店のPOS・EC・店舗業務連携の開発で対応内容を確認できます。

販売数量とあわせて、販売先ごとの説明・画像・公開状態をそろえる管理表も使えます(商品情報の一元管理|色・サイズとEC掲載の点検)。

EC・在庫・出荷の業務システム連携

参考出典

出典確認日:2026年9月15日。Shopifyの拠点設定、在庫状態、調整理由、POS同期の説明を参照しています。注文の確定方法と停止・再開の手順は本稿の運用提案です。利用中の製品・プラン・連携先で対応範囲を確認してください。

あわせて読む

状況にあわせてご相談ください

いまの状況を選ぶだけで、次に決めることが見えてきます。気になる点があれば、こちらからお返事します。