DB エンティティ (注文、請求書、クレジット メモなど)の増分 ID を変更 特定の店舗で

この記事では、Adobe Commerce Database (DB)エンティティ(注文、請求書、クレジットメモなど)の増分 ID を変更する方法について説明します ALTER TABLE SQL 文を使用して、特定のAdobe Commerce ストアに対して実行します。

影響を受けるバージョン

ID を増分を変更する必要があるのはいつですか(ケース)

次のような場合は、新しい DB エンティティの増分 ID を変更する必要があります。

  • ライブサイトでのハードバックアップの復元後
  • 一部の注文記録は失われましたが、その ID は、現在のマーチャントアカウントの支払いゲートウェイ(PayPal など)で既に使用されています。 このような場合、支払いゲートウェイは同じ ID を持つ新しい注文の処理を停止し、「請求書 ID が重複」というエラーを返します
NOTE
また、PayPal の支払い受け取り環境設定で請求書 ID ごとに複数の支払いを許可することで、PayPal の支払いゲートウェイの問題を修正することもできます。 サポートナレッジベースの PayPal ゲートウェイの拒否リクエスト – 請求書の重複問題を参照してください。

前提条件の手順

  1. 新しい増分 ID を変更する必要があるストアとエンティティを見つけます。
  2. MySQL DB に 接続します。 クラウドインフラストラクチャー上のAdobe Commerceの場合、最初に SSH 経由で環境に接続する必要があります。
  3. 次のクエリを使用して、エンティティシーケンステーブルの現在の auto_increment 値を確認します。
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

ID=1 のストアで注文の自動インクリメントをチェックしている場合、テーブル名は次のようになります。

'sequence_order_1'

auto_increment 列の値が 1234 の場合、ID=1 の店舗での次の注文の ID #100001234 になります。

関連ドキュメント

増分 ID を変更するエンティティを更新

次のクエリを使用してエンティティを更新します。

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
重要:新しい増分値は、現在の値より大きく、小さくすることはできません。

次のクエリを実行した後:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

ID=1 の店舗で次に行われる注文には、ID #100002000 が割り当てられます。

実稼動環境(クラウド)での追加の推奨手順

クラウドインフラストラクチャー上のAdobe Commerceの実稼動環境で ALTER TABLE クエリを実行する前に、次の手順を実行することを強くお勧めします。

  • ステージング環境で増分 ID を変更する手順全体をテストします
  • 作成:障害発生時に本番 DB をリストアするための DB バックアップ

関連ドキュメント

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a