Как правило, за срочность принято платить. Поэтому часто на веб-сайтах при выборе даты доставки в тот же день необходимо делать наценку.
Например, в форме заказа есть свойство Дата доставки - тип Дата. Если в календаре выбрать сегодняшнее число, то к стоимости курьерской доставки прибавляем 300 руб.
Внимание! В статье приведены фрагменты кода, описывающие принцип реализации. Для внедрения рекомендуется обратиться к разработчикам.
Мы также можем в этом помощь, но за отдельное вознаграждение. Обратиться за помощью можно в наш чат в правом нижнем углу нашего сайта (в рабочее время отвечаем достаточно оперативно). Но оставляем за собой право отказать в доработке без объяснения причин.
Для реализации скидки с помощью правил потребуется наш модуль - Произвольное PHP условие правил работы с корзиной. Свои (кастомные) условия в скидках.
Шаги для реализации следующие:
В init.php необходимо прописать функцию:
function __day_by_day($arOrder = array())
{
$result = false;
$request = Bitrix\Main\Application::getInstance()->getContext()->getRequest();
if ($request->isPost())
{
$PostList = $request->getPostList()->toArray();
if (!empty($PostList['order']["ORDER_PROP_" . ORDER_PROPERTY_ID_DATE])
&& $PostList['order']["ORDER_PROP_" . ORDER_PROPERTY_ID_DATE] == date("d.m.Y")
)
{
$result = true;
}
}
return $result;
}
Создать правило работы с корзиной и указать там эту функцию в дополнительных условиях:
PHP условие равно __day_by_day($arOrder)
Чтобы происходил перерасчет формы заказа при выборе даты доставки, необходимо добавить javascript обработчик событий:
// onPopupClose - обработчик, которые вызывается после закрытия модального окна BX.calendar
BX.addCustomEvent('onPopupClose', function(){
BX.Sale.OrderAjaxComponent.sendRequest()
});