[minishop2] Исключение цены товара из total_cost

Добрый день уважаемое сообщество!
Добавил чекбокс в свойства товара — Бесплатная доставка по России. Есть собственный класс доставки, который рассчитывает доставку ТК КИТ исходя из параметров товара(длина, ширина, вес, объем) и общей стоимости корзины.
Дописал в классе условие, что если чекбокс установлен, то на этот товар не считать доставку. Если товар в корзине только этот, проблем нет, доставка не считается. Проблема в том, что если в корзине несколько товаров, один из которых с чекбоксом, а второй нет, то доставка все равно считается исходя из общей стоимости корзины cart['total_cost'].
Подскажите пожалуйста, как можно исключить из общей стоимости корзины, цену именно этого товара, чтобы она не учитывалась в стоимости доставки.
Заранее спасибо!
Денис
14 ноября 2014, 04:26
modx.pro
2 558
0

Комментарии: 12

Денис
14 ноября 2014, 08:24
-1
Разобрался, спасибо
    Алексей Марченко
    14 ноября 2014, 08:47
    +1
    Что же за люди то такие? Разобрался скажи, народу как. Всегда бесило на форумах такое поведение!
      Денис
      14 ноября 2014, 09:04
      0
      Алексей, не ругайся пожалуйста )
      Разобрался, но получается не до конца. Сделал пока так — получил цену товара, получил установлен ли чекбокс. Если установлен, тогда
      $price = $cart['total_cost'] - $product->get('price');
      Если количество штук данного товара 1, тогда срабатывает, и стоимость не учитывается. Но если этого товара 2 или больше, все равно считается стоимость, т.к. цена этого товара вычитается только один раз.
      Теперь нужно понять, как сделать так, чтобы
      $price = $cart['total_cost'] - (count('данный продукт')*$product->get('price'));
      Т.е. чтобы вычиталось все таки общее кол-во этого товара умноженное на цену товара.
      Выяснилось при тестировании, поэтому и получается, разобрался но не до конца. Может подскажет кто то, как взять количество определенного товара в корзине в классе доставки?
        Володя
        14 ноября 2014, 09:20
        0
        получить корзину, в ней все товары и количество…
          Денис
          14 ноября 2014, 09:24
          0
          Подскажешь, как взять количество именно определенного товара (который и есть с чекбоксом установленным). Общее то количество я знаю
            Володя
            14 ноября 2014, 09:30
            0
            а не… наврал я тебе.
            там только общее кол-во доступно, тебе не пойдет.
            Тогда возьми просто в $_SESSION['minishop2']['cart']
              Денис
              14 ноября 2014, 09:34
              0
              Эм, а как отсюда достать количество товара с определенным ID или другим определенным свойством? Прости, не совсем понял…
                Володя
                14 ноября 2014, 09:35
                0
                а просто взять и посмотреть?
                  Денис
                  14 ноября 2014, 09:51
                  0
                  Да, вывести только некуда, делаю на уже рабочем проекте с большой посещаемостью :( Если можно, подскажи пожалуйста, очень благодарен!
                    Володя
                    14 ноября 2014, 09:58
                    1
                    +1
                    $this->modx->log(1, print_r($_SESSION['minishop2']['cart'], 1));
                    так делайте на тесте. а уж потом в рабочий проект…
                      Денис
                      14 ноября 2014, 10:53
                      0
                      Проблема в том, что нету теста :( Но все равно спасибо!
                      Денис
                      14 ноября 2014, 11:18
                      0
                      Спасибо! Сделал, получил что надо )
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
12