Make Increment_ID di un sistema di ordini a sistema esterno
-
12-12-2019 - |
Domanda
Stiamo integrando Magento con un sistema esistente.Il nostro sistema esistente ha già numeri d'ordine.C'è stata molta confusione da quando Magento ha i propri numeri d'ordine, e il nostro sistema esistente ha numeri di ordine diversi, quindi stiamo cercando di ottenere i numeri dell'ordine per abbinare.
Ho un osservatore istituito per sales_order_place_after dove ottengo il numero dell'ordine dal nostro sistema esistente.Non sembra funzionare a $ ordine-> setincrementid ($ nostro_existing_order_id) Non so se questo è davvero tutto così buono di un'idea comunque ..
Davvero, l'obiettivo finale che vogliamo è per il numero dell'ordine nelle ricevute e-mail che vengono inviate per abbinare l'ordine nei nostri sistemi esistenti.C'è un modo migliore per farlo accadere?
Soluzione
Quello che consiglierei è creare un nuovo campo in sales_flat_order per memorizzare questo ID, quindi aggiornare il modello diverso secondo necessità per visualizzare questo numero.In questo modo avrai un percorso di aggiornamento pulito nel futuro
Altri suggerimenti
Una soluzione sarebbe creare il proprio modello di entità EAV.Se guardi nella tabella eav_entity_type
nella colonna increment_model
che vedi che c'è un percorso di classe lì.Sostituisci quelli con il proprio modello personalizzato, ad esempio [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;
}
}
.