Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Артикул варианта товара в карточке товара

Следить
Главная
17:09
21 мар
#
?
Андрей написал:

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

Подсткажите, вывести артикул варианта товара {$product->variants[0]->sku|default:''} , а не общий артикул товара в карточке товара? Да и заставить его обновляться при выборе другого варианта товара. Также как например цена. В скрипте обработки выбора другого варианта товара не разобрался. Со скриптом слабо видимо.

18:02
21 мар
#
Разработчик написал:

Вот простейшая страница товара (для файла product.tpl) с выбором варианта, показом цены и артикула соответственно выбору, и возможностью положить в корзину выбранный вариант в необходимом количестве. Исходный код привожу без модификаторов |default и |escape, чтобы вам было легче разобраться.

{* курс текущей валюты *}
{$rate = $currency->rate_from / $currency->rate_to}

{* карточка товара *}
<div class="product">
    Название: {$product->model} <br />
    Код производителя: {$product->pcode} <br />

    <hr />

    Фотография: <img src="{$product->large_image}" />

    <hr />

    Цена: <span id="price"></span> {$currency->sign} <br />
    Артикул: <span id="sku"></span> <br />

    <hr />

    Выберите вариант товара:
    <select id="selector" onchange="selectVariant(this)">
        {foreach $product->variants as $item}
            <option value="{$item->variant_id}" data-sku="{$item->sku}" data-price="{($item->discount_price * $rate)|string_format:'%1.2f'}">
                {$item->name}
            </option>
        {/foreach}
    </select>

    <hr />

    <form action="" id="buy-form">
        Количество: <input name="amount" type="text" value="1" />
        <input type="submit" value="Купить" />
    </form>
</div>

{* скрипт обработки выбора варианта *}
<script type="text/javascript">
    function selectVariant ( el ) {
        var opt = el.options[el.selectedIndex];

        jQuery('#price').html(opt.getAttribute('data-price'));
        jQuery('#sku').html(opt.getAttribute('data-sku'));

        jQuery('#buy-form').attr('action', '{$site}cart/add/' + opt.getAttribute('value'));
    }

    /* имитируем начальный выбор варианта */
    jQuery('#selector').change();
</script>


Принцип работы: когда выполняем перечисление вариантов товара, в соответствующий каждому товару тег option добавляем разные атрибуты с желаемыми сведениями о варианте товара. А в обработчике события onchange селектора вариантов излекаем эти атрибуты и расставляем по необходимым местам карточки товара.

23:16
24 мар
#
?
Андрей написал:

Спасибо, помогло, разобрался со встроенным в tm-шаблон скриптом. Теперь в карточке товара выводятся и меняются артикулы варианта товара. Заодно вывел артикулы в формы корзины, в карточке заказа в фронте, в админке и в прайсе. Кстати удивился почему их нет в шаблоне админки по умолчанию. Манагеры не хотят без них работать.

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.


Хостинг для сайта

Хостинг для интернет магазина

Svai.net

Украина
г. Черкассы
5+ Заказать

TutHost.ua

Украина
г. Киев
Заказать

Mirohost.net

Украина
г. Киев
? Заказать

HyperHosting.com.ua

Украина
г. Винница
i подробнее Заказать

Agava.ru

Россия
г. Москва
Заказать

Ukraine.com.ua

Украина
г. Киев
5 Заказать
Импераготовасотрудничатьс провайдерами Важно Учтите Этот список перечисляет лишь некоторых хостинг-провайдеров, у которых существуют специальные тарифные планы для интернет магазинов, а сам список не означает, что другие провайдеры чем-то хуже.

Существующие в списке оценки по 5-бальной шкале не должны учитываться при выборе, так как носят субъективный характер и касаются соотношения цена-качество-скорость только для самых дорогих тарифных планов.

Демо Главная Хронология Соглашение Материалы Контакты