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

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

影響を受けるバージョン

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.

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

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

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

関連ドキュメント

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