Быстрый старт

06 сентября 2019, 07:00

Вывод формы промо-кода

Просто вызываем сниппет msPromoCode2 в нужном месте:

{'!msPromoCode2' | snippet}

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

Обновление цен в каталоге и на странице товара

Если вы выводите форму промо-кода на страницах каталога или на странице товара, то после применения промо-кода, хорошо бы, чтобы цены обновлялись на лету. Сделать это не так уж и трудно, для этого нужно:

  1. Обернуть блок товара тегом с классом .js-mspc2-product и атрибутом data-id равным id текущего товара.
  2. Обернуть число цены товара, находящуюся в этом блоке, тегом с классом .js-mspc2-product-price
  3. Обернуть число старой цены товара, находящуюся в этом блоке, тегом с классом .js-mspc2-product-old-price

Пример кода для товара в каталоге

Предположим, что это происходит в чанке tpl.msProducts.row:

<div class="ms2_product [ js-mspc2-product ]" data-id="{$id}">
    ...
    <span class="price">
        <span class="[ js-mspc2-product-price ]">
            {$price}
        </span>
        {'ms2_frontend_currency' | lexicon}
    </span>

    <span class="discount" style="display: none;">
        Скидка:
        <span class="[ js-mspc2-product-discount-amount ]">
            0
        </span>
        {'ms2_frontend_currency' | lexicon}
    </span>

    {if $old_price?}
        <span class="old_price">
            <span class="[ js-mspc2-product-old-price ]">
                {$old_price}
            </span>
            {'ms2_frontend_currency' | lexicon}
        </span>
    {/if}
    ...
</div>

Пример кода для страницы товара

Предположим, что мы это делаем в чанке msProduct.content:

...
<div id="msProduct" class="[ js-mspc2-product ]" data-id="{$_modx->resource['id']}">
    ...
    <span class="[ js-mspc2-product-price ]">
        [[+price]]
    </span>
    [[%ms2_frontend_currency]]

    [[+old_price:gt=`0`:then=`
        <span class="old_price ml-2">
            <span class="[ js-mspc2-product-old-price ]">
                [[+old_price]]
            </span>
            [[%ms2_frontend_currency]]
        </span>
    `:else=``]]

    <div class="discount ml-md-3" style="display: none;">
        Скидка:
        <span class="[ js-mspc2-product-discount-amount ]">
            0
        </span>
        [[%ms2_frontend_currency]]
    </div>
</div>

Вывод размера скидки рядом с ценой

В том же блоке товара с классом .js-mspc2-product добавить подобный код:

<div style="display: none;">
    Скидка:
    <span class="[ js-mspc2-product-discount-amount ]">0</span>
    {'ms2_frontend_currency' | lexicon}
</div>

Обратите внимание на тег с классом .js-mspc2-product-discount-amount. Он обязателен для обновления на лету.



Предыдущий раздел
Программное API