сделать приращение_id заказа синхронизированным с внешней системой

magento.stackexchange https://magento.stackexchange.com//questions/41688

Вопрос

Мы интегрируем 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;
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top