MsOptions в корзине
Доброго времени суток, подскажите пожалуйста ка получить значение выбранного свойства товара в корзине?
Пытался получить отсюда — пустое поле. Гуглил — не получилось ничего найти без дополнительных сниппетов
Пытался получить отсюда — пустое поле. Гуглил — не получилось ничего найти без дополнительных сниппетов
{foreach $color as $color}
{if $product.color?}
{$product.color}
{/if}
{/foreach}
Комментарии: 14
Не совсем понятно что нужно получить. В дефолтном чанке есть код:
Он и выводит выбранные опции. Если нужно конкретную опцию вывести, то можно так:
{if $product.options?}
<div class="small">
{$product.options | join : '; '}
</div>
{/if}
Он и выводит выбранные опции. Если нужно конкретную опцию вывести, то можно так:
{$product.options['color']}
В том то и дело что данный код ничего не выводит
Может опции просто не передаются с товаром в корзину? Нужен код вывода товара.
Чанк вывода корзины. Или вы не этот имели ввиду?
<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>
Имел ввиду код вывода товара, где кнопка Купить, т.е. в списке каталога (если там есть выбор опций), или на самой странице товара.
Тогда этот, сразу не сообразил
<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
Внутри формы надо дописать:
А то получается что опции не добавляются в корзину :)
p.s. А ещё там у вас в select нет атрибутов name, они почему то в options:
Нужно чтобы было так:
<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>
после добавления
<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}
?
Да, и я дополнил свой предыдущий комментарий, нужно чтобы в селектах был name правильный, у вас там не так выводится.
хм, подправил вроде как вы сказали, но все равно не выводится…
У вас получилось?
Столкнулся с этой проблемой и оставлю тут решение…
У меня были перед закрывающим и не работало тоже.
<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="[]">
Хидден инпуты должны быть СРАЗУ ПОСЛЕ начала Форм.У меня были перед закрывающим и не работало тоже.
«СРАЗУ ПОСЛЕ ФОРМЫ», что вы имеете ввиду, можно пример посмотреть?
<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>
так...?
У меня не выводится артикул после добавления товара в корзину, хотя на странице этого товара он отображается, хотя цвет товара отображается!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.