Скидка из свойства заказа через правило работы с корзиной

0

Разработчик: Intensa

Установлено: 50 - 99

Обновлено: 27.07.2024

Адаптирован под мобильные устройства

Совместим с редакциями Битрикс: «Малый бизнес» / «Бизнес» /

Модуль добавляет новое действие в правила работы с корзиной:
  • Применить скидку из свойства заказа
  • Применить скидку из свойства элемента корзины
Что позволяет задать динамическую величину скидки для заказа.

Скачайте и установите модуль.<br /><br />Создайте свойство заказа с типом данных «Число». Установите флаг «Служебное», если свойство заполняете сами на событии заказа. В противном случае, оно будет отображаться в форме оформления заказа, и пользователь сможет самостоятельно указать скидку.<br /><br /><img src="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/af7/5ijncacm8uohkehic6u7hbh0js22dd3l/1024_600_1/1.jpg" border="0" width="688" height="480" data-bx-image="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/af7/5ijncacm8uohkehic6u7hbh0js22dd3l/1024_600_1/1.jpg" data-bx-onload="Y" /><br /><br />Добавьте правило работы с корзиной, заполнив стандартные настройки (название, приоритеты и прочее).<br /><br /><img src="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/b85/nev2ips4aspyl26xaeav1q1wipd5uda9/1024_600_1/2.jpg" border="0" width="688" height="480" data-bx-image="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/b85/nev2ips4aspyl26xaeav1q1wipd5uda9/1024_600_1/2.jpg" data-bx-onload="Y" /><br /><br />Добавьте действие «Intensa: Применить скидку из свойства заказа».<br /><br /><img src="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/e53/95qja3ezys56vk7dvt7r9tnhlfwwc8ig/1024_600_1/3.jpg" border="0" width="688" height="480" data-bx-image="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/e53/95qja3ezys56vk7dvt7r9tnhlfwwc8ig/1024_600_1/3.jpg" data-bx-onload="Y" /><br /><br />Укажите тип расчета скидки из списка:<ul><li>% — в свойство записывается процент скидки на корзину заказа (указав «не более» можно ограничить максимальную скидку в количественном выражении),<br /><li>RUB на общую сумму товаров — в свойство записывается фиксированная скидка на корзину заказа,<br /><li>RUB на каждый товар — в свойство записывается фиксированная скидка за каждый товар в корзине.<br /></ul><img src="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/64e/k0r6mf2nowo18gczjvremdselvfah5ll/1024_600_1/4.jpg" border="0" width="688" height="480" data-bx-image="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/64e/k0r6mf2nowo18gczjvremdselvfah5ll/1024_600_1/4.jpg" data-bx-onload="Y" /><br /><br />После создания правила, реализуйте заполнение свойства в форме оформления заказа или на событие компонента sale.order.ajax.<p>В случае, когда свойство заполняется непосредственно пользователем в форме оформления заказа, для применения скидки необходимо вызвать пересчет заказа <i>BX.Sale.OrderAjaxComponent.sendRequest()</i>. Не забывайте валидировать вводимые значения.</p><p>В случае, когда свойство заполняется на событии заказа (рекомендованное <i>OnSaleComponentOrderCreated</i>), не забывайте передавать $arUserResult[&#39;CALCULATE_PAYMENT&#39;] = &#39;Y&#39;.</p><b>Пример для события в init.php</b><br /><p></p><p>Добавляем событие и задаем значение 399, чтобы проверить скидку.</p><div class="blog-post-code" title="Код"><table class="blogcode"><tr><td><pre>\Bitrix\Main\EventManager::getInstance()->addEventHandler( "sale", "OnSaleComponentOrderCreated", (static function(\Bitrix\Sale\Order $order, &$arUserResult, \Bitrix\Main\HttpRequest $request, &$arParams, &$arResult) { $propertyCollection = $order->getPropertyCollection(); $property = $propertyCollection->getItemByOrderPropertyCode("BONUSES"); if (! $property instanceof \Bitrix\Sale\PropertyValueBase) { return; } $property->setValue(399); $arUserResult["CALCULATE_PAYMENT"] = "Y"; }) ); </pre></td></tr></table></div><br />Добавляем товар в корзину и оформляем заказ.<br /><br /><img src="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/c44/6hq5whpwgx8swlowgeqvl0h7pkgqf7yd/1024_600_1/5.jpg" border="0" width="688" height="480" data-bx-image="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/c44/6hq5whpwgx8swlowgeqvl0h7pkgqf7yd/1024_600_1/5.jpg" data-bx-onload="Y" /><br /><br />Смотрим заказ в административной части.<br /><br /><img src="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/eac/kdenwq81hpipkqn9ckcu7v3odfe4vwxr/1024_600_1/6.jpg" border="0" width="688" height="480" data-bx-image="https://marketplace.1c-bitrix.ru/upload/resize_cache/update/eac/kdenwq81hpipkqn9ckcu7v3odfe4vwxr/1024_600_1/6.jpg" data-bx-onload="Y" /><br /><br />Скидка применена, все работает!<br />
Поддержка (вопросы, ошибки, идеи) осуществляется по электронной почте <a href="mailto:support24@intensa.ru" target="_blank" >support24@intensa.ru</a><br /><br />Режим работы: 09:00-18:00 по московскому времени.<br />Время реакции на обращение: 48 часов.<br />Выходные дни: суббота и воскресенье.