faça increment_id de um pedido sincronizado com o sistema externo
-
12-12-2019 - |
Pergunta
Estamos integrando o Magento com um sistema existente.Nosso sistema existente já possui números de pedido.Tem havido muita confusão porque o Magento tem seus próprios números de pedido, e nosso sistema existente tem números de pedido diferentes, então estamos tentando fazer com que os números de pedido correspondam.
Tenho um observador configurado para sales_order_place_after, onde obtenho o número do pedido de nosso sistema existente.Parece não funcionar para $order->setIncrementId($our_existent_order_id) Não sei se isso é realmente uma ideia tão boa de qualquer maneira.
Na verdade, o objetivo final que queremos é que os números dos pedidos em recibos por e-mail sejam enviados para corresponder aos números dos pedidos em nossos sistemas existentes.Existe uma maneira melhor de fazer isso acontecer?
Solução
O que eu recomendaria é criar um novo campo no Sales_Flat_order para armazenar esse ID, em seguida, atualizar o modelo diferente, conforme necessário para exibir esse número.Desta forma, você terá um caminho de atualização limpa no futuro
Outras dicas
Uma solução seria criar seu próprio modelo de entidade eav.Se você olhar no eav_entity_type
tabela na coluna increment_model
você vê que há um caminho de classe lá.Substitua-os pelo seu próprio modelo personalizado, por exemplo [module]/entity_increment_erp
class [Namespace]_[Model]_Model_Entity_Increment_Erp extends Mage_Eav_Model_Entity_Increment_Abstract
{
public function getNextId()
{
/**
* your custom code to generate the increment ID,
* as long as it is unique
*/
return $id;
}
}