Перейти к содержимому

Вывод бонусных баллов на карточке товара

Если в магазине подключена бонусная (партнёрская) программа, покупателю полезно видеть, сколько бонусных баллов он получит за покупку конкретного товара. Эту информацию можно вывести прямо на карточке товара.

В Shop-Script бонусные баллы начисляются на основе коэффициента конвертации (affiliate_credit_rate) — он задаётся в настройках партнёрской программы (Магазин → Маркетинг → Партнёрская программа). Коэффициент определяет, сколько единиц валюты нужно потратить, чтобы получить 1 бонусный балл.

Например, если коэффициент равен 100, то за каждые 100 рублей покупки начисляется 1 балл.

Откройте файл product.html вашей темы дизайна:

wa-data/public/shop/themes/<ваша_тема>/product.html

Добавьте следующий код в нужное место карточки товара (например, рядом с ценой):

{$credit_rate = $wa->shop->settings('affiliate_credit_rate')}
{if $credit_rate > 0}
{$product_price = shop_currency($product.price, null, null, 0)}
{$product_affiliate_bonus = $product_price / $credit_rate}
<div class="s-product-affiliate-bonus">
Этот товар добавит <span class="bold">+{round($product_affiliate_bonus, 2)}</span> баллов к вашему бонусному счёту!
</div>
{/if}
  1. $wa->shop->settings('affiliate_credit_rate') — получает коэффициент конвертации из настроек партнёрской программы.
  2. shop_currency($product.price, null, null, 0) — возвращает цену товара в текущей валюте в числовом формате (без символа валюты).
  3. Деление цены на коэффициент — вычисляет количество бонусных баллов за покупку товара.
  4. round(..., 2) — округляет результат до двух знаков после запятой.

Проверка {if $credit_rate > 0} гарантирует, что блок не отобразится, если бонусная программа отключена или коэффициент не задан.

Добавьте стили в файл user.css вашей темы:

.s-product-affiliate-bonus {
margin: 10px 0;
padding: 8px 12px;
background: #f0f7f0;
border-radius: 6px;
font-size: 14px;
color: #333;
}
.s-product-affiliate-bonus .bold {
font-weight: 700;
color: #2e7d32;
}

Аналогичный код можно добавить и в файлы списков товаров (list-thumbs.html, list-table.html), заменив $product на $p:

{$credit_rate = $wa->shop->settings('affiliate_credit_rate')}
{if $credit_rate > 0}
{$p_price = shop_currency($p.price, null, null, 0)}
{$p_bonus = $p_price / $credit_rate}
<div class="s-product-affiliate-bonus">
+{round($p_bonus, 2)} баллов
</div>
{/if}