問題
Commerce でカタログを編集し、変更を保存しようとすると、「エラー: 必要な権限がありません」というメッセージが表示されます。 このエラーは通常、マスター カタログに通貨が設定されていない場合に発生します。 「マスター」という名前のカタログを編集すると、UI でこれを確認できます。 Liferay ログには NoSuchCurrencyException もあります。
Environment
Liferay DXP 7.3
解決策
マスター カタログの通貨設定が破損する可能性があります。 この場合、データベース内のこのエントリを手動で変更する必要があります。
これは最初にテスト環境でのみ実行してください。
CommerceCatalog テーブルで次の SQL ステートメントを実行できます。
UPDATE CommerceCatalog SET commerceCurrencyCode = 'USD' WHERE system_ = 1;
このステートメントがクライアントでサポートされていない場合は、最初に commerceCatalogId を見つける必要がある場合があります。
SELECT commerceCatalogId FROM CommerceCatalog WHERE system_ = 1;
その後、この ID でエントリを更新します:
UPDATE CommerceCatalog SET commerceCurrencyCode = 'USD' WHERE commerceCatalogId = <ID from previous statement>;
この例の commerceCurrencyCode は USD ですが、他の通貨も使用できます。
これを実行したら、Liferay を再起動するか、DB キャッシュをクリアしてください。 これが完了すると、許可の問題はもう発生しません。