#php #magento #magento-1.4
#php #magento #magento-1.4
Вопрос:
Я настраиваю код отслеживания для партнерских программ. Теперь мы назначаем разные комиссии. Один для продуктов питания и один для непродовольственных товаров. У нас также есть налоговые классы (Food, Non Food).
Мне нужно отобразить промежуточный итог для продуктов питания и промежуточный итог для непродовольственных товаров.
Я использую следующий код, но это не работает:
<?php
//Get Order Number amp; Order Total
$order = Mage::getModel('sales/order')->loadByIncrementId(Mage::getSingleton('checkout/session')->getLastRealOrderId());
$grandamount = number_format($order->getGrandTotal(),2);
$coupon = $order->getCouponCode();
$amountfood = number_format($order->getSubtotal('Food'), 2);
$amountnonfood = number_format($order->getSubtotal('Non_Food'), 2);
$discount = number_format(0.00 - $order->getDiscountAmount(), 2);
?>
Если я использую $amountfood = number_format($order->getSubtotal(), 2);
, это работает для промежуточного итога, включающего как продовольственные, так и непродовольственные ценности.
Не мог бы кто-нибудь, пожалуйста, помочь мне с этим.
Спасибо, Дэниел
Ответ №1:
Я не думаю, что эта информация доступна напрямую: magento хранит промежуточный итог и налоги глобальным образом, только общую сумму, никакой подробной информации.
Что вы могли бы сделать, это извлечь заказанные продукты, для каждого получить свой налоговый класс и сохранить в массиве продажную стоимость.
Что-то вроде этого:
$order = Mage::getModel('sales/order')->load($order_id);
$items = $order->getAllItems();
$subtotals = array();
foreach ($items as $_item) {
if (array_key_exists($subtotals[$_item->getTaxClassId()])) {
$subtotals[$_item->getTaxClassId()] = $_item->getRowTotal();
} else {
$subtotals[$_item->getTaxClassId()] = $_item->getRowTotal();
}
}
не уверен, что «если» все же необходимо.
надеюсь, это поможет