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?

Foi útil?

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;
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top