Warning при расчете доставки от нескольких вендоров


#1

Где возникла проблема: Multi-Vendor 4.12.1

При расчете доставки есть вероятность словить warning, если у вендоров используются разные методы доставки. Проблема в том, что в функции fn_calculate_cart_content для каждой группы товаров формируется свой массив $shippings_group, и в дальнейшем он продолжает использоваться (т.е. используется последний вариант)

Код ниже:

foreach ($product_groups as $key_group => $group) {
    ...
    $shippings_group = Shippings::getShippingsList($group, $lang_code, $area, ['get_images' => true]);
    ....
}
if ($cart['calculate_shipping']) {
    ....
    foreach ($rates as $rate) {
        ....
        if (!Shippings::isFreeShipping($shippings_group[$shipping_id])) {
            ....
        } else {
            ....
        }
        ....
    }
}

Проблема в строчке

if (!Shippings::isFreeShipping($shippings_group[$shipping_id])) {


#2

Прошу не забивать на данный баг


#3

Здравствуйте. Подскажите шаги для воспроизведения данной проблемы.
Я пробовал создать доставка_1, доставка_2, доступны для двух вендоров. Для первого вендора использую доставка_1 для второго вендора использую доставка_2. Сформировал заказ. Проблема не воспроизводится.


#4

Я же написал, что у них должны быть разные методы доставки. Попробуйте сделать так

вендор 1

  • доставка 1
  • доставка 2

вендор 2

  • доставка 3
  • доставка 4

Ну и по коду же видно, что ошибка


#5

Спасибо. Проблему исправили в CS-Cart 4.12.2