メインコンテンツにスキップ
バージョン: 1.x

商品の同期

WCPOS は各デバイスに商品のローカルコピーを保持します。そのため、カタログの閲覧と検索は瞬時に行われ、オフラインでも動作し続けます。このガイドでは、商品がどのようにデバイスに取り込まれ、どのように最新の状態に保たれるかを説明します。

v1.10.0 での変更

v1.10.0 では新しい同期エンジンが導入されました。ご利用の POS が v1.10.0 より前の場合は、後述の v1.10.0 での変更点を参照してください。

商品がデバイスに取り込まれる仕組み

  • カタログのシードがバックグラウンドで実行されます。 初回起動時から、POS はスケジュールに従ってカタログを小分けにダウンロードします。ユーザーが何かをする必要はありません。最初の商品が取り込まれた時点で販売を開始できます。チェックアウトはダウンロードの完了を待ちません。
  • 表示しているものはオンデマンドでダウンロードされます。 検索、カテゴリーによる絞り込み、バーコードのスキャンを行うと、該当する商品がまだローカルにない場合は直接取得されます。検索が無関係な商品まで一緒に引き込むことはなくなり、求めたものだけを取得します。
  • 更新は変更チェックによって届きます。 商品がローカルに保存された後、POS は変更の有無を調べるために再ダウンロードすることはありません。軽量な変更ログをポーリングし(デフォルトのプリセットでは60秒ごと)、実際に変更されたものだけを取得します。更新のない店舗では、ほとんど負荷のかからない「変更なし」の応答が1回返るだけです。

バッチの大きさは?

デフォルトでは、POS は 一度に50件の商品 をリクエストします。これは固定の定数ではなくなり、ストアヘルス → パフォーマンス の同期プリセットで設定される2つのダイヤルのうちの1つです。

プリセットチェック間隔リクエストあたりのレコード数
Eco5 分25
Balanced(デフォルト)60 秒50
Realtime10 秒75

小さなバッチはサーバーを保護するために存在します。大きなページの生成には実際のサーバー時間がかかり、共有ホスティングではストアフロントが遅くなったり、レート制限に達したりする可能性があります。控えめなホスティングでは Eco を、強力なホスティングで複数のレジを運用する店舗では Realtime を選択してください。詳細はストアヘルスを参照してください。

ダウンロードの進捗を確認する

ストアヘルス → データベース を開くと、コレクションごとに、このデバイスにあるレコード数とサーバー上のレコード数がカバレッジバーとともに表示されます。サーバー上 の数値はサーバーが実際に報告した合計です。POS がまだ確認中の場合は、推測値ではなく 確認中… と表示されます。

商品のバーが途中までの場合は、単にシードが完了していないだけで、バックグラウンドで引き続き埋まっていきます。特定の商品が見当たらない場合は、その商品を検索してください。検索によって直接取得されます。

ヒント

コレクションが止まっているように見える場合は、すべてのローカルデータのクリアという全体リセットに進む前に、ストアヘルス → データベース の該当行で クリアして再ダウンロード を使用してください。

v1.10.0 での変更点

以前のバージョンでは、カタログは 使用に伴って段階的に ダウンロードされていました。検索やスクロールのたびに次のバッチが取得され、5分ごとに全件のポーリングが実行されていました。このモデルは廃止されました。v1.10.0 では:

  • カタログはスケジュールされたバックグラウンドのシードによって埋まります。商品をダウンロードさせるために検索やスクロールをする必要はありません。
  • 検索は、任意の次のバッチではなく、検索条件に一致する商品を取得します。
  • 変更チェックは、5分固定の全件ポーリングではなく、選択したプリセットの間隔(デフォルトは60秒)で条件付きリクエストを使って実行されます。
  • ダウンロードの進捗は ストアヘルス → データベース でコレクションごとに確認できます。

開発者向けの詳しい仕組みは、同期エンジンの仕組みに記載されています。

よくある質問

商品をダウンロードするために何か操作が必要ですか?

いいえ。カタログのシードがバックグラウンドで自動的に商品をダウンロードします。検索や絞り込みを行うと、まだローカルにない特定の商品はすぐに取得されますが、ダウンロードを完了させるのは通常の閲覧操作ではなく、バックグラウンドのシードです。

商品の変更はどれくらいの速さで POS に届きますか?

デフォルトの Balanced プリセットでは、POS は60秒ごとに変更を確認します(複数のレジが同時にサーバーへアクセスしないよう、チェックのタイミングはわずかにランダム化されます)。取得されるのは変更された商品だけです。複数のレジが互いの変更をより早く反映する必要がある場合は、Realtime プリセットを使用してください。

POS ですべての商品が表示されません

いくつかの可能性があります。

  • バックグラウンドのシードがまだ完了していないだけかもしれません。ストアヘルス → データベース の商品の行を確認してください。
  • POS はデフォルトで在庫切れ商品を非表示にします。これは商品表示設定で変更できます。
  • WooCommerce REST API は標準の商品タイプ(シンプル、バリエーション、グループ化、外部)のみに対応しています。カスタム商品タイプは POS に表示されない場合があります。