Опции товара в корзине

Здравствуйте!

Знает кто можно ли и как вывести опции товара в саму корзину к msCart?
Oleg
06 мая 2019, 20:25
modx.pro
1 784
-1

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

Андрей
06 мая 2019, 20:49
0
Доставать поле по id ресурса:
{$product.id | resource : 'introtext'}
    Oleg
    06 мая 2019, 20:58
    -3
    Кхм… Я имею вводу ProduktsOptions пытался так выводить, но к сожалению не выводит.
    [[msProductOptions?
                                    	&tpl=`tpl.msProductOptions`
                                    	&product=`[[+id]]`
                                    ]]
      Андрей
      06 мая 2019, 21:22
      0
      А причём здесь описание товара и его опции? Сформулируйте более понятно задачу.
        Oleg
        07 мая 2019, 10:13
        0
        Немного ошибся. Тему поменял, подскажете?
          Андрей Шевяков
          07 мая 2019, 10:20
          0
          В стандартном чанке выводятся так:
          {if $product.options?}
              <div class="small">
                   {$product.options | join : '; '}
              </div>
          {/if}
            Oleg
            07 мая 2019, 15:01
            0
            Странно но не стандартным чанком ни кастомным опции не появляются, хотя они есть и показываются в каталоге.
              Андрей
              07 мая 2019, 20:54
              0
              Как минимум выбранные опции должны передаваться в корзину через скрытое поле, что работает в стандартных чанках минишопа. Приводите чанки полностью, где выводятся опции, как передаются, чанк корзины и т.д. Гадать что у вас не так можно долго.
                Oleg
                07 мая 2019, 22:25
                0
                Вызов
                [[msCart?
                	&tpl=`msCart`
                ]]
                Вывод опций
                {if $product.id?}
                                        <div class="cart-item__element cart-item__element_desc" data-name-title="Наименование/ характеристики">
                                            <div class="element-desc-wrap"><a class="cart-item__title" href="{$product.id | url}">{$product.pagetitle}</a>
                                            </div> 
                                            {if $product.options?}
                                                        <div class="small">
                                                            {$product.options | join : '; '}
                                                        </div>
                                                    {/if}
                                        </div>
                                    {else}
                                        <div class="cart-item__element cart-item__element_desc" data-name-title="Наименование/ характеристики">
                                            <div class="element-desc-wrap">
                                                <a class="cart-item__title" href="{$product.id | url}">{$product.name}</a>
                                                {if $product.options?}
                                                        <div class="small">
                                                            {$product.options | join : '; '}
                                                        </div>
                                                    {/if}
                                            </div> 
                                        </div>             
                                    {/if}
                  Андрей
                  07 мая 2019, 23:49
                  0
                  Нужен чанк откуда передаются опции, страница товара, или вывод в каталоге и т.п. И корзину лучше вызывать некешируемым сниппетом.
                    Oleg
                    08 мая 2019, 00:15
                    0
                    А почему лучше не кешируемый?

                    Чанк вывода карточки товара, отображение опций.
                    <div class="product-list-block__char">
                                                   [[msProductOptions?
                                                    	&tpl=`msProductOptions`
                                                    	&product=`[[+id]]`
                                                    ]]
                                                </div>
                      Андрей
                      08 мая 2019, 12:38
                      0
                      Почитать про вызовы можно например тут — Вызов кешируемых и некешируемых сниппетов в примерах.

                      Чанк вывода карточки товара, отображение опций.
                      Нужен полный чанк, вместе с тегом form и т.п. Есть подозрение что опции просто не отправляются в корзину.
                      Oleg
                      08 мая 2019, 19:32
                      0
                      <div  class="ms2_product product-list-block__item">
                              
                                              <div class="product-list-block__img">
                                                  <div class="object-fit-normal object-fit-normal_contain">
                                                      <div class="object-fit-normal__wrapper">
                                                          {if $thumb?}
                                                              <img class="object-fit-normal__img js-object-fit" src="{$image}" alt="{$pagetitle}" role="presentation" />
                                                          {else}
                                                              <img src="/assets/images/favicon/favicon_countrynet-01.png"
                                                               class="object-fit-normal__img js-object-fit" alt="{$pagetitle}" title="{$pagetitle}"/>
                                                          {/if}
                                                      </div>
                                                  </div>
                                              </div>
                                              <form method="post" class="ms2_form product-list-block__params">
                                                  <input type="hidden" name="id" value="{$id}">
                                                  <input type="hidden" name="count" value="1">
                                                  <input type="hidden" name="options" value="[]">
                                                  <div class="product-list-block__title">{$pagetitle}</div>
                                                  <div class="product-list-block__char">
                                                     [[msProductOptions?
                                                      	&tpl=`msProductOptions`
                                                      	&product=`[[+id]]`
                                                      ]]
                                                  </div>
                                                  <div class="product-list-block__price">{$price} руб.</div>
                                                  <div class="product-list-block__to-cart js-no-ajax">
                                                      
                                                      <a class="product-list-block__go" href="http://countrynet.ru/{$id | url}">Перейти к товару</a>
                                                      <button class="product-list-block__cart icon-cart" type="submit" name="ms2_action" value="cart/add"></button>
                                                  </div>
                                              </form>
                                          </div>
                      Андрей
                      09 мая 2019, 03:59
                      0
                      Судя по чанку всё должно передаваться и работать.

                      Надо уже разбираться в вашем конкретном случае, хотя это всё весьма странно. И покажите ещё на всякий случай чанк — msProductOptions. Также попробуйте вызвать msCart с пустым tpl, и посмотреть какие поля приходят в товар.
                      Oleg
                      09 мая 2019, 20:32
                      0
                      {foreach $options as $option}
                          <div class="card__param">
                              <b>{$option.caption}:</b>
                                  {if $option.value is array}
                                      {$option.value | join : ', '}
                                  {else}
                                      {$option.value}
                                  {/if}
                          </div>
                      {/foreach}
                      Oleg
                      10 мая 2019, 12:22
                      0
                      Если пробовать выводить так:
                      [[msProductOptions?
                                                      	&product=`[[+id]]`
                                                      ]]
                      Пишет «The resource with id = is not instance of msProduct.»
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
15