Обновлено: 21 апреля 2017, 09:24
 Marabar

msMiniCartDynamic для miniShop2

Компонент msMiniCartDynamic для магазина miniShop2 даёт возможность изменять количество добавляемых товаров в корзину, как кнопками ±, так и ручным вводом количества в поле input. Также, при необходимости, есть возможность динамического изменения миникорзины. Далее подробно.

Установка msMiniCartDynamic

Сам пакет выложен в Modstore доступен через установщик MODX — Приложения/Установщик.

Добавление ± к товарам каталога

Для добавления к товарам каталога кнопок +-, необходимо отредактировать форму в чанке miniShop2 — tpl.msProducts.row, должно получиться примерно так:

<form method="post" id="dynamic-[[+id]]" class="ms2_form">
	<a href="[[~[[+id]]]]">[[+pagetitle]]</a>
	<span class="flags">[[+new]] [[+popular]] [[+favorite]]</span>
	<span class="price">[[+price]] [[%ms2_frontend_currency]]</span>
	[[+old_price]]

	[[!msDynamicCount?
		&id=`[[+id]]`
	]]

	<input type="hidden" name="id" value="[[+id]]">
	<input type="hidden" name="options" value="[]">
</form>
  1. Удалить button name=«ms2_action»
  2. Удалить input name=«count»
  3. Добавить в форму идентификатор id=«dynamic-[[+id]]»:
    <form method="post" id="dynamic-[[+id]]" class="ms2_form">
    	...
    	...
    	...
    </form>
    
  4. Разместить не кэшированный вызов сниппета [[!msDynamicCount]], с обязательным параметром &id=[[+id]]
Подключить скрипт msMiniCartDynamic после jQuery. До или после скрипта miniShop2 — разницы нет, работает так и так.

<script src="/assets/components/msminicartdynamic/js/web/msminicartdynamic.js"></script>
Доступны плейсхолдеры:
  • [[+key_d]] — Уникальный ключ товара в корзине
  • [[+count_d]] — Количество этого товара в корзине
  • [[+id_d]] — ID товара (ресурса) в корзине

Динамическое изменение мини-корзины

Компонент имеет возможность динамически изменять состав мини-корзины, для этого достаточно в чанк tpl.msMiniCart поместить вызов сниппета

<div id="msMiniCart" [[+total_count:isnot=`0`:then=`class="full"`:else=``]]>
	<div class="empty">
		<h5><i class="glyphicon glyphicon-shopping-cart"></i> [[%ms2_minicart]]</h5>
		[[%ms2_minicart_is_empty]]
	</div>

	[[!msMiniCartDynamic?
            &img = `small`
        ]]

	<div class="not_empty">
		<h5><i class="glyphicon glyphicon-shopping-cart"></i> [[%ms2_minicart]]</h5>
		[[%ms2_minicart_goods]]: <strong class="ms2_total_count">[[+total_count]]</strong> [[%ms2_frontend_count_unit]],
		[[%ms2_minicart_cost]]: <strong class="ms2_total_cost">[[+total_cost]]</strong> [[%ms2_frontend_currency]]
	</div>
</div>
Доступны плейсхолдеры:
  • [[+name_d]] — Название товара (pagetitle)
  • [[+key_d]] — Ключ товара
  • [[+count_d]] — Количество данного товара в корзине
  • [[+price_d]] — Цена товара товара за единицу
  • [[+sum_d]] — Сумма товара
Параметры:
  • &tpl — Чанк для одного товара. По умолчанию: msMinicartDynamic
  • &tplOuter — Чанк обёртка всего блока. По умолчанию: msMinicartDynamicOuter
  • &img — Картинка (миниатюра) товара. По умолчанию: Пусто

Заключение

Сам по себе мой компонент в корзину ничего не добавляет, этим всем занимается miniShop2. msMiniCartDynamic просто инициализирует и ловит определённые события изменения корзины, подсчитывает кол-во и сумму определённого товара и выводит всё это дело на экран.

Ссылка в гитхаб — msMiniCartDynamic
   Marabar Мои компоненты 0    3 0

Комментарии (3)

  1. - - 01 марта 2017, 14:42 # 0
    Добрый день.
    Помогите, пожалуйста, с этой ошибкой
    modx.pro/help/11414/
    1. Madao 15 мая 2017, 21:20 # 0
      Доброго времени суток. Поставил Ваш компонент, но никак не могу добиться от него, чтобы он динамически изменял итоговую сумму заказа в миникорзине. в документации указан плейсхолдер только [[+sum_d]] — Сумма товара, но не итоговая сумма заказа. Реализован ли такой функционал в данном компоненте?
      Заранее благодарю за ответ.
      1. Madao 16 мая 2017, 18:28 # 0
        Вопрос по поводу динамического изменения суммы снимаю. Была ошибка в определении класса для блока, где выводится сумма.



      Вы должны авторизоваться , чтобы оставлять комментарии.

      medortex 14 июля 2017, 16:26
      Меню Аккордеон в MODX revo 54
      Madao 16 мая 2017, 18:28
      msMiniCartDynamic 3
      Семён 05 мая 2017, 23:30
      Создание ресурсов из фронтенда 41
      Филитович Владимир 26 февраля 2017, 22:25
      Apache 2.2.22, установка и настройка 41
      valery 30 ноября 2016, 15:51
      phpMyAdmin 3.5.1, установка и настройка 3
      Алексей 11 августа 2016, 17:31
      MIGXdb - управление дочерними ресурсами 6
      Marabar 15 июля 2016, 17:36
      PHP 5.4.3, установка и настройка 6