Добавьте налог на продукт в качестве обычной цены продукта для способа доставки
Вот пример с объяснением проблемы:
- В магазине Magento есть товар с базовой ценой 75 долларов
- Этот продукт облагается налогом (включен в цену по динамическому налогу) в размере 10 долларов США
- Когда клиент видит товар и добавляет его в корзину (и при оформлении заказа), цена товара составляет 85 долларов США (базовая цена + налог)
- В магазине Magento установлена матрица ставок Webshopapps (бесплатно)
- Матричные тарифы Webshopapps, настроенные для предоставления бесплатной доставки для клиентов когда товар в корзине стоит 80 долларов или больше.
- Когда клиент идет оформлять заказ, он не может воспользоваться бесплатной доставкой, потому что реальная цена товара (без налогов) составляет 75 долларов США.
Что мне нужно получить:
Когда клиент переходит к оформлению заказа, он должен получить бесплатную доставку этого товара. Это означает, что стоимость способа доставки (перевозчик матричных тарифов) должна рассчитываться не по базовой цене продукта, а по базовой цене продукта + налог, например: базовая цена продукта составляет 75 долларов США, а налог составляет 10 долларов США, таким образом, перевозчик должен используйте цену 85 долларов, а не 75 долларов.
Как я могу это сделать?
1
Author: Teja Bhagavan Kollepara, 2015-06-19
1 answers
Я нашел решение!
В модели перевозчика (webshopapps_matrixrate_model_carrier_matrixrate) я изменил значение $request->getpackagevalue() на сумму общих общих цен. Берегись! В цитате могут быть дубликаты. Вот код решения:
$grandTotal = 0;
$ids = array(); //$request->getAllItems() has duplicates, we need to remove them
foreach ($request->getAllItems() as $item){
if(!isset($ids[$item->getQuote()->getEntityId()]) || empty($ids[$item->getQuote()->getEntityId()]))
{
$ids[$item->getQuote()->getEntityId()] = true;
$grandTotal = $grandTotal + $item->getQuote()->getGrandTotal();
}
}
if ($this->getConfigData('enable_free_shipping_threshold') &&
$this->getConfigData('free_shipping_threshold')!='' &&
$this->getConfigData('free_shipping_threshold')>0 &&
$grandTotal>$this->getConfigData('free_shipping_threshold')) { //here i changed $request->getPackageValue() to $grandTotal
$freeShipping=true;
}
2
Author: Bruce Tucker, 2015-06-19 11:47:29