WooCommerceで実店舗とオンラインストアの在庫を同期する方法
2つのシステムで個別に在庫を管理していると、実店舗とオンラインの在庫数に乖離が生じます。WooCommerceでこれが起こる理由、売り越しを防ぐ同期オプション、完全なPOS同期に含まれる内容を解説します。

実店舗とオンラインストアの在庫同期における要件は1つに集約されます。両方のチャネルが同じ在庫プールから販売を行い、販売が発生した瞬間に在庫が更新されることです。それ以外の運用(毎晩のインポート、スプレッドシートのアップロード、閉店後にスタッフが手動で数値を調整するなど)では、実店舗のカウンターで1時間前に売れた商品をWooCommerceストアが誤って販売してしまう隙間が生まれてしまいます。
執筆時点のW3Techsの利用データによると、WooCommerceは他のどのECプラットフォームよりも多くのオンラインストアで採用されています¹。そして、その背後にいる事業者の多くは、店舗、市場の屋台、ポップアップストアなど、実店舗での販売も行っています。本記事では、在庫数がズレる理由、どのような同期オプションが存在するか、そして完全なWooCommerce POS同期に実際に含まれる内容について解説します。
なぜ実店舗とオンラインの在庫数に乖離が生じるのか?
在庫数がズレるのは、2つのシステムがそれぞれ固有の数値を保持し、たまにしか照合を行わないためです。POS(実店舗での対面販売を処理するシステム)はカウンターで何が売れたかを知っています。WooCommerceはオンラインで何が売れたかを知っています。手動でのデータ照合が行われるまでの間、両方のデータは不正確な状態になります。
発生する問題のパターンは予測可能です。
売り越し。今朝実店舗で売れた商品に対してオンライン注文が入ってしまうケース。返金とお詫びを行い、悪評価がつかないことを祈るしかなくなります。
データの二重入力。新しい商品を追加するたびに2回作成する必要があり、価格やSKU(追跡用の商品コード)の入力ミスが発生するリスクが倍増します。
帳簿上の架空在庫。返品、破損、数え間違いが一方のシステムにのみ記録され、もう一方に記録されないため、販売可能数が棚にある実在庫と徐々に離れていきます。
無駄な作業時間。2つの数値を一致させるために、毎週のようにスプレッドシートのエクスポート、インポート、目視確認に時間を費やすことになります。
販売数が少なければ単なる煩わしさで済みますが、規模が大きくなると、返金対応の追われ、実際には棚にあるのに「在庫切れ」と表示されて売上機会を逃し、在庫レポート自体を信用できなくなってしまいます。

WooCommerceの在庫を同期するための選択肢とは?
大きく分けて3つのアプローチがあり、主な違いは「売り越しが発生する時間枠の大きさ」にあります。
手動更新。店舗で商品が売れるたびにWooCommerceの在庫を手動で調整します。費用はかからず、一点ものを12個だけ販売するような露店には十分です。しかし、手動で行えないほど忙しくなった日に破綻し、まさにその日に売り越しが発生します。
定期実行型のコネクタ。多くのPOSシステムは、サードパーティ製のミドルウェア(2つの間でデータを仲介する別料金のサービス)を通じてWooCommerceと接続し、15分ごと、1時間ごと、あるいは毎夜などのタイマーで同期します。手動よりは改善されますが、動きの早い商品では同期のタイムラグ中に売り越しのリスクが残ります。さらに、同期が静かに失敗した際に調査すべきサブスクリプションとベンダーが1つ増えることになります。
リアルタイム(イベント駆動型)同期。POSとWooCommerceが直接連携し、変更が発生した瞬間にデータがプッシュされます(イベント駆動型とは、スケジュールではなく販売ごとに更新が走ることを意味します)。店舗カウンターでの販売によってオンライン在庫が即座に減算され、その逆も同様に行われます。タイマーもミドルウェアもタイムラグも存在しません。
取扱商品が一点ものやSKUごとに1点限りの場合、または商品の動きが早い場合、この3つ目の選択肢だけが実質的に売り越しリスクを解消できる方法です。
完全なWooCommerce POS同期に含めるべき内容とは?
在庫データだけでは不十分です。なぜなら、在庫の不整合は通常別の場所から発生するからです。完全な同期では以下の4つのデータ種別をカバーします。
商品データ。商品名、価格、説明、カテゴリ、画像がWooCommerceからPOSへ連携され、カタログが1つだけ存在する状態を保ちます。
在庫データ。両方のチャネルがリアルタイムで単一の在庫プールから減算を行います。
注文データ。Web注文が店舗売上とともにPOSのレポートに反映され、売上と在庫の動きが一元管理されます。
顧客データ。重複することなく、チャネルをまたいで顧客プロフィールが統合されます。
仕組みについても確認しておきましょう。同期がイベント駆動型かタイマー型か、大量のカタログの初回インポート処理方法、同期する商品カテゴリを選択できるか、複数店舗の管理方法(どの店舗の在庫がWebストアに供給されるか)などです。これらの回答によって、単なる機能リストのチェックボックスと、実用的な統合機能の違いが見えてきます。店舗カウンターでの在庫管理に関する全般的な概要についてはPOS在庫管理を、システム構成の検討段階であればECストアに適したPOSシステムの選び方をご覧ください。

FinalはどのようにWooCommerceと同期するのか?
FinalのWooCommerce拡張機能は、私たちが把握している限り、あらゆるPOSアプリの中で最もフル機能のWooCommerce同期を提供しています。4つのデータ種別(商品、在庫、注文、顧客)すべてが、スケジュールではなくリアルタイムのイベント駆動型で同期されます。Merchant Hubから拡張機能をインストールし、WordPressサイトにFinal POSプラグインをインストールして、認証キーを1つ貼り付けるだけで両者が接続されます。ステップバイステップ設定ガイドで順を追って説明しています。大きなカタログの場合は、初回のインポートに1時間以上かかることを見込んでおいてください。
知っておくべき2つのポイントがあります。まず、同期する商品カテゴリ、顧客、注文履歴を選択できるため、すべてか無かという全件インポートを強制されることはありません。また、複数店舗がある場合、Webストアは指定した1つの店舗の在庫から引き落とし、他の店舗は独立して在庫を管理します。必要に応じて在庫移動機能を使って拠点間で在庫を移動できます。
それで、実店舗とオンラインの在庫を同期させるにはどうすればよいか?
1つのカタログ、1つの在庫プール、スケジュールではなくイベントごとの更新、そして注文と顧客データの統合です。判断基準はシンプルです。「同期がタイマーで動いているなら、すでにどこかで在庫数にズレが生じています。まだ気づいていないだけです。」 WooCommerceをフロントストアとして使用している場合、Final POS WooCommerce拡張機能は実店舗カウンターとウェブサイトの在庫数値を一致させる最も迅速な方法です。
よくある質問
WooCommerceは単体で在庫管理ができますか?
はい、WooCommerceにはオンライン販売向けの在庫管理機能が組み込まれていますが、対面販売の動きは把握できません。両方のチャネルで同じ在庫数から差し引くには、POS統合が必要です。
WooCommerceとPOSの間でどのデータを同期すべきですか?
商品、在庫、注文、顧客の4つのデータタイプです。在庫のみの同期では、カタログの重複やレポートの分散が発生してしまいます。
WooCommerceの在庫同期はどれくらいの頻度で実行すべきですか?
理想的にはスケジュール実行ではなく、イベントベースの同期です。変更が発生した瞬間にデータを送信することで、定期同期で発生しがちな売り越し(オーバーセル)のリスクを排除できます。
WooCommerceと完全に同期できるPOSはどれですか?
FinalはWooCommerce拡張機能を通じて、商品、在庫、注文、顧客のデータをリアルタイムでWooCommerceと同期します。これにより、WooCommerceで利用可能な最も機能が充実したPOS同期を提供しています。
WooCommerceの同期は複数の店舗拠点がある場合どのように動作しますか?
通常、Webストアは1つの拠点の在庫プールに紐付けられます。Finalでは、他の店舗拠点は独立して在庫を管理し、必要に応じて拠点間での在庫移動を行って商品を移動します。
