miv-men
@miv-men
php

Почему не создается купон с интервалом активности?

Здравствуйте.

Создаю купон следующим образом:
CModule::IncludeModule("sale");
        CModule::IncludeModule("catalog");
        CModule::IncludeModule("iblock");

        $COUPON = randString(6);

        $addDb = \Bitrix\Sale\Internals\DiscountCouponTable::add(array(
            'DISCOUNT_ID' => 3,
            'COUPON' => $COUPON,
            'TYPE' => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER,
            'MAX_USE' => 1,
            'USER_ID' => 0,
            'DESCRIPTION' => ''
        ));

Все работат как надо, но если попробовать установить интервал активности, то купон не создается, ошибок не выдает. Битрикс использует datatime в таом формте: 01.09.2020 21:47:00
Может надо передать в другом формате? Попробовал по разному вот последний не рабочий пример:
CModule::IncludeModule("sale");
        CModule::IncludeModule("catalog");
        CModule::IncludeModule("iblock");

        $COUPON = randString(6);

        $unixStart = strtotime(date("d.m.Y H:i:s"));
        $unixEnd = $unixStart+43200; //12 часов

        $addDb = \Bitrix\Sale\Internals\DiscountCouponTable::add(array(
            'DISCOUNT_ID' => 3,
            'COUPON' => $COUPON,
            'TYPE' => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER,
            'MAX_USE' => 1,
            "ACTIVE_FROM"=>ConvertTimeStamp($unixStart, "FULL"),
            "ACTIVE_TO"=>ConvertTimeStamp($unixEnd, "FULL"),
            'USER_ID' => 0,
            'DESCRIPTION' => ''
        ));
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Попробуйте с этим типом new \Bitrix\Main\Type\DateTime();

И добавьте обработку ошибки:
if (!$addDb->isSuccess())
{
	print_r( $addDb->getErrorMessages() );
}

И вместо этого:
$unixStart = strtotime(date("d.m.Y H:i:s"));
$unixEnd = $unixStart+43200; //12 часов
используйте смещение даты, например:
$objDateTime = new DateTime("01.01.2012 00:00:00"); // "2012-01-01 00:00:00"
$objDateTime->add("1 day"); // "2012-01-02 00:00:00"
$objDateTime->add("-1 day"); // "2011-12-31 00:00:00"
$objDateTime->add("3 months - 5 days + 10 minutes"); // "2012-03-27 00:10:00"

см. https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/d...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы