Se eu quiser continuar usando o tipo de incremento padrão do Magento e apenas quiser alterar o próximo número de incremento, é isso que eu uso.
Certifique-se de usar apenas números de incremento maiores que os já usados!
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);
Este SQL deve cuidar de não definir acidentalmente um ID de incremento que já foi usado.
Se um incremento maior next_incrementjá foi usado, ele simplesmente define o último número de incremento para todos os três tipos de entidades como iguais.
Não tenho certeza sobre a alavanca de segurança, mas estou fazendo isso modificando valores no DB diretamente:
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";
Substitua o código do tipo de entidade por "fatura" ou "remessa" para fazer o mesmo pelo restante.
Se você deseja usar intervalos ou formatos de números personalizados para IDs de incremento em vez dos incrementos padrão do Magento, também pode atribuir um modelo de incremento personalizado.
Por exemplo:
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);}}
Em seguida, atualize o modelo de incremento para as entidades em um script de instalação:
A melhor maneira [mais segura para o magento] de alterar o número do pedido é alterar os números dos próximos pedidos e não os anteriores. Isso pode ser feito com uma simples consulta ao banco de dados. Estes são os que eu usei no meu site e ele está funcionando sem nenhum problema há quase um ano.
Ordem:
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';
Fatura:
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';
Envio:
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';
Essas consultas mudarão os próximos IDs de incremento para sua loja magento. NOTA: Substitua X pelo próximo ID que você deseja.
Alterar o ID de incremento do pedido em todas as lojas
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';
Respostas:
Se eu quiser continuar usando o tipo de incremento padrão do Magento e apenas quiser alterar o próximo número de incremento, é isso que eu uso.
Certifique-se de usar apenas números de incremento maiores que os já usados!
Este SQL deve cuidar de não definir acidentalmente um ID de incremento que já foi usado.
Se um incremento maior
next_increment
já foi usado, ele simplesmente define o último número de incremento para todos os três tipos de entidades como iguais.fonte
Não tenho certeza sobre a alavanca de segurança, mas estou fazendo isso modificando valores no DB diretamente:
Substitua o código do tipo de entidade por "fatura" ou "remessa" para fazer o mesmo pelo restante.
fonte
Se você deseja usar intervalos ou formatos de números personalizados para IDs de incremento em vez dos incrementos padrão do Magento, também pode atribuir um modelo de incremento personalizado.
Por exemplo:
Em seguida, atualize o modelo de incremento para as entidades em um script de instalação:
Certifique-se de não retornar os IDs de incremento que já foram usados anteriormente!
fonte
A melhor maneira [mais segura para o magento] de alterar o número do pedido é alterar os números dos próximos pedidos e não os anteriores. Isso pode ser feito com uma simples consulta ao banco de dados. Estes são os que eu usei no meu site e ele está funcionando sem nenhum problema há quase um ano.
Ordem:
Fatura:
Envio:
Essas consultas mudarão os próximos IDs de incremento para sua loja magento. NOTA: Substitua X pelo próximo ID que você deseja.
Aceite uma resposta, se funcionar.
fonte
ID e prefixo do incremento do pedido
Alterar o ID de incremento do pedido em todas as lojas
fonte