Как изменить данный атрибут товара, проданного? (Когда заказ будет выполнен) - PullRequest
1 голос
/ 31 марта 2011

Мне нужно изменить один атрибут, когда продукт продан, когда заказ завершен, я думаю, что могу что-то перехватить / где-то, но я не знаю, где и что.

спасибо.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Если ваш вопрос задается «magento way», когда вы говорите «заказ выполнен», это означает, что его статус «завершен». Заказ со статусом «завершен» был заказан на веб-сайте, а затем выставлен счет и отправлен администратору.

Мой ответ основан на этой терминологии, что дает вам подсказки для изменения атрибута продукта после того, как заказ был выполнен (опять же, по-пурпурному).

Кодирование для вас не очень хорошая помощь и очень длинная, так что вот путь (по моему мнению):)

  • Создать модуль (Google ваш друг для этого)

  • Прикрепите наблюдателя к этому модулю и заставьте его наблюдать событие «sales_order_save_after» (Google ваш друг для этого)

  • В файле / методе наблюдателя получить заказ и его статус

            $order = $observer->getEvent()->getOrder();
            $orderStatus = $order->getStatus();
    
  • Если статус заказа «выполнен», создайте foreach, который обновляет атрибут, который вы хотите для всех элементов

Это даст одинаковое значение атрибута для всех продуктов. В этом примере все продукты для завершенного заказа будут переименованы в «Проданный продукт».

            if ($orderStatus == 'complete') {
                $items = $order->getAllItems();
                foreach ($items as $item) {
                    $productsToUpdate[] = $item->getProductId();
                }
                $theAttributeToUpdate = 'name';
                $theAttributeValue = 'Sold Product';
                Mage::getSingleton('catalog/product_action')->updateAttributes($productsToUpdate, array($theAttributeToUpdate => $theAttributeValue), 0);
            }

Этого должно быть достаточно, чтобы поставить вас на правильный путь.

0 голосов
/ 01 апреля 2011

Попробуйте подключиться к sales_order_place_after . Здесь - хороший урок о том, как поймать событие в Magento.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...