Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Автоматическое создание купона на скидку

Код проверен в боевых условиях.

<?
// Этот цикл делает уникальный купон вида "CP-25R0E-ZENGJBX"
// Содрал из ява функции в админке (на кнопке "Сгенерировать код")
// Сама ява функция:
// 
// function GenerateCheck()
// {
//    var oCoupon = document.fdiscount_edit.COUPON;
// 
//    var allchars = 'ABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789';
//    var string1 = '';
//    var string2 = '';
//    for (var i = 0; i < 5; i++)
//       string1 = string1 + allchars.substr(Math.round((Math.random())*(allchars.length-1)), 1);
// 
//    for (var i = 0; i < 7; i++)
//       string2 = string2 + allchars.substr(Math.round((Math.random())*(allchars.length-1)), 1);
// 
//    oCoupon.value = "CP-"+string1+"-"+string2;
// }

do{
   $allchars = 'ABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789';
   $string1 = '';
   $string2 = '';
   for ($i = 0; $i < 5; $i++){
      $string1.=substr($allchars,round((rand(0,10)*0.1)*(strlen($allchars)-1)),1);
      }
   for ($i = 0; $i < 7; $i++)
      $string2.=substr($allchars,round((rand(0,10)*0.1)*(strlen($allchars)-1)),1);
   $newCoupon = "CP-".$string1."-".$string2;

   $dbCouponCheck=CCatalogDiscountCoupon::GetList(array(),array("COUPON"=>$oCoupon),false,false,array());
//повторять заново если такой уже есть
}while(intval($dbCouponCheck->SelectedRowsCount())>0);

//берем структуру любого уже существующего купона, который нам подходит
$cu=CCatalogDiscountCoupon::GetByID(5);

// В массиве $cu:
// Array
// (
//     [ID] => 5
//     [DISCOUNT_ID] => 5
//     [ACTIVE] => Y
//     [COUPON] => CP-25R0E-ZENGJBX
//     [ONE_TIME] => N
//     [DATE_APPLY] =>
// )

unset($cu['ID']);   //убираем ID
$cu['COUPON']=$newCoupon; //меняем код купона на сгенерированный

// В массиве $cu:
// Array
// (
//     [DISCOUNT_ID] => 5
//     [ACTIVE] => Y
//     [COUPON] => CP-VSEA6-ZOVH6AA
//     [ONE_TIME] => N
//     [DATE_APPLY] =>
// )

//создаем новый купон, передавая новую структуру купона
$newCouponId=CCatalogDiscountCoupon::Add($cu);
$arResult["COUPON"]=$newCoupon;

?>


<p>Код вашего купона: <b><?=$arResult["COUPON"]?></b></p>
<p>Чтобы получить скидку 5% на покупку в интернет-магазине:
<ul>
<li>Добавьте товар в корзину.</li>
<li>Откройте корзину.</li>
<li>Введите номер купона в поле для купона.</li>
<li>Нажмите кнопку "Обновить".</li>
</ul>
</p>



 

 

Источник: http://dev.1c-bitrix.ru/community/webdev/user/38417/blog/1034/

Назад в раздел

Подписаться на новые материалы раздела:














CAPTCHA