minishop2 количество товаров.

Добрый день всем.
Как реализовать количество товаров чтобы было как на этом сайте primapak.com.ua/catalog/paketi_mayka/pakety_dlya_magazinov_razlivnogo_piva/2280/
Нужно чтобы можно было добавить 2 товара, первый товар количеством 100 и второй товар так же количеством 100.
Но чтобы в шапке показало что в корзине 2 товара, а не 200.
modx.pro/solutions/13240 — не помогло.
Сергій
12 июня 2020, 06:43
modx.pro
218
0
Поблагодарить автора Отправить деньги

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

Максим
13 июня 2020, 14:38
0
Ну самое первое, что приходит в голову — это значение поля count формировать по формуле, где одна из переменных будет поле для ввода количества пользователем. Шаг добавления можно определить атрибутом тега input type=«number» (Стилизовать его можно как угодно).
Например поле для ввода пользовательского кол-ва будет таким:
<input name="user_count" type="number" step="100" min="100">
Тогда, count = user_count / 100
Ну а уж как получать значение из поля и записывать значени в поле, думаю что знаете.
    Сергій
    15 июня 2020, 05:33
    0
    Нужно чтобы можно было добавить 2 товара, первый товар количеством 100 и второй товар так же количеством 100.
    Но чтобы в шапке показало что в корзине 2 товара, а не 200.
      Максим
      16 июня 2020, 18:10
      0
      Почему минусанули? Вопрос был про кол-во и предложенный мной метод прекрасно работает. Если вы не увидели в ответе решения с ценой, так и в вопросе про цену ничего не сказано. Да и сложного ничего нет в создании плагина на событии «msOnBeforeAddToCart». Все данные для формирования корректной цены есть…
      Что не так?
        Сергій
        18 июня 2020, 01:35
        0
        Нужно чтобы можно было добавить 2 товара, первый товар количеством 100 и второй товар так же количеством 100.
        Но чтобы в шапке показало что в корзине 2 товара, а не 200.

        Я ответил на ваш вопрос?
        Если нет сложности хоть ссылку на пример кода скиньте.
          Aborrol
          18 июня 2020, 10:54
          0
          Сделай снипет
          <?php
          $miniShop2 = $modx->getService('miniShop2');
          $miniShop2->initialize($modx->context->key);
          $tpl = $modx->getOption('tpl', $scriptProperties, 'tpl.msMiniCart');
          $products =  $miniShop2->cart->get();
          $cart = $miniShop2->cart->status();
          $cart['total_products'] = count($products);
          $cart['total_cost'] = $miniShop2->formatPrice($cart['total_cost']);
          $cart['total_weight'] = $miniShop2->formatWeight($cart['total_weight']);
          return $miniShop2->pdoTools->getChunk($tpl, $cart);
          и в шаблоне для этого сниппета выводи количество уникальных позиций через [[+total_products]]

          Но что бы корзина обновлялась без перезагрузки, нужно повесить обновление значения на каллбек добавления в корзину
            Максим
            19 июня 2020, 13:30
            0
            А что пример даст? Ну вот пример: junior35.nabami.ru/kostyum-little-maven-/-art.-lm-1525.html (это дев версия сайта)
            Есть возможность заказать размерами и весь размерный ряд. Размерный ряд — это товары размером от 2 до 7 в количестве по 1 штуке. Иными словами — при добавлении размерного ряда, в плагине происходит чтение размеров и добавляется в корзину как один товар. Но цена пересчитывается как за 6 товаров. Вот только в коде плагина много всего лишнего и в данном проекте пришлось переписывать класс корзины.
            Так что для решения вашей проблемы совсем не нужно переопределять класс корзины (менять основную логику работы корзины) и достаточно просто написать несколько строк кода JS и написать доп логику в плагине.
            Если, что мой скайп max-gopher. Можно голосом обсудить.
      Victor
      13 июня 2020, 15:26
      0
      Я делал вот по этой инструкции.
      Все работает, жалоб нет
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7