MsOptions в корзине

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

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

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

Он и выводит выбранные опции. Если нужно конкретную опцию вывести, то можно так:
{$product.options['color']}
    Alex
    13 февраля 2018, 13:22
    0
    В том то и дело что данный код ничего не выводит
      Андрей
      13 февраля 2018, 14:01
      0
      Может опции просто не передаются с товаром в корзину? Нужен код вывода товара.
        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>
          Андрей
          13 февраля 2018, 17:36
          0
          Имел ввиду код вывода товара, где кнопка Купить, т.е. в списке каталога (если там есть выбор опций), или на самой странице товара.
            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
              Андрей
              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>
                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}
                ?
                  Андрей
                  13 февраля 2018, 22:16
                  0
                  Да, и я дополнил свой предыдущий комментарий, нужно чтобы в селектах был name правильный, у вас там не так выводится.
                    Alex
                    14 февраля 2018, 00:07
                    0
                    хм, подправил вроде как вы сказали, но все равно не выводится…
                      Roman
                      22 февраля 2019, 18:03
                      0
                      У вас получилось?
MrKarandash
08 февраля 2019, 15:26
0
Столкнулся с этой проблемой и оставлю тут решение…
<form method="post" class="ms2_form">
            <input type="hidden" name="id" value="{$id}">
            <input type="hidden" name="count" value="1">
            <input type="hidden" name="options" value="[]">
Хидден инпуты должны быть СРАЗУ ПОСЛЕ начала Форм.
У меня были перед закрывающим и не работало тоже.
    Roman
    22 февраля 2019, 17:32
    0
    «СРАЗУ ПОСЛЕ ФОРМЫ», что вы имеете ввиду, можно пример посмотреть?
    <form method="post" class="ms2_form">
            <input type="hidden" name="id" value="{$id}">
            <input type="hidden" name="count" value="1">
            <input type="hidden" name="options" value="[]">
                 {if $product.options?}
                    <div class="small">
                          {$product.options | join : '; '}
                    </div>
                  {/if}
    </form>
    так...?
      Roman
      22 февраля 2019, 17:39
      0
      У меня не выводится артикул после добавления товара в корзину, хотя на странице этого товара он отображается, хотя цвет товара отображается!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      14