Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Вывести дату окончания скидки в карточке товара

Просмотров: 3632

Если нужно вывести информацию о скидке в карточке товара, можно воспользоваться методом CCatalogDiscount::GetList. Данный метод позволяет получить любую информацию о скидке: купон, название, типа скидки и.т.д. Но, я думаю, наиболее актуально вывести дату окончания скидки или количество дней до окончания.

Получаем информацию о скидке

Для начала, создаем скидку с интевалом в модуле маркетинга и выводим всю информацию о ней, в карточке товара:


$PRODUCT_ID = $arResult['ID'];
$dbProductDiscounts = CCatalogDiscount::GetList(
    array("SORT" => "ASC"),
    array(
            "+PRODUCT_ID" => $PRODUCT_ID,
            "ACTIVE" => "Y",
        ),
    false,
    false,
    array(
            "ID", 
            "SITE_ID", 
            "ACTIVE", 
            "ACTIVE_FROM", 
            "ACTIVE_TO", 
            "RENEWAL", 
            "NAME", 
            "SORT", 
            "MAX_DISCOUNT", 
            "VALUE_TYPE", 
    		"VALUE", 
    		"CURRENCY"
        )
    );
while ($arProductDiscounts = $dbProductDiscounts->Fetch())
{
   print_r($arProductDiscounts)
}

В массиве arProductDiscounts - распечатается вся доступная информация о скидке. Но нам нужна только дата завершения- ACTIVE_TO. Эту дату сразу загоняем в переменную $saleDateTo. Обратите внимание, что если скидка уже осталась в прошлом- дата выведется в любом случае. Что бы этого не происходило, в фильтре оставляем отбор по активности "ACTIVE" => "Y" (флаг активности у прошедших скидок,снимается автоматически).


$dbProductDiscounts = CCatalogDiscount::GetList(
    array("SORT" => "ASC"),
    array(
        "+PRODUCT_ID" => $arResult['ID'],
        "ACTIVE" => "Y"
    ),
    false,
    false,
    array(
        "ACTIVE_TO"
    )
);
while ($arProductDiscounts = $dbProductDiscounts->Fetch()) {
        $saleDateTo = $arProductDiscounts['ACTIVE_TO'];
}

Собственно, если нужно просто вывести дату. Выводим переменную $saleDateTo в нужном месте шаблона.

Выводим количество дней до конца скидки

Более актуально, вывести количество дней до конца скидки. При этом, если осталось меньше одного дня, выводит "закончится сегодня".

Просто высчитываем разницу между текущей датой и датой завершения активности скидки. Подсказки в комментариях:


$diffSaleToDate = strtotime($saleDateTo) - strtotime(date("d.m.Y h:m:s"));
$saleEndDiff = floor($diffSaleToDate / 86000);
if ($saleEndDiff > 1) {
    $daysToEndSale = 'Закончится через ' . $saleEndDiff . ' дн.';
} elseif ($saleEndDiff = 1) {
    $daysToEndSale = 'Закончится сегодня';
} else {
    unset($saleEndDiff);
}

Здесь. С помощью strtotime перевели обе даты (сегодняшний день и дату завершения скидки) в секунды, вычли из большей меньшую и разделили на 86000 (количество секунд в сутках) с округлением до целого числа.

Таким образом, в переменной saleEndDiff получили количество дней до конца скидки. И простым if-ом, создали переменную daysToEndSale c нужным текстом.

Собственно и все. Выводим и красиво оформляем, в нужном месте, переменную $daysToEndSale - c количеством дней до конца скидки.

При желании, можно все оставить в секундах и сделать красивый виджет, обратного отсчета на jquery- тут уже, дело дизайна и техники.

Написать первый комментарий:

Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Нажимая кнопку "Отправить" вы соглашаетесь
с политикой конфиденциальности и обработки персональных данных.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Автогенерация символьных кодов разделов и элементов Битрикс Просмотров: 14950 Иногда нужно создать символьные коды для разделов и элементов. Например: если сайт создан ... Самодельная форма добавления элемента на API Битрикс Просмотров: 42448 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр... Сортировать товары по названию, цене и дате поступления в каталоге Би... Просмотров: 39343 Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию... Хостинг панель BrainyCp: оптимизация под 1С-битрикс Просмотров: 7503 В этой видео-заметке расскажу как установить и оптимизировать панель управления сервером B... Отключить поиск по описаниям товаров в Битрикс Просмотров: 10581 Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разр... Получение доступа к железу устройства из Битрикс мобильное приложение Просмотров: 5573 Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функцион... Фотогалерея на базе компонента новостей, с fancybox. Просмотров: 1512 Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогал... Время на БД и веб сервере отличается на 3600 секунд, тест Битрикс Просмотров: 15280 Достаточно часто, при проверке параметров системы, в Битрикс, можно увидеть одну из ошибок... Отсортировать элементы в Битрикс по свойству привязка к разделам Просмотров: 27876 При создании достаточно сложных интернет-магазинов на Битрикс, иногда встает задача помимо... Звездочки в рейтинге Битрикс статей и новостей Просмотров: 18037 Стандартный вид рейтинга в новостях Битрикс, ну скажем так- не очень красив. Давайте его п... Ускорение работы сайта на 1С-Битрикс Просмотров: 15839 Данная статья написана специально под видеоролик (приложен в конце статьи), опубликованный... XML в формате Commerce ML-2, города России и Мира, для выгрузки в инф... Просмотров: 6285 Подвернулась задачка, создать инфоблок для Битрикс, в котором будут просто города России и... Малая корзина Битрикс, упрощенный шаблон Просмотров: 12513 Шаблон малой корзины битрикс, который можно вывести в боковом разделе шаблона или в шапке ... Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под ... Просмотров: 11378 В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное ра... Увеличение диска на готовой виртуальной машине Битрикс Просмотров: 8732 Как всем известно, на официальном сайте 1С-битрикс можно скачать готовую виртуальную машин... Отфильтровать новости в Битрикс за заданный период Просмотров: 15552 Иногда, нужно отфильтровать элементы (новости например) по дате в Битрикс, с помощью компо... Вывести дату окончания скидки в карточке товара Просмотров: 3632 Если нужно вывести информацию о скидке в карточке товара, можно воспользоваться методом Заполнение габаритов товара, после обмена с 1С, из свойств элемента и... Просмотров: 10383 Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1... Основные функции вывода в шаблонах Битрикс Просмотров: 155255 Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну к... Добавление в избранное или отложенные, на AJAX из карточки товара Просмотров: 27299 В этой заметке рассакажу как добавлять товары в "Отложенные", для иммитации функционала "И...