Примеры генерации сертификатов

Для понимания параметров и методов хелперов, изучите статьи генерация сертификатов и особенности работы хелпера generateOneCertificate.

Автоматическое создание сертификатов может быть организовано в различных местах сайта. Это поможет вам стимулировать людей совершать покупки в вашем магазине.

Рассмотрим примеры генерации сертификатов:

  • Сертификаты в уведомлениях.
  • Сертификаты в Рассылках.
  • Сертификаты на странице успешного оформления.
  • Сертификаты на главной странице.
  • Сертификаты на странице товара.

Сертификаты в уведомлениях

Необходимо при переводе заказа в статус Выполнен каждый раз дарить покупателю подарочный сертификат.

Открываем раздел Магазин - Настройки - Уведомления - Заказ выполнен (Покупатель).

Находим блок с кодом:

Спасибо за покупку в магазине

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

{$certificate = shopGiftcertificatesPluginHelper::generateOneCertificate([
    'amount' => '700',
    'currency' => 'RUB',
    'contact_id' => $order.contact_id,
    'state_id' => 19
], ['notification' => 'user'])}
{if $certificate}
    <p>Мы дарим вам подарочный сертификат на сумму {shop_currency($certificate.amount, $certificate.currency, $order.currency)}!</p>
    <p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
{/if}

Вот так должно выглядеть уведомление:

Если хотите, чтобы сертификаты создавались при сумме заказа от 15 000 (в основной валюте), вам стоит добавить соответствующее условие:

{if shop_currency($order.total, $order.currency, $wa->shop->primaryCurrency(), false) > 15000}
    {$certificate = shopGiftcertificatesPluginHelper::generateOneCertificate([
        'amount' => '700',
        'currency' => 'RUB',
        'contact_id' => $order.contact_id,
        'state_id' => 19
    ], ['notification' => 'user'])}
    {if $certificate}
        <p>Мы дарим вам подарочный сертификат на сумму {shop_currency($certificate.amount, $certificate.currency, $order.currency)}!</p>
        <p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
    {/if}
{/if}

При использовании генераторов в уведомлениях рекомендуется использовать проверку пользователя (user), если вы работаете через хелпер generateOneCertificate.

Сертификаты в Рассылках

Через приложение Рассылки в своих письмах вы можете создавать сертификаты.

1) Создайте блок с любым ID. Например, giftcertificates.mailer в разделе Сайт - Блоки.

В содержимое блока вставьте одну из следующих конструкций кода, чтобы сгенерировать сертификаты.

Сертификат пользователя:

{if !empty($id) && $wa->shop}
    {shopGiftcertificatesPluginHelper::generateCertificateTemplate([
        'amount' => '700',
        'currency' => 'RUB',
        'state_id' => 19,
        'send' => 'user',
        'contact_id' => $id
    ])}
{/if}

Сертификат с привязкой по email:

{if !empty($email) && $wa->shop}
    {shopGiftcertificatesPluginHelper::generateCertificateTemplate([
        'amount' => '700',
        'currency' => 'RUB',
        'state_id' => 19,
        'send' => 'email',
        'email' => $email
    ])}
{/if}

Сертификат с проверкой пользователя:

{if !empty($id) && $wa->shop}
    {shopGiftcertificatesPluginHelper::generateOneCertificate([
        'amount' => '700',
        'currency' => 'RUB',
        'contact_id' => $id,
        'state_id' => 19
    ], ['mailer' => 'user'], true)}
{/if}

2) Скопируйте только ID блока. В данном примере это giftcertificates.mailer.

3) Вставьте в содержимое письма конструкцию:

{$wa->block("giftcertificates.mailer", ["id" => ifempty($id, 0), "email" => ifempty($email, "")])}

Вам нужно заменить только giftcertificates.mailer, остальной код не изменяйте.

При использовании генераторов в рассылках рекомендуется использовать проверку пользователя (user), если вы работаете через хелпер generateOneCertificate.

Сертификаты на странице успешного оформления

Необходимо дарить сертификат с бесплатным товаром всем покупателям, оформившим заказ на сумму 25000 руб (основная валюта). В сертификат добавим ограничения по сумме заказа и времени.

Откройте шаблон checkout.success.html в разделе Магазин - Витрина - Шаблоны.

В любое удобное для вас место вставьте конструкцию кода:

{if !empty($order.id) && shop_currency($order.total, $order.currency, $wa->shop->primaryCurrency(), false) > 25000}
    {shopGiftcertificatesPluginHelper::generateCertificateTemplate([
        'state_id' => 19,
        'use_limitations' => 1,
        'limitations' => [
            'lifetime' => 10,
            'min' => [
                'value' => 10000,
                'currency' => 'RUB'
            ]
        ],
        'free_products' => [
            'skus' => [30]
        ]
    ])}
{/if}

Сертификаты на главной странице

Необходимо дарить сертификат всем пользователям из группы VIP

1) Находим ID группы VIP. Для этого откройте приложение Контакты и вашу группу VIP. В адресной строке браузера будет отображен ID категории контактов.

В данном примере это 4.

2) Откройте шаблон home.html в разделе Магазин - Витрина - Шаблоны.

3) В любое удобное для вас место вставьте конструкцию кода:

{if shopGiftcertificatesPluginHelper::contactInCategory($wa->user()->getId(), 4)}
    {shopGiftcertificatesPluginHelper::generateOneCertificate([
        'amount' => '700',
        'currency' => 'RUB',
        'contact_id' => $wa->user()->getId(),
        'state_id' => 19
    ], ['home' => 'user'], true)}
{/if}

Подробнее про метод contactInCategory читайте в статье доступные хелперы.

Сертификаты на странице товара

Сгенерируем сертификат на странице конкретного товара. Сертификат будет сгенерирован единожды для пользователя.

Откройте шаблон product.html (или product.cart.html) в разделе Магазин - Витрина - Шаблоны.

Предположим, что ID нужного нам товара равен 25.

Вставьте конструкцию в нужную часть шаблона:

{if $product.id == '25'}
    {$certificate = shopGiftcertificatesPluginHelper::generateOneCertificate([
        'amount' => '700',
        'currency' => 'RUB',
        'state_id' => 19
    ], ['product' => 'user'])}
    {if $certificate}
        <p>Поздравляем! Магазин дарит вам сертификат на сумму {shop_currency($certificate.amount, $certificate.currency)}!</p>
        <p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
    {/if}
{/if}бю.

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