Вопрос

Действия по воспроизведению:

  1. Нажмите Редактировать по первому порядку, т.е. 000000001
  2. Нажмите Редактировать второго порядка, т.е. 000000002
  3. Нажмите Добавить продукты на экране редактирования первого заказа
  4. Выберите любой товар и нажмите Добавить выбранные товары в заказ

Теперь вы увидите, что содержимое 000000001 — это все продукты из 000000002, а также продукт, который вы выбрали.

Я также заметил некоторое странное поведение при размещении заказов после их редактирования: например, редактирование 000000002 приведет к тому, что новый идентификатор приращения будет 000000001-1.

Я думаю, что эта ошибка может быть связана с adminhtml/session_quote объект (app/code/core/Mage/Adminhtml/Model/Session/Quote.php).Означает ли это, что Magento может редактировать только один заказ за сеанс?Конечно, это будет различать объекты сеанса, используя идентификатор родительского объекта или что-то в этом роде?

Редактировать: Такое же поведение наблюдается при одновременном размещении двух ордеров, что наводит меня на мысль, что это определенно связано с невозможностью разделить adminhtml/session_quote объекты на основе идентификатора объекта родительского заказа.

Это было полезно?

Решение

Я не думаю, что это ошибка.Это скорее ограничение на то, как реализуется порядок редактирования администратора.
Когда ты нажмешь Редактировать при включении и заказе (а при создании и заказе с нуля) в бэкэнде задействуется сеанс.Посмотрите, как Mage_Adminhtml_Sales_Order_EditController и Mage_Adminhtml_Sales_Order_CreateController как выглядят классы и что они делают.

Поэтому, когда вы нажимаете «Редактировать» во втором заказе, сеанс очищается (см. Mage_Adminhtml_Sales_Order_EditController::startAction) и вы больше не редактируете первый заказ.

Но форма из первого редактируемого заказа заполняется данными из первого заказа.только вызовы ajax, которые вы делаете с этого момента на экране редактирования порядка, будут возвращать значения из второго редактируемого вами порядка.
Вот почему вы получаете смешанные результаты от первого и второго заказа.

При отправке формы из первого заказа вы отправляете такие данные, как идентификатор клиента или валюту, из первого заказа, но вы получили товары из второго заказа.

Урок здесь заключается в том, чтобы никогда не редактировать два заказа в течение одного сеанса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top