2013-06-16 5 views
-1

Я пытаюсь получить «Имя правила» (который, я считаю, является уникальным идентификатором, да?) Со скидкой, которая была применена к заказу.Magento: У скидки есть «SKU»?

Вот преддверие код:

$order_id = Mage::getSingleton('checkout/session')->getLastOrderId(); 

$order = Mage::getModel('sales/order') 
->load($order_id); 

$order_items = $order->getAllItems(); 

foreach ($order_items as $itemId => $item) { 

Я использую $item->getSku(); для обработки продукта ... будет Единицы складского хранения это также получать уникальный идентификатор дисконта в?

спасибо!


Edit AlanStorm делает хороший момент, так что я поясню:

Скидки Я имею дело с являются «корзина правила» и, по этому вопросу, они являются продуктом конкретной.

Чтобы задать второй вопрос: как получить уникальный идентификатор «правила корзины покупок», который был применен к общему порядку (например, 10% от всех элементов)?

+0

Это скидка «примените купон на весь заказ» или скидка «конкретный товар с дисконтом по каталогу»? Знание этого поможет людям лучше ответить на ваш вопрос. –

+0

@AdamStorm - Хороший вопрос, я отредактирую, чтобы добавить ясность, спасибо – Dan

ответ

0

Короткий ответ: нет, они этого не делают. Они сохраняются за котировку/порядок и дополнительно в каждом элементе quote/order. См. Мой answer здесь о том, что доступно, а что нет. Таким образом, только discount_amount хранится в вашем заказе. Вы можете использовать это, чтобы рассчитать процент скидки или applied_rule_ids, чтобы загрузить правило и получить информацию там.

+0

Таким образом, уникальный идентификатор скидки - это 'rule_id' BUT' $ item-> getSku(); 'не вернет' rule_id'? Если мое понимание верное, спасибо – Dan

+0

Да, вы правы. Вы можете использовать '$ item-> getRuleId();' или '$ item-> getData ('rule_id');'. В пурпуре каждая модель идентифицируется идентификатором. Только продукты имеют как skus, так и идентификаторы. –

Смежные вопросы