установите стоимость доставки по самому тяжелому продукту @ CE 1.9.2.1
Для некоторых продуктов мы используем конфигуратор продукта. Там вы можете установить высоту и вес пвх-баннеров. Теперь стоит задача рассчитать стоимость доставки по длине. Конфигуратор установил "короткий сайт" из пвх-баннеров на вес строки @sales_flat_quote_item. это прекрасно!
Теперь для меня проблема установить стоимость доставки по "самому тяжелому" или, лучше, по самому длинному продукту.
Если у меня в корзине есть один товар, стоимость доставки зависит. если я редактирую количество - это нормально - я изменил некоторые файлы для этого.
Если у меня в корзине более 1 товара, вес1 добавляется к весу2.
Для этого я добавил модуль, но с момента последнего обновления он не работает.
Более подробная информация:
../app/code/local/Mage/Bannership/etc/config.xml :
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Mage_Bannership>
<version>0.2.0</version>
</Mage_Bannership>
</modules>
<global>
<models>
<bannership>
<class>Mage_Bannership_Model</class>
</bannership>
<core>
<rewrite>
<shipping>
Mage_Bannership_Model_Shipping
</shipping>
</rewrite>
</core>
</models>
</global>
</config>
../app/code/local/Mage/Bannership/Model/Shipping.php :
class Mage_Bannership_Model_Shipping extends Mage_Shipping_Model_Shipping {
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
$maxWeight = 0;
foreach($request->getAllItems() as $item) {
$maxWeight = max($maxWeight, $item->getRowWeight());
}
$request->setPackageWeight($maxWeight);
return parent::collectRates($request);
}
}
Как я могу это исправить?
2 answers
Обновление согласно приведенному ниже:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Mage_Bannership>
<version>0.2.0</version>
</Mage_Bannership>
</modules>
<global>
<models>
<bannership>
<class>Mage_Bannership_Model</class>
</bannership>
<shipping>
<rewrite>
<shipping>
Mage_Bannership_Model_Shipping
</shipping>
</rewrite>
</shipping>
</models>
</global>
Я нашел решение, чтобы исправить это.
... мы используем бесплатную версию Matrixrate от Webshopapps - это расширение переопределяет другой модуль. Поэтому я добавляю несколько строк кода в: /app/code/community/Webshopapps/Matrixrate/Model/Carrier/Matrixrate.php :
~ строка 111
//цена доставки набора самого тяжелого веса - MOD // вес переопределяется длиной...
$maxWeight = 0;
if ($request->getAllItems()) {
foreach($request->getAllItems() as $item) {
$maxWeight = max($maxWeight, $item->getRowWeight());
}
$request->setPackageWeight($maxWeight);
}