[Помогите] Пересчёт в корзине скидки от количества с учётом всех товаров

Тема в разделе "OpenCart", создана пользователем etens1212, 3 авг 2016.

  1. etens1212

    etens1212

    Регистрация:
    1 май 2013
    Сообщения:
    339
    Симпатии:
    19
    Всем привет
    у меня такая проблема

    на каждый товар строит скидка от количества
    но эта скидка от количества должно захватывать несколько товаров

    мне рекомендуют

    В system/library/cart.php находим это:

    Код:
    foreach ($cart_2_query->rows as $cart_2) {
                        if ($cart_2['product_id'] == $cart['product_id']) {
                            $discount_quantity += $cart_2['quantity'];
                        }
                    }
    И заменяем на это:
    Код:
    foreach ($cart_2_query->rows as $cart_2) {
                        $discount_quantity += $cart_2['quantity'];
                    }
    теперь количество стало брать со всех товаров
    почти то что нужно

    но нужно разделить еще эти товары
    типа на несколько
    по ид
    чтобы принимало общее количество товаров с тех ид, затем с тех

    Написали

    но не понимаю, как должен выглядеть массив
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    PHP:
    $product_array = array();
    foreach (
    $cart_2_query->rows as $cart_2) {
        
    $product_array[$cart_2['product_id']] += $cart_2['quantity'];
    }
    В результате получите массив, где ключи - это id товара, а значения - это суммарное количество данного товара в корзине.
    А дальше используйте его при подсчёте для скидки, как хотите.

    P.S. Научитесь наконец темы нормально называть. Название должно полностью отражать суть проблемы. И префикс (помогите, ищу и т.д.) - не является частью названия, не пытайтесь формировать название используя его, как начало фразы. Например, все префиксы "помогите" сменяются на "решено" после решения проблемы, в результате название этой темы превратилось бы вообще в бессмыслицу: "*Решено* с корзиной".