установите стоимость доставки по самому тяжелому продукту @ 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);
    }
}

Как я могу это исправить?

Author: user9603, 2015-08-19

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>   

 0
Author: Yogesh Trivedi, 2015-08-19 09:28:56

Я нашел решение, чтобы исправить это.

... мы используем бесплатную версию 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);
}
 0
Author: user9603, 2015-08-24 09:43:29