MsOptions в корзине Новый

Дополнение: minishop2

Доброго времени суток, подскажите пожалуйста ка получить значение выбранного свойства товара в корзине?
Пытался получить отсюда — пустое поле. Гуглил — не получилось ничего найти без дополнительных сниппетов
{foreach $color as $color}
{if $product.color?}
{$product.color}
{/if}
{/foreach}           
12 февраля 2018, 23:43    Alex   
0    162 0


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

  1. Андрей 13 февраля 2018, 12:50 # 0
    Не совсем понятно что нужно получить. В дефолтном чанке есть код:
    {if $product.options?}
    	<div class="small">
    		{$product.options | join : '; '}
    	</div>
    {/if}
    

    Он и выводит выбранные опции. Если нужно конкретную опцию вывести, то можно так:
    {$product.options['color']}
    1. Alex 13 февраля 2018, 13:22 # 0
      В том то и дело что данный код ничего не выводит
      1. Андрей 13 февраля 2018, 14:01 # 0
        Может опции просто не передаются с товаром в корзину? Нужен код вывода товара.
        1. Alex 13 февраля 2018, 17:32 # 0
          Чанк вывода корзины. Или вы не этот имели ввиду?
          <div id="msCart">
              {if !count($products)}
                  {'ms2_cart_is_empty' | lexicon}
              {else}
                  <div class="table-responsive">
                      <table class="ui striped right aligned table">
                          <thead class="ui header">
                              <th class="image"> </th>
                              <th class="title">{'ms2_cart_title' | lexicon}</th>
                              <th class="count">{'ms2_cart_count' | lexicon}</th>
                              <th class="weight">Характеристики</th>
                              <th class="price">{'ms2_cart_price' | lexicon}</th>
                              <th class="remove">{'ms2_cart_remove' | lexicon}</th>
                          </thead>
          
                          {foreach $products as $product}
          
                              <tr id="{$product.key}">
                                  <td class="image">
                                      {if $product.thumb?}
                                          <img src="{$product.thumb | phpthumbon : "w=100&h=100&zc=1"}" alt="{$product.pagetitle}" title="{$product.pagetitle}"/>
                                      {else}
                                          <img src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png"
                                               srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x"
                                               alt="{$product.pagetitle}" title="{$product.pagetitle}"/>
                                      {/if}
                                  </td>
                                  <td class="title">
                                      {if $product.id?}
                                          <a href="{$product.id | url}">{$product.pagetitle | typography}</a>
                                      {else}
                                          {$product.name}
                                      {/if}
                                  </td>
                                         
                                  <td class="count">
                                      <form method="post" class="ms2_form form-inline" role="form">
                                          <input type="hidden" name="key" value="{$product.key}"/>
                                          <div class="form-group">
                                              <input type="number" name="count" value="{$product.count}"
                                                     class="input-sm form-control" id="product_price"/>
                                              <span class="hidden-xs">{'ms2_frontend_count_unit' | lexicon}</span>
                                              <button class="btn btn-default" type="submit" name="ms2_action" value="cart/change">
                                                  <i class="glyphicon glyphicon-refresh"></i>
                                              </button>
                                          </div>
                                      </form>
                                  </td>
                                  <td class="weight">
                                      {if $product.options?}
                                          <div class="small">
                                             {$product.options | join : '; '}
                                          </div>
                                      {/if}
                                  </td>
                                 
                                  <td class="price">
                                      <span>{$product.price}</span> {'ms2_frontend_currency' | lexicon}
                                      {if $product.old_price?}
                                      <span class="old_price">{$product.old_price}</span> {'ms2_frontend_currency' | lexicon}
                                          {/if}
                                  </td>
                                  <td class="remove">
                                      <form method="post" class="ms2_form ui grid center aligned">
                                          <input type="hidden" name="key" value="{$product.key}">
                                          <button class="ui remove grey button" type="submit" name="ms2_action" value="cart/remove">
                                              <i class="glyphicon glyphicon-remove"></i>
                                          </button>
                                      </form>
                                  </td>
                              </tr>
                              
                          {/foreach}
          
                          <thead class="footer">
                              <th class="total" colspan="2">{'ms2_cart_total' | lexicon}:</th>
                              <th class="total_count">
                                  <span class="ms2_total_count">{$total.count}</span>
                                  {'ms2_frontend_count_unit' | lexicon}
                              </th>
                              <th class="total_weight">
                                  <span class="ms2_total_weight"></span>
                                  
                              </th>
                              <th class="total_cost">
                                  <span class="ms2_total_cost">{$total.cost}</span>
                                  {'ms2_frontend_currency' | lexicon}
                              </th>
                              <th> </th>
                          </thead>
                      </table>
                  </div>
                  <form method="post">
                      <button class="ui remove grey button fr" type="submit" name="ms2_action" value="cart/clean">
                          <i class="glyphicon glyphicon-remove"></i> {'ms2_cart_clean' | lexicon}
                      </button>
                  </form>
              {/if}
          </div>
          
          1. Андрей 13 февраля 2018, 17:36 # 0
            Имел ввиду код вывода товара, где кнопка Купить, т.е. в списке каталога (если там есть выбор опций), или на самой странице товара.
            1. Alex 13 февраля 2018, 19:19 # 0
              Тогда этот, сразу не сообразил
              <div id="msProduct" class="row">
                  <div class="ten wide column">
                      [[!msGallery]]
                  </div>
                  <div class="six wide column">
                      <p>[[*introtext:typography]]</p>
                      <form class="form-horizontal ms2_form" method="post">
                          <input type="hidden" name="id" value="[[*id]]"/>
                          <div class="form-group">
                              <label class="col-md-2 control-label">[[%ms2_product_price]]:</label>
                              <div class="col-md-10 form-control-static">
                                  [[+price]] [[%ms2_frontend_currency]]
                                  [[+old_price:gt=`0`:then=`
                                  <span class="old_price">[[+old_price]] [[%ms2_frontend_currency]]</span>
                                  `:else=``]]
                              </div>
                          </div>
                          <div class="form-group form-inline">
                              <label class="col-md-2 control-label" for="product_price">[[%ms2_cart_count]]:</label>
                              <div class="col-md-10">
                                  <input type="number" name="count" id="product_price" class="input-sm form-control" value="1"/>
                                  [[%ms2_frontend_count_unit]]
                              </div>
                          </div>
                          [[msOptions?options=`color,size,tags`]]
                          [[msProductOptions]]
                          <div class="form-group">
                              <div class="col-md-offset-2 col-md-10">
                                  <button type="submit" class="ui teal huge button" name="ms2_action" value="cart/add">
                                      <i class="glyphicon glyphicon-barcode"></i> [[%ms2_frontend_add_to_cart]]
                                  </button>
                              </div>
                          </div>
                      </form>
              
                  </div>
              </div>
              salon.test28.ru/ploskie-resnicy-lovely-flat-mix
              1. Андрей 13 февраля 2018, 19:25 # +1
                Внутри формы надо дописать:
                <form class="form-horizontal ms2_form" method="post">
                            <input type="hidden" name="id" value="[[*id]]"/>
                	    <input type="hidden" name="options" value="[]"> //принимает массив опций
                

                А то получается что опции не добавляются в корзину :)

                p.s. А ещё там у вас в select нет атрибутов name, они почему то в options:
                <select name="" id="">
                	<option value="D" name="options[color]">D</option>
                </select>
                

                Нужно чтобы было так:
                <select name="options[color]" id="option_color">
                	<option value="Белый">Белый</option>
                </select>
                
                1. Alex 13 февраля 2018, 19:43 # 0
                  после добавления
                  <form class="form-horizontal ms2_form" method="post">
                              <input type="hidden" name="id" value="[[*id]]"/>
                  	    <input type="hidden" name="options" value="[]"> //принимает массив опций
                  должен работать стандартный код
                  {if $product.options?}
                  	<div class="small">
                  		{$product.options | join : '; '}
                  	</div>
                  {/if}
                  ?
                  1. Андрей 13 февраля 2018, 22:16 # 0
                    Да, и я дополнил свой предыдущий комментарий, нужно чтобы в селектах был name правильный, у вас там не так выводится.
                    1. Alex 14 февраля 2018, 00:07 # 0
                      хм, подправил вроде как вы сказали, но все равно не выводится…
    Вы должны авторизоваться, чтобы оставлять комментарии.