POS へのアクセス
WCPOS の機能へのアクセスを制御するには、WordPress の権限とユーザーの役割を使用できます。ユーザーに特定の役割を割り当て、その権限を設定することで、POS ユーザーごとにアクセスレベルを調整できます。WCPOS プラグインは既存の WordPress の役割と統合され、レジ係専用の役割を追加します。
次の表は、POS の主なユーザーの役割とそれぞれの権限を示しています。
| 役割 | 作成元 | 説明 |
|---|---|---|
| 管理者 | WordPress | すべての権限がデフォルトで有効になっているサイト所有者です。 |
| ショップマネージャー | WooCommerce | POS へのアクセスと POS 設定の管理が必要なユーザー向けの役割です。ショップマネージャーには、プラグインのインストールやその他の管理作業を行う権限がない場合があります。 |
| レジ係 | WCPOS | この役割は WCPOS プラグインによって追加され、主に POS を使用するユーザーを対象としています。レジ係はレジ操作を行えるほか、デフォルトで商品と顧客を作成および編集できます。ただし、POS 設定の変更、プラグインのインストール、ブログ投稿の作成を行うための WP Admin にはアクセスできません。これらの設定は権限ごとに厳格化または緩和できます(以下を参照)。 |
v1.10 以降、レジ係の役割には追加設定なしで商品の作成および編集権限が付与されているため、スタッフは管理者がいなくても価格を修正したり商品を追加したりできます。商品の削除はオプトインのままで、デフォルトでは付与されません。商品やクーポンの書き込みはすべて、サーバー上でユーザーの実際の WordPress 権限に照らして確認されます。サーバーが拒否した書き込みは端末上で元に戻され、レジ係に理由が表示されます。これらの権限はアクセス画面で調整できます。
ユーザーのロールと権限を割り当て・管理するには、WP Admin > POS > Access に移動します。権限の切り替えはタスク別(商品、注文、顧客など)にグループ化されているため、それぞれの効果を確認しやすくなっています。
POS設定を管理 の切り替え (manage_woocommerce_pos) は、WP Admin > POS 配下の設定ページと、その背後にある設定 API を制御します。POS ウィンドウ内の 設定 画面は別のものです。この画面にはプリンター、バーコードスキャナー、テーマ、表示オプションなど、デバイスごとの設定が含まれ、そのデバイスにのみ保存されます。また、POS を開けるすべてのユーザーが利用できます。POS設定を管理 をオフにしてもこの画面は非表示にならず、レジ担当者がここで変更した内容がサーバーに送信されることもありません。
POSの顧客リストには、どのアカウントも注文の顧客になれるため、スタッフを含むすべてのWordPressユーザーが表示されます。編集権限は閲覧権限より限定的です。管理者ではないPOSユーザーは、顧客を管理 の切り替えの状態にかかわらず、スタッフ権限を持つアカウントを編集または削除できません。スタッフとは、管理者、ショップマネージャー、他のレジ担当者、および編集者、投稿者、寄稿者などwp-adminで作成者権限を持つユーザー(権限 manage_options、manage_woocommerce、edit_users、edit_posts)を指します。POSからスタッフアカウントを変更できるのは管理者のみです。
次の表は、WCPOSプラグインに関連付けられたWordPress権限の概要です。
| 権限 | 説明 | 使用例 |
|---|---|---|
access_woocommerce_pos | WCPOSインターフェースへのアクセスを許可します。 | このオプションを有効にすると、レジ担当者にPOSへのアクセスおよび使用権限が付与され、販売時点取引を実行できるようになります。 |
manage_woocommerce_pos | WCPOSの設定と構成の管理を有効にします。 | このオプションを有効にすると、レジ担当者は支払い方法やレシートテンプレートなど、POSに関連する設定を変更できるようになります。 |
create_users | レジ担当者による新しいWordPressユーザーアカウントの作成を許可します。 | このオプションを無効にすると、レジ担当者はPOSで新しい顧客アカウントを作成できなくなります。 |
edit_others_shop_orders | 他のレジ担当者が作成した店舗注文を編集できます。 | このオプションを無効にすると、レジ担当者はPOSで別のレジ担当者が作成した店舗注文を変更できなくなります。 |
edit_product | レジ担当者が商品詳細を編集できます。 | このオプションを無効にすると、レジ担当者はPOSで利用可能な商品の詳細を変更できなくなります。 |
edit_published_products | レジ担当者が公開済みの商品を編集できます。 | このオプションを無効にすると、レジ担当者はPOSで既に公開されている商品を変更できなくなります。 |
edit_shop_orders | レジ担当者が店舗注文を編集できます。 | このオプションを無効にすると、レジ担当者はPOSで注文ステータスや顧客詳細などの店舗注文の詳細を変更できなくなります。 |
edit_users | レジ担当者が既存のユーザーアカウントを編集できます。 | このオプションを無効にすると、レジ担当者はPOSで請求先住所などの顧客アカウントの詳細を変更できなくなります。 |
list_users | レジ担当者がユーザーアカウントの一覧を表示できます。 | このオプションを無効にすると、レジ担当者はPOSで顧客を検索または選択できなくなります。 |
manage_product_terms | レジ担当者が商品カテゴリーとタグを管理できます。 | このオプションを無効にすると、レジ担当者はPOSで商品カテゴリーまたはタグを作成、編集、削除できなくなります。 |
publish_shop_orders | レジ担当者が店舗注文を公開できます。 | このオプションを無効にすると、レジ担当者はPOSで新しい店舗注文を確定して処理できなくなります。 |
read_private_products | レジ担当者が非公開商品の詳細にアクセスできます。 | このオプションを無効にすると、レジ担当者はPOSで利用可能な非公開商品の詳細を表示できなくなります。 |
read_private_shop_coupons | レジ担当者が非公開の店舗クーポンの詳細にアクセスできます。 | このオプションを無効にすると、レジ担当者はPOSで非公開の店舗クーポンの詳細を表示できなくなります。 |
read_private_shop_orders | レジ担当者が非公開の店舗注文の詳細にアクセスできます。 | このオプションを無効にすると、レジ担当者はPOSで非公開の店舗注文の詳細を表示できなくなります。 |
read | WordPress 管理画面へのアクセスを許可します。 | これを無効にすると、レジ担当者はWordPress ダッシュボードとユーザープロフィールページにアクセスできなくなります。 |
各ロールに適切な権限を割り当てることで、POS 内のユーザーごとにアクセス権限を細かく設定できます。これにより、特定の操作を実行できるユーザー、機密情報を閲覧できるユーザー、店舗に変更を加えられるユーザーを管理できます。
WordPress でのユーザーロールと権限の管理について詳しくは、WordPress Codexを参照してください。
デフォルトロールでできることの概要
デフォルトの権限設定では、POS 内の 3 つのロールは次のように動作します。
- 管理者 — POS と管理機能への完全なアクセス。
- ショップマネージャー — プラグインのインストール権限を必要とする操作(POS 拡張機能のインストールや有効化など)を除き、POS と管理機能への完全なアクセス。
- レジ担当者 — 通常の POS 販売フロー(商品の閲覧、注文の受付、支払いの処理、レシートの印刷、顧客管理)に加え、デフォルトで商品の作成と編集が可能です(削除は明示的に有効化する必要があります)。ただし、設定、ログ、店舗管理にはアクセスできません。
Pro プラグインのエンドポイント、トークンの有効期限の動作、権限エラーとトークンエラーを区別するためのヒントを含む、エンドポイントごとの完全な内訳については、ロール別エンドポイントアクセスのリファレンスを参照してください。
複数のロールを持つユーザー
WordPress では、1 つのアカウントに複数のロールを付与できます。ただし、Members などのプラグインがロール用チェックボックスを追加しない限り、プロフィール画面には表示されません。WordPress はアカウントが持つすべてのロールの権限を統合するため、2 つ目のロールだけで権限が失われることはほとんどありません。ロール編集プラグインでは動作が異なります。Members では 拒否された権限は常に付与された権限より優先する が有効になっているため、アカウントのいずれかのロールで 拒否 とされた権限は、ロールの順序にかかわらず、他のすべてのロールでの付与より優先されます。管理者であり顧客でもあるユーザーは、顧客ロールに設定されたすべての 拒否 を継承します。
表示内容は WCPOS のバージョンによって異なります。現在の WCPOS バージョンでは POS へのサインインが拒否され、不足している項目が示されます。
たとえば、上記の拒否設定を持つ「管理者+顧客」アカウントには、次のように表示されます。
このアカウントはPOSを使用できません。不足している権限: publish_shop_orders, read_private_products, read_private_shop_orders, list_users。ロールは顧客、管理者です。あるロールで拒否された権限は別のロールでの許可を上書きする可能性があり、Members などのロールエディタープラグインではその拒否が優先して適用されます。追加のロールを削除するか、ロールエディターで拒否を解除してください。
以前のバージョンでは、サインイン時に access_woocommerce_pos のみを確認していました。この権限は拒否の影響を受けないため、アカウントはサインインできても、すべての画面で失敗していました。商品や顧客は表示されず、注文も保存できません。これらのバージョンでは、影響を受けるデバイスの 店舗の状態 → ログ に、サーバーコードとともに拒否された各リクエストが記録されます。商品での woocommerce_rest_cannot_view は read_private_products が不足していることを示し、顧客では list_users、注文での woocommerce_rest_cannot_create は publish_shop_orders が不足していることを示します。これらのエントリーは AUTH201 として報告されます。
サイト管理者向け: アカウントから追加のロールを削除する(ユーザー → ユーザー一覧 を開き、アカウントを編集する)か、ロールエディターでそのロールを開き、一覧にある権限の 拒否 マークを解除してください。WP Admin の アクセス 画面には許可のみが表示されます。ロールエディターによる 拒否 はここには表示されません。ロールを修正した後、既存のPOSセッションがあるユーザーはサインアウトしてから再度サインインします。サインイン時に拒否されたユーザーは、再度サインインするだけで済みます。