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

アーキテクチャ

このページでは、開発者や上級ユーザーのために、WCPOSの技術的なアーキテクチャについて説明します。

二部構成システム

WCPOSは二部構成のシステムとして設計されています:

  1. PHPプラグイン: サーバー上にホストされる比較的小さなプラグインで、WooCommerce REST APIを拡張します。

  2. JavaScriptクライアント: ブラウザやデスクトップアプリでローカルに実行され、後にiOSおよびAndroidアプリでも使用されます。

これは二つの別々の世界として考えることができます:

  • _PHPの世界_では、データ管理がWordPressとWooCommerceを使用して行われます。
  • _JavaScriptの世界_では、ローカルにWooCommerceストアが再現され、迅速な検索とオフライン使用のために最適化されています。
SVG not found

データ同期

データは、WooCommerce REST APIを使用してWooCommerceから取得されます。これは、POSがすべての製品、バリエーション、製品カテゴリ、顧客、税率などをローカルに保存するためにダウンロードする必要があることを意味します。

初期のダウンロードには時間がかかることがありますが、一度ダウンロードが完了すれば、サーバーから継続的に取得する必要なく即座に利用可能です。

何が同期されるのか?

  • 製品とバリエーション
  • 製品カテゴリとタグ
  • 顧客
  • 税率と税クラス
  • 支払いゲートウェイ(チェックアウト用)
  • 注文(プロの注文履歴用)

同期戦略

WCPOSは増分同期戦略を使用しています:

  1. 初回同期: 最初のロード時にすべてのデータをダウンロード
  2. 増分更新: 最後の同期以降の変更のみを取得
  3. バックグラウンド同期: 定期的に更新を確認
  4. 手動同期: ユーザーはいつでも同期をトリガーできます

アーキテクチャの利点と欠点

良い点 😊悪い点 😟
ローカルデータの検索は瞬時データの同期を保つのが難しい
キャッシュされたデータがオフラインで利用可能WooCommerce REST APIに制限される
デスクトップ、iOS、Android向けのより良いネイティブアプリを作成できるWordPressテーマやフックはPOSアプリをカスタマイズできない

ローカルデータベース

JavaScriptクライアントはIndexedDBにデータを保存します。これはブラウザベースのデータベースです。これにより、次のような利点があります:

  • 永続性: データはブラウザの再起動後も存続します
  • パフォーマンス: ネットワーク遅延なしで高速クエリが可能
  • オフラインブラウジング: キャッシュされたデータはインターネットなしでアクセス可能

チェックアウトアーキテクチャ

チェックアウトプロセスは、WooCommerceの注文お支払いページを読み込むiframe/webviewを使用します。このアプローチは:

  • 既存の支払いゲートウェイを活用: すべてのWooCommerce支払いゲートウェイがPOSで機能します
  • セキュリティを維持: 支払い処理はWooCommerceの安全なインフラストラクチャを通じて行われます
  • 複雑さを減少: 支払いゲートウェイの統合を再実装する必要がありません

API拡張

PHPプラグインは、POS固有の機能のためにWooCommerce REST APIを追加のエンドポイントで拡張します。詳細についてはWooCommerce REST APIを参照してください。