créer un incrément_id d'une commande synchronisée avec un système externe
-
12-12-2019 - |
Question
Nous intégrons Magento à un système existant.Notre système existant dispose déjà de numéros de commande.Il y a eu beaucoup de confusion puisque Magento a ses propres numéros de commande et que notre système existant a des numéros de commande différents, nous essayons donc de faire correspondre les numéros de commande.
J'ai un observateur configuré pour sales_order_place_after où j'obtiens le numéro de commande de notre système existant.Cela ne semble pas fonctionner avec $order->setIncrementId($our_existing_order_id) Je ne sais pas si c'est vraiment une si bonne idée de toute façon..
En réalité, l'objectif final que nous souhaitons est que les numéros de commande dans les reçus par courrier électronique envoyés correspondent aux numéros de commande dans nos systèmes existants.Existe-t-il une meilleure façon d’y parvenir ?
La solution
Ce que je recommanderais est de créer un nouveau champ dans sales_flat_order pour stocker cet identifiant, puis mettez à jour le modèle différent au besoin pour afficher ce numéro.De cette façon, vous aurez une voie de mise à niveau propre dans le futur
Autres conseils
Une solution serait de créer votre propre modèle d'entité eav.Si vous regardez dans le eav_entity_type
tableau dans la colonne increment_model
vous voyez qu'il y a un chemin de classe là-bas.Remplacez-les par votre propre modèle personnalisé, par exemple [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;
}
}