ocStore 1.5.5.1.1
Здравствуйте
Нужно подкорректировать модуль доставки в зависимости от веса так что бы он выводил сумму доставок отдельно по каждому товару в корзине. По-умолчанию он суммирует вес товаров и возвращает стоимость пересылки одной посылки с этим весом. А мне надо чтоб он считал доставку отдельно по каждому товару, и выводил суммарную стоимость.
Я ковыряю файл \catalog\model\shipping\weight.php. Вот слепил вот такой код
$cost = '';
$rates = explode(',', $this->config->get('weight_' . $result['geo_zone_id'] . '_rate'));
$products = $this->cart->getProducts();
foreach ($products as $product) {
if ($product['shipping']) {
$weight = $this->weight->convert($product['weight'], $product['weight_class_id'], $this->config->get('config_weight_class_id'));
foreach ($rates as $rate) {
$data = explode(':', $rate);
if ($data[0] >= $weight) {
if (isset($data[1])) {
$cost += $data[1];
}
break;
}
}
}
}
И он, как ни странно, работает! Вот только если в корзине несколько одинаковых товаров, он по-старинке сначала суммирует их вес, и только потом вычисляет стоимость доставки. Я с моими !знаниями php пока не рискую лезть в getProducts(). Как я понимаю надо или ее менять или как-то вычислять одинаковые товары в корзине и делить вес на их количество. Тут я надеюсь на вашу поддержку. Или может я лезу "в дебри" и есть проще решение? Готовый модуль? Не нашел, честно.
weight.php
weight_ver1_1.php