Wenn ich den Standard-Inkrementtyp von Magento weiterhin verwenden und nur die nächste Inkrementnummer ändern möchte, verwende ich diese Option.
Verwenden Sie nur Inkrementzahlen, die größer sind als die bereits verwendeten!
SET @next_increment='310000000';
SELECT @entity_types:=GROUP_CONCAT(`entity_type_id`) FROM `eav_entity_type`
WHERE `entity_type_code` IN ('order','invoice','shipment');
SELECT @new_last_increment:=GREATEST((@next_increment-1),(SELECT MAX(`increment_last_id`) FROM `eav_entity_store`
WHERE FIND_IN_SET(`entity_type_id`,@entity_types)));
UPDATE `eav_entity_store` SET `increment_last_id`=@new_last_increment
WHERE FIND_IN_SET(`entity_type_id`,@entity_types);
Diese SQL sollte dafür sorgen, dass nicht versehentlich eine bereits verwendete Inkrement-ID festgelegt wird.
Wenn ein größeres Inkrement als next_incrementbereits verwendet wurde, wird einfach die letzte Inkrementnummer für alle drei Entitätstypen so festgelegt, dass sie gleich ist.
Ich bin mir nicht sicher über den Sicherheitshebel, aber ich ändere die Werte in der DB direkt:
UPDATE `eav_entity_store` s
INNER JOIN `eav_entity_type` t ON t.`entity_type_id`= s.`entity_type_id`
SET s.`increment_last_id`='your_increment_here'
WHERE t.entity_type_code ="order";
Ersetzen Sie den Entitätstypcode durch "Rechnung" oder "Versand", um dies auch für den Rest zu tun.
Wenn Sie benutzerdefinierte Nummernkreise oder Formate für Inkrement-IDs anstelle der Standard-Magento-Inkremente verwenden möchten, können Sie auch ein benutzerdefiniertes Inkrementmodell zuweisen.
Zum Beispiel:
classMy_Shop_Model_Entity_Increment_ErpextendsMage_Eav_Model_Entity_Increment_Abstract{publicfunction getNextId(){
$last = $this->getLastId();
$entity = $this->getEntityTypeId();
$store = $this->getStoreId()
$next =Mage::helper('my_shop/api')->getNextIncrementFromErp($last, $entity, $store);// If you want to apply pad char and length, otherwise simply return $nextreturn $this->format($next);}}
Aktualisieren Sie anschließend das Inkrementmodell für die Entitäten in einem Setup-Skript:
Die beste [für Magento sicherste] Möglichkeit, die Bestellnummer zu ändern, besteht darin, die nächsten Bestellnummern und nicht die vorherigen zu ändern. Dies kann mit einer einfachen Datenbankabfrage erfolgen. Dies sind die, die ich auf meiner Website verwendet habe und die seit fast einem Jahr problemlos funktioniert.
Auftrag:
UPDATE eav_entity_store
INNER JOIN eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
SET eav_entity_store.increment_last_id='XXXXXXXXXX'
WHERE eav_entity_type.entity_type_code='order';
Rechnung:
UPDATE eav_entity_store
INNER JOIN eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
SET eav_entity_store.increment_last_id='XXXXXXXXXX'
WHERE eav_entity_type.entity_type_code='invoice';
Sendung:
UPDATE eav_entity_store
INNER JOIN eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
SET eav_entity_store.increment_last_id='XXXXXXXXXX'
WHERE eav_entity_type.entity_type_code='shipment';
Diese Abfragen ändern die nächsten Inkrement-IDs für Ihren Magento-Shop. HINWEIS: Ersetzen Sie X durch die nächste gewünschte ID.
Ändern Sie Ihre Bestellinkrement-ID in allen Filialen
UPDATE eav_entity_store
INNER JOIN eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
SET eav_entity_store.increment_last_id='XXXXXXXXXX'
WHERE eav_entity_type.entity_type_code='order';
UPDATE eav_entity_store
INNER JOIN eav_entity_type ON eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
SET eav_entity_store.increment_last_id='XXXXXXXXXX'
WHERE eav_entity_type.entity_type_code='invoice';
Antworten:
Wenn ich den Standard-Inkrementtyp von Magento weiterhin verwenden und nur die nächste Inkrementnummer ändern möchte, verwende ich diese Option.
Verwenden Sie nur Inkrementzahlen, die größer sind als die bereits verwendeten!
Diese SQL sollte dafür sorgen, dass nicht versehentlich eine bereits verwendete Inkrement-ID festgelegt wird.
Wenn ein größeres Inkrement als
next_increment
bereits verwendet wurde, wird einfach die letzte Inkrementnummer für alle drei Entitätstypen so festgelegt, dass sie gleich ist.quelle
Ich bin mir nicht sicher über den Sicherheitshebel, aber ich ändere die Werte in der DB direkt:
Ersetzen Sie den Entitätstypcode durch "Rechnung" oder "Versand", um dies auch für den Rest zu tun.
quelle
Wenn Sie benutzerdefinierte Nummernkreise oder Formate für Inkrement-IDs anstelle der Standard-Magento-Inkremente verwenden möchten, können Sie auch ein benutzerdefiniertes Inkrementmodell zuweisen.
Zum Beispiel:
Aktualisieren Sie anschließend das Inkrementmodell für die Entitäten in einem Setup-Skript:
Stellen Sie sicher, dass Sie keine Inkrement-IDs zurückgeben, die bereits zuvor verwendet wurden!
quelle
Die beste [für Magento sicherste] Möglichkeit, die Bestellnummer zu ändern, besteht darin, die nächsten Bestellnummern und nicht die vorherigen zu ändern. Dies kann mit einer einfachen Datenbankabfrage erfolgen. Dies sind die, die ich auf meiner Website verwendet habe und die seit fast einem Jahr problemlos funktioniert.
Auftrag:
Rechnung:
Sendung:
Diese Abfragen ändern die nächsten Inkrement-IDs für Ihren Magento-Shop. HINWEIS: Ersetzen Sie X durch die nächste gewünschte ID.
Akzeptiere eine Antwort, wenn es funktioniert.
quelle
Bestellinkrement-ID und Präfix
Ändern Sie Ihre Bestellinkrement-ID in allen Filialen
quelle