Для автоматического создания сертификатов доступно 3 хелпера:
- {shopGiftcertificatesPluginHelper::generateCertificate($params)} - возвращает массив с данными созданного сертификата. В дальнейшем вы должны самостоятельно обработать эти данные.
- {shopGiftcertificatesPluginHelper::generateCertificateTemplate($params)} - возвращает HTML-код готового сертификата (шаблон).
- {shopGiftcertificatesPluginHelper::generateOneCertificate($params, $validation_types, $return_template)} - один раз создает сертификат в зависимости от проверок. Возвращает либо массив данных, либо шаблон. Прочитайте об особенностях работы данного хелпера.
Первые 2 хелпера создают сертификаты при каждом вызове.
Параметры хелперов
Для того чтобы сертификат был сгенерирован, необходимо передать в хелпер корректные параметры.
Рассмотрим массив $params:
/**
* Данные сертификата, который необходимо создать
*
* array['to'] string Поле "Кому"
* array['from'] string Поле "От"
* array['message'] string Поле "Сообщение"
* array['amount'] float Поле "Сумма"
* array['currency'] string Поле с валютой
* array['send'] string Поле "Метод передачи сертификата". Доступные значения: email, post, user, not
* array['email'] string Поле "Email". Необходимо, если параметр send = email или происходит проверка email-адреса
* array['post'] array Массив данных с адресом доставки. Необходимо, если параметр send = post
* array['post']['country'] string Страна в формате iso3letter
* array['post']['region'] int ID региона
* array['post']['city'] int Название города
* array['post']['street'] int Поле для ввода адреса
* array['post']['postcode'] int Индекс
* array['post']['phone'] string Телефон
* array['contact_id'] int ID контакта, которому предназначается сертификат. Необходимо, если параметр send = user или происходит проверка контакта
* array['state_id'] int ID статуса сертификата
* array['use_limitations'] int Использовать ограничение или нет. Доступные значения: 1 или 0
* array['limitations'] array Массив с информацией об ограничениях
* array['limitations']['expired'] string Дата истечения сертификата в формате: Y-m-d
* array['limitations']['lifetime'] int Срок действия в днях.
* array['limitations']['max'] float Максимальная сумма, которая может быть потрачена в %. Указывайте значение от 0 до 100
* array['limitations']['min'] array Массив в информацией о минимальной сумме заказа
* array['limitations']['min']['value'] float Минимальная сумма заказа
* array['limitations']['min']['currency'] string Валюта минимальной суммы заказа
* array['usage'] array Массив с данными о количестве использований сертификата
* array['usage']['type'] string Тип сертификата: одноразовый (disposable) или многоразовый (multiple). Доступные значения: disposable, multiple
* array['send_notification'] int Отправлять уведомление покупателю или нет. Доступные значения: 1 или 0
* array['default_template'] string Символьный код шаблона по умолчанию. Например, template1 или template3
* array['template_type'] string Тип шаблона сертификата. Доступные значения: default или custom
* Если указан custom, это значит, что будет использован шаблон, который передан в параметре template (см. ниже)
* array['template'] string Индивидуальный шаблон сертификата. Если существует данный параметр, тогда параметр template_type автоматически будет custom.
* array['free_products'] array Массив информации о бесплатных товарах
* array['free_products']['products'][] array Массив с ID товаров
* array['free_products']['skus'][] array Массив с ID артикулов товаров
*
* @param array $params (Параметры смотрите выше)
* @return array
**/
$params = [
'to' => 'Любимому покупателю',
'from' => 'Лучшего магазина',
'message' => '',
'amount' => '500',
'currency' => 'RUB',
'send' => 'email',
'email' => 'test@test.com',
'post' => [
'country' => 'rus',
'region' => '77',
'city' => 'Москва',
'street' => 'улица, дом, квартира',
'postcode' => '353535',
'phone' => '89999999999'
],
'contact_id' => 5,
'state_id' => 5,
'use_limitations' => 1,
'limitations' => [
'expired' => '2040-10-28',
'lifetime' => 30,
'max' => 100,
'min' => [
'value' => 2000,
'currency' => 'RUB'
]
],
'usage' => [
'type' => 'disposable'
],
'send_notification' => 0,
'default_template' => 'template3',
'template_type' => 'default',
'free_products' => [
'products' => [25, 5],
'skus' => [345, 415]
]
Рассмотрим массив $validation_types:
/**
* Виды проверок, чтобы понять, стоит ли создавать сертификат или нет
*
* @param string[] $validation_types - По умолчанию используется значение 'user'
* Доступные значения:
* 'user' - Проверяет, авторизован ли пользователь, и был ли ему когда-либо сгенерирован сертификат через данный хелпер
* 'session' - Проверяет, есть ли у пользователя в сессии специальная запись о том, что был сгенерирован сертификат через данный хелпер
* 'cookie' - Проверяет, есть ли у пользователя в куке специальная запись о том, что был сгенерирован сертификат через данный хелпер
* 'ip' - Проверяет, был ли сгенерирован сертификат для IP через данный хелпер
* @return array
**/
$validation_types = ['user']
Рассмотрим параметр $return_template:
/**
* Вернуть массив данных или шаблон сертификата
*
* @param bool $return_template - По умолчанию используется значение false
* Доступные значения:
* true - Возвращает шаблон сертификата в формате HTML
* false - Возвращает массив данных сертификата
* @return bool
**/
$return_template = false;
Примеры
Если вы не можете разобраться, откуда у state_id значение 19, прочитайте статью про статусы.
Простой сертификат со скидкой 700 р.
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
'amount' => '700',
'currency' => 'RUB',
'state_id' => 19
])}
Сертификат пользователя
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
'amount' => '700',
'currency' => 'RUB',
'state_id' => 19,
'send' => 'user',
'contact_id' => $wa->user()->getId()
])}
Будет сгенерирован только для авторизованного пользователя.
Сертификат по email
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
'amount' => '700',
'currency' => 'RUB',
'state_id' => 19,
'send' => 'email',
'email' => $wa->user()->get('email', 'default')
])}
Будет прикреплен к email адресу.
Сертификат с ограничением 10 дней и 5000 руб.
Получим массив данных и выведем только код сертификата.
{$certificate = shopGiftcertificatesPluginHelper::generateCertificate([
'amount' => '700',
'currency' => 'RUB',
'state_id' => 19,
'use_limitations' => 1,
'limitations' => [
'lifetime' => 10,
'min' => [
'value' => 5000,
'currency' => 'RUB'
]
]
])}
{if $certificate}
<p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
{/if}
Бесплатные товары с минимальной суммой заказа 10000 руб на 10 дней
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
'state_id' => 19,
'use_limitations' => 1,
'limitations' => [
'lifetime' => 10,
'min' => [
'value' => 10000,
'currency' => 'RUB'
]
],
'free_products' => [
'products' => [25, 5],
'skus' => [30, 45, 52]
]
])}
В данном примере прикреплено 5 бесплатных товаров: 2 товара, 3 артикула.
Сертификат, который будет сгенерирован только 1 раз для пользователя
{shopGiftcertificatesPluginHelper::generateOneCertificate([
'amount' => '700',
'currency' => 'RUB',
'contact_id' => $wa->user()->getId(),
'state_id' => 19
], ['user'], true)}
Сертификат, который будет сгенерирован только 1 раз. Проверка сессии или куки
Получим массив данных и выведем только код сертификата.
{$certificate = shopGiftcertificatesPluginHelper::generateOneCertificate([
'amount' => '700',
'currency' => 'RUB',
'state_id' => 19
], ['session', 'cookie'])}
{if $certificate}
<p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
{/if}
Сертификат со своим кодом
Создадим сертификат с кодом "Распродажа года!".
{shopGiftcertificatesPluginHelper::generateOneCertificate([
'amount' => '700',
'code' => 'Распродажа года!',
'currency' => 'RUB',
'contact_id' => $wa->user()->getId(),
'state_id' => 19
], ['user'], true)}
Где это можно использовать?
Сертификаты можно генерировать в уведомлениях, рассылках, после успешного оформления заказа и тд. Подробнее читайте в статье примеры генерации сертификатов.
dumped from wa-cache/91decb/apps/hub/templates/compiled/hub_ru_RU/69/4c/8d/694c8da32cdaa6412c49c1a7776ac98da1fbc2b7.file.topic.page.html.php line #45:
NULL
dumped from wa-cache/91decb/apps/hub/templates/compiled/hub_ru_RU/69/4c/8d/694c8da32cdaa6412c49c1a7776ac98da1fbc2b7.file.topic.page.html.php line #46:
'<p>Для автоматического создания сертификатов доступно 3 хелпера:</p>
<ul>
<li>{shopGiftcertificatesPluginHelper::generateCertificate($params)} - возвращает массив с данными созданного сертификата. В дальнейшем вы должны самостоятельно обработать эти данные.</li>
<li>{shopGiftcertificatesPluginHelper::generateCertificateTemplate($params)} - возвращает HTML-код готового сертификата (<a href="https://welldi.ru/hub/56/templates/">шаблон</a>).</li>
<li>{shopGiftcertificatesPluginHelper::generateOneCertificate($params, $validation_types, $return_template)} - один раз создает сертификат в зависимости от проверок. Возвращает либо массив данных, либо шаблон. <a href="https://welldi.ru/hub/47/generateonecertificate/">Прочитайте</a> об особенностях работы данного хелпера.</li>
</ul>
<p>Первые 2 хелпера создают сертификаты при каждом вызове.</p>
<h3>Параметры хелперов</h3>
<p>Для того чтобы сертификат был сгенерирован, необходимо передать в хелпер корректные параметры.</p>
<p>Рассмотрим массив $params:</p>
<pre>
/**
* Данные сертификата, который необходимо создать
*
* array[\'to\'] string Поле "Кому"
* array[\'from\'] string Поле "От"
* array[\'message\'] string Поле "Сообщение"
* array[\'amount\'] float Поле "Сумма"
* array[\'currency\'] string Поле с валютой
* array[\'send\'] string Поле "Метод передачи сертификата". Доступные значения: email, post, user, not
* array[\'email\'] string Поле "Email". Необходимо, если параметр send = email или происходит проверка email-адреса
* array[\'post\'] array Массив данных с адресом доставки. Необходимо, если параметр send = post
* array[\'post\'][\'country\'] string Страна в формате iso3letter
* array[\'post\'][\'region\'] int ID региона
* array[\'post\'][\'city\'] int Название города
* array[\'post\'][\'street\'] int Поле для ввода адреса
* array[\'post\'][\'postcode\'] int Индекс
* array[\'post\'][\'phone\'] string Телефон
* array[\'contact_id\'] int ID контакта, которому предназначается сертификат. Необходимо, если параметр send = user или происходит проверка контакта
* array[\'state_id\'] int ID статуса сертификата
* array[\'use_limitations\'] int Использовать ограничение или нет. Доступные значения: 1 или 0
* array[\'limitations\'] array Массив с информацией об ограничениях
* array[\'limitations\'][\'expired\'] string Дата истечения сертификата в формате: Y-m-d
* array[\'limitations\'][\'lifetime\'] int Срок действия в днях.
* array[\'limitations\'][\'max\'] float Максимальная сумма, которая может быть потрачена в %. Указывайте значение от 0 до 100
* array[\'limitations\'][\'min\'] array Массив в информацией о минимальной сумме заказа
* array[\'limitations\'][\'min\'][\'value\'] float Минимальная сумма заказа
* array[\'limitations\'][\'min\'][\'currency\'] string Валюта минимальной суммы заказа
* array[\'usage\'] array Массив с данными о количестве использований сертификата
* array[\'usage\'][\'type\'] string Тип сертификата: одноразовый (disposable) или многоразовый (multiple). Доступные значения: disposable, multiple
* array[\'send_notification\'] int Отправлять уведомление покупателю или нет. Доступные значения: 1 или 0
* array[\'default_template\'] string Символьный код шаблона по умолчанию. Например, template1 или template3
* array[\'template_type\'] string Тип шаблона сертификата. Доступные значения: default или custom
* Если указан custom, это значит, что будет использован шаблон, который передан в параметре template (см. ниже)
* array[\'template\'] string Индивидуальный шаблон сертификата. Если существует данный параметр, тогда параметр template_type автоматически будет custom.
* array[\'free_products\'] array Массив информации о бесплатных товарах
* array[\'free_products\'][\'products\'][] array Массив с ID товаров
* array[\'free_products\'][\'skus\'][] array Массив с ID артикулов товаров
*
* @param array $params (Параметры смотрите выше)
* @return array
**/
$params = [
\'to\' => \'Любимому покупателю\',
\'from\' => \'Лучшего магазина\',
\'message\' => \'\',
\'amount\' => \'500\',
\'currency\' => \'RUB\',
\'send\' => \'email\',
\'email\' => \'test@test.com\',
\'post\' => [
\'country\' => \'rus\',
\'region\' => \'77\',
\'city\' => \'Москва\',
\'street\' => \'улица, дом, квартира\',
\'postcode\' => \'353535\',
\'phone\' => \'89999999999\'
],
\'contact_id\' => 5,
\'state_id\' => 5,
\'use_limitations\' => 1,
\'limitations\' => [
\'expired\' => \'2040-10-28\',
\'lifetime\' => 30,
\'max\' => 100,
\'min\' => [
\'value\' => 2000,
\'currency\' => \'RUB\'
]
],
\'usage\' => [
\'type\' => \'disposable\'
],
\'send_notification\' => 0,
\'default_template\' => \'template3\',
\'template_type\' => \'default\',
\'free_products\' => [
\'products\' => [25, 5],
\'skus\' => [345, 415]
]</pre>
<p>Рассмотрим массив $validation_types:</p>
<pre>
/**
* Виды проверок, чтобы понять, стоит ли создавать сертификат или нет
*
* @param string[] $validation_types - По умолчанию используется значение \'user\'
* Доступные значения:
* \'user\' - Проверяет, авторизован ли пользователь, и был ли ему когда-либо сгенерирован сертификат через данный хелпер
* \'session\' - Проверяет, есть ли у пользователя в сессии специальная запись о том, что был сгенерирован сертификат через данный хелпер
* \'cookie\' - Проверяет, есть ли у пользователя в куке специальная запись о том, что был сгенерирован сертификат через данный хелпер
* \'ip\' - Проверяет, был ли сгенерирован сертификат для IP через данный хелпер
* @return array
**/
$validation_types = [\'user\']</pre>
<p>Рассмотрим параметр $return_template:</p>
<pre>
/**
* Вернуть массив данных или шаблон сертификата
*
* @param bool $return_template - По умолчанию используется значение false
* Доступные значения:
* true - Возвращает шаблон сертификата в формате HTML
* false - Возвращает массив данных сертификата
* @return bool
**/
$return_template = false;</pre>
<h3>Примеры</h3>
<p>Если вы не можете разобраться, откуда у state_id значение 19, прочитайте статью про <a href="https://welldi.ru/hub/60/states/">статусы</a>.</p>
<p>Простой сертификат со скидкой 700 р.</p>
<pre>
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
\'amount\' => \'700\',
\'currency\' => \'RUB\',
\'state_id\' => 19
])}</pre>
<p>Сертификат пользователя</p>
<pre>
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
\'amount\' => \'700\',
\'currency\' => \'RUB\',
\'state_id\' => 19,
\'send\' => \'user\',
\'contact_id\' => $wa->user()->getId()
])}</pre>
<p>Будет сгенерирован только для авторизованного пользователя.</p>
<p>Сертификат по email</p>
<pre>
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
\'amount\' => \'700\',
\'currency\' => \'RUB\',
\'state_id\' => 19,
\'send\' => \'email\',
\'email\' => $wa->user()->get(\'email\', \'default\')
])}</pre>
<p>Будет прикреплен к email адресу.</p>
<p>Сертификат с ограничением 10 дней и 5000 руб.</p>
<p><span style="color: rgb(127, 127, 127);">Получим массив данных и выведем только код сертификата.</span></p>
<pre>
{$certificate = shopGiftcertificatesPluginHelper::generateCertificate([
\'amount\' => \'700\',
\'currency\' => \'RUB\',
\'state_id\' => 19,
\'use_limitations\' => 1,
\'limitations\' => [
\'lifetime\' => 10,
\'min\' => [
\'value\' => 5000,
\'currency\' => \'RUB\'
]
]
])}
{if $certificate}
<p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
{/if}</pre>
<p>Бесплатные товары с минимальной суммой заказа 10000 руб на 10 дней</p>
<pre>
{shopGiftcertificatesPluginHelper::generateCertificateTemplate([
\'state_id\' => 19,
\'use_limitations\' => 1,
\'limitations\' => [
\'lifetime\' => 10,
\'min\' => [
\'value\' => 10000,
\'currency\' => \'RUB\'
]
],
\'free_products\' => [
\'products\' => [25, 5],
\'skus\' => [30, 45, 52]
]
])}</pre>
<p>В данном примере прикреплено 5 бесплатных товаров: 2 товара, 3 артикула.</p>
<p>Сертификат, который будет сгенерирован только 1 раз для пользователя</p>
<pre>
{shopGiftcertificatesPluginHelper::generateOneCertificate([
\'amount\' => \'700\',
\'currency\' => \'RUB\',
\'contact_id\' => $wa->user()->getId(),
\'state_id\' => 19
], [\'user\'], true)}</pre>
<p>Сертификат, который будет сгенерирован только 1 раз. Проверка сессии или куки</p>
<p><span style="color: rgb(127, 127, 127);">Получим массив данных и выведем только код сертификата.</span></p>
<pre>
{$certificate = shopGiftcertificatesPluginHelper::generateOneCertificate([
\'amount\' => \'700\',
\'currency\' => \'RUB\',
\'state_id\' => 19
], [\'session\', \'cookie\'])}
{if $certificate}
<p>Для активации сертификата введите код на странице оформления: <b>{$certificate.code}</b></p>
{/if}</pre>
<p>Сертификат со своим кодом</p>
<p><span style="color: rgb(127, 127, 127);">Создадим сертификат с кодом "Распродажа года!".</span></p>
<pre>
{shopGiftcertificatesPluginHelper::generateOneCertificate([
\'amount\' => \'700\',
\'code\' => \'Распродажа года!\',
\'currency\' => \'RUB\',
\'contact_id\' => $wa->user()->getId(),
\'state_id\' => 19
], [\'user\'], true)}</pre>
<h3>Где это можно использовать?</h3>
<p>Сертификаты можно генерировать в уведомлениях, рассылках, после успешного оформления заказа и тд. Подробнее читайте в статье <a href="https://welldi.ru/hub/49/generate-certificate-examples/">примеры генерации сертификатов</a>.</p>'
dumped from wa-cache/91decb/apps/hub/templates/compiled/hub_ru_RU/69/4c/8d/694c8da32cdaa6412c49c1a7776ac98da1fbc2b7.file.topic.page.html.php line #47:
'Генерация сертификатов'
dumped from wa-cache/91decb/apps/hub/templates/compiled/hub_ru_RU/69/4c/8d/694c8da32cdaa6412c49c1a7776ac98da1fbc2b7.file.topic.page.html.php line #48:
[]