Вы находитесь на странице товара, справой стороны размещены стандартные свойства товара и динамические свойства, которые формируются компонентом msExtraFields посредством одноименного сниппета msExtraFields. Для понимания того, как происходит разделения по типу отображения, на странице последовательно выводятся:

  • режим редактирования (edit) - обрабатывает чанки свойств, в имени параметра которых нет суфикса (info или short), например tplProduct_checkbox_row. Эти чанки позволяют пользователю менять значения свойств, тем самым влияя на уточнение характеристик товара перед его заказом;
  • информационный вид (info) - чанки с суфиксом info. Не позволяют производить какие-либо изменения;
  • короткий вид (short) - чанки с суфиксом short. В эту категорию попадают свойства в настройках которых (в том числе в настройках категории) установлен параметр inshort. Зачастую служит для вывода кратких характеристик товара при просмотре общего каталога;

В нижней левой части, под кнопкой "добавить в корзину", выводятся возможные скидки под которые попадают значения свойств выбранные клиентом. При изменения какого-либо значения отправляется запрос на сервер, где производится перерасчет цены и при получении ответа клиент будет проинформирован об изменениях как в цене, так и в доступных в данном случае для него скидках. Если цена товара при таких условиях изменилась, то посредством анимации, красного ценового блока вы сразу заметите изменения.

В момент изменения кол-ва товара в корзине, при совпадении этого значения с условиями действия скидок, происходит его перерасчет. Дабы не вводить пользователя в заблуждения, на экране всплывает отдельное сообщение о том, что цена на его заказанный товар, была пересчитана, и все последующие заказы этого товара будут формироваться по новой цене.

Так как, пользователю дается возможность изменять характеристики будущего товара, то и товар добавленный в корзину, разделяется по комбинации значений его свойств. Например, если вы добавите 3 синих товара в корзину, затем 2 зеленых и снова 5 синих, то в итоге, в вашей корзине окажутся: 8 синих и 2 зеленых товара, представленных в виде 2-х позиций, но с разными значенями колличества.

Также вы можете понаблюдать, как мгновенно изменяется цена товаров в корзине при изменении их колличества, с учетом всех скидок и текущих характеристик каждого товара.

Для того чтобы было удобнее проводить аналогии с текущими настройками товара, я рекомендую вам авторизоваться на сайте, и вы дополнительно сможете увидеть результат работы лога при запуске сниппета msExtraFields с типом edit, и лог которые возвращается при пересчете цены или изменения кол-ва товара в корзине.

Суммарная скидка

Варианты изменения цены:

  1. общая: от 3-х до 5-ти скидка 50р за штуку
  2. общая: за 6 товаров скидка 10%
  3. общая: от 7 товаров скидка 50%
Это сообщение поменяется как только получим ответ от сервера об изменении в цене товара
Анимация цены перенесена в параметр data-animation (используется с animate.css). Discounts - список скидок допустимых в товаре, регулируется системной настройкой ms2efs_price_show_scopes. Можно отображать все, или только те которые динамически влияют на цену в ходе выбора свойств или кол-ва товара ( учитывается также товар положенный в корзину ранее).

                            <div class="e-price animation-delay-1" data-animation="zoomIn">
                          <div class="discounts" data-animation="zoomOut">{$discounts}}</div>
                          <div class="new_price animation-delay-3" data-animation="bounce"> 
                          Меняется когда приходит новая пересчитаная цена, подойдет для информирования 
                          клиента, о том что цена изменилась.
                        
1 000 руб.  

Лог ответа от сервера (ajax):

Обратите внимание на параметр cacheTime (время в секундах), он отвечает за то что параметры указанные в вызове сниппета будут действительны в течении этого времени, это касается также запросов поступающих через ajax (срабатывает только с параметром display='edit'). Если за это время произошло обращение к серверу, то счетчик снова устанавливается в первоначальное значение. В текущем примере &log_placeholder='log_msExtraFields', это значит, что при возвращение ответа от сервера, при ajax запросе, данные будут размещены в объекте с классом "log_msExtraFields". Он находится прямо под этим блоком.

Отредактировать документ

Стандартные характеристики

Характеристики динамические (EDIT)

                        
  • display = edit - обязательно для выбора свойств клиентом
{'!msExtraFields' | snippet : [ 'display' => 'edit', 'cacheTime' => '60', 'log_status' => '1', 'log_target' => 'PLACEHOLDER', 'log_placeholder' => 'log_msExtraFields', ]}

Инфа

  • Синий  
  • Красный  
  • Желтый  
  • Зеленый  
  • Белый  

Начинка

Характеристики информативный вид (INFO)

                    
  • display = info - показывает все свойства у кот выбрано отображение info
  • cacheUid = info - так как на странице несколько вызовов сниппета одного товара, то для правильности получения данных из кеша нужно вручную задать альтернативный кеш ключ
{'!msExtraFields' | snippet : [ 'display' => 'info', 'cacheUid' => 'info', ]}

Инфа

  • Синий  
  • Красный  
  • Желтый  
  • Зеленый  
  • Белый  

Начинка

  • флешка 16гб  
  • чехол и брелок  
  • только чехол  

Характеристики короткий вид (SHORT)

                    
  • display = short - показывает все свойства у кот выбрано отображение short. Удобно для показа товара в общем списке, не отображая все свойства, а только ключевые.
{'!msExtraFields' | snippet : [ 'display' => 'short', ]}

Инфа

Цвет: Синий   Красный   Желтый   Зеленый   Белый  

Начинка

Подарок: флешка 16гб   чехол и брелок   только чехол  

Лог выполнения сниппета с типом EDIT при открытии страницы: