メインコンテンツにスキップ
バージョン: 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がすべての製品、バリエーション、製品カテゴリ、顧客、税率などをローカルに保存するためにダウンロードする必要があることを意味します。

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

同期するものは?

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

同期戦略

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を参照してください。