inkrement_id einer Bestellung mit externem System synchronisieren
-
12-12-2019 - |
Frage
Wir integrieren Magento in ein bestehendes System.Unser bestehendes System hat bereits Bestellnummern.Es gab viel Verwirrung, da Magento eigene Bestellnummern hat und unser bestehendes System unterschiedliche Bestellnummern hat. Wir versuchen also, die Bestellnummern zusammenzubringen.
Ich habe einen Beobachter für sales_order_place_after eingerichtet, wo ich die Bestellnummer aus unserem bestehenden System erhalte.Es scheint nicht zu funktionieren $order-> setIncrementId($ our_existing_order_id) Ich weiß sowieso nicht, ob das wirklich so eine gute Idee ist..
Wirklich, das Endziel, das wir wollen, ist, dass die Bestellnummern in E-Mail-Quittungen, die gesendet werden, mit den Bestellnummern in unseren bestehenden Systemen übereinstimmen.Gibt es einen besseren Weg, dies zu erreichen?
Lösung
Was ich empfehlen würde, ist es, ein neues Feld in sales_flat_order zu erstellen, um diese ID zu speichern, dann aktualisieren Sie die unterschiedliche Vorlage, um diese Nummer anzuzeigen.Auf diese Weise haben Sie in der Zukunft einen sauberen Upgrade-Pfad
Andere Tipps
Eine Lösung wäre, ein eigenes EAV-Entitätsmodell zu erstellen.Wenn Sie in die eav_entity_type
tabelle in der Spalte increment_model
sie sehen, dass es dort einen Klassenpfad gibt.Ersetzen Sie diese beispielsweise durch Ihr eigenes benutzerdefiniertes Modell [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;
}
}