Change increment ID for a database entity on particular store
This article discusses how to change the increment ID for a Magento database (DB) entity (order, invoice, credit memo, etc.) on a particular Magento store using the ALTER TABLE
SQL statement.
Affected versions
- Adobe Commerce (on premise): 2.x.x
- Adobe Commerce on cloud infrastructure: 2.x.x
- MySQL: any supported version
When would you need to change increment ID
You might need to change the increment ID for new DB entities in these cases:
- After a hard backup restore on a Live site
- Some order records have been lost, but their IDs are already being used by payment gateways (like PayPal) for your current Merchant account. Such being the case, the payment gateways stop processing new orders that have the same IDs, returning the “Duplicate invoice id” error
You may also fix the payment gateway issue for PayPal by allowing multiple payments per invoice ID in PayPal’s Payment Receiving Preferences. See PayPal gateway rejected request - duplicate invoice issue in the Knowledge Base.
Prerequisite steps
- Find stores and entities for which the new increment ID should be changed.
- Connect to your MySQL DB. For Adobe Commerce on cloud infrastructure, at first, you need to connect using SSH to your environment.
-
Check the current
auto_increment
value for the entity sequence table using the following query:1
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';
If you are checking an auto increment for an order on the store with ID=1, the table name would be ‘sequence_order_1’.
If the value of the auto_increment
column is ‘1234’, the next order placed at the store with ID=1
will have the ID ‘#100001234’.
Update entity to change increment ID
Update the entity using the following query:
1
ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
Important: The new increment value must be greater than the current one.
After executing the following query:
1
ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;
The next order placed at the store with ID=1
will have the ID ‘#100002000’.
Additional recommended steps on cloud production environments
Before executing the ALTER TABLE
query on a production environment of Adobe Commerce on cloud infrastructure, we strongly recommend performing these steps:
- Test the entire procedure of changing the increment ID on your staging environment
- Create a DB backup to restore your Production DB in case of failure