сделать приращение_id заказа синхронизированным с внешней системой
-
12-12-2019 - |
Вопрос
Мы интегрируем Magento с существующей системой.В нашей существующей системе уже есть номера заказов.Возникла большая путаница, поскольку у Magento свои номера заказов, а у нашей существующей системы разные номера заказов, поэтому мы пытаемся совместить номера заказов.
У меня есть наблюдатель, настроенный для sales_order_place_after, где я получаю номер заказа из нашей существующей системы.Кажется, это не работает для $order->setIncrementId($our_existing_order_id). В любом случае, я не знаю, действительно ли это хорошая идея..
На самом деле, конечной целью, которую мы хотим, является то, чтобы номера заказов в квитанциях по электронной почте, которые отправляются, соответствовали номерам заказов в наших существующих системах.Есть ли лучший способ сделать это?
Решение
Что я бы порекомендовал создать новое поле в Sales_flat_order, чтобы сохранить этот идентификатор, затем обновить другой шаблон по мере необходимости для отображения этого номера.Таким образом, у вас будет чистый путь обновления в будущем
Другие советы
Одним из решений было бы создание собственной модели сущности eav.Если вы посмотрите в eav_entity_type
таблица в столбце increment_model
вы видите, что там есть путь к классам.Замените их, например, своей собственной моделью. [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;
}
}