Работа со скидками битрикс api

Как вывести все товары со скидкой в 1С-битрикс (catalog.section)

На одном проекте потребовалось вывести на определенной странице все товары со скидкой, проставленной в Правилах работой с корзиной.

К сожалению, в данный момент для этого нет готового решения. Т.е. нельзя например в фильтре компонента или GetList-а задать определенный параметр и таким образом получить все нужные товары.

Погуляв по форумам в поисках готового решения не нашел ничего подходящего для меня, пришлось делать всё ручками с нуля 🙂

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

Как будем реализовывать: создаем скрипт, который будет проходится по всем товарам, смотреть есть ли у них скидка и если есть, проставлять специальное свойство. По этому свойству уже мы сможем фильтровать нужные нам товары. Скрипт ставим на крон с нужной периодичностью или запускаем руками при необходимости.

Заводим для нашего основного инфоблока свойство типа Список (можно и простую строку, у меня просто оно уже было). Ставим там одно единственное возможное значение (у меня это «yes»). У меня свойство имеет код SPECIALOFFER.

Далее в какой-нибудь служебной папочке добавляем скрипт следующего содержания, где меняем входные параметры на свои, а именно: код инфоблока, значение свойства, сам код свойства (если у вас он другой)

Всё, теперь нам только остается добавить фильтрацию по нашему свойству где это необходимо.

Источник

CCatalogDiscount

Методы класса

Метод Описание С версии До версии
Add Метод добавляет новую скидку в соответствии с данными из массива arFields. 4.0.4
Delete Метод удаляет скидку с кодом ID. 4.0.4
SetCoupon Метод добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. 4.0.4 12.0.0
GetCoupons Метод возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. 4.0.4 12.0.0
ClearCoupon Метод очищает возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. 4.0.4 12.0.0
GetDiscountByPrice Метод вычисляет скидку на цену с кодом productPriceID товара для пользователя, принадлежащего группам пользователей arUserGroups. 4.0.4
GetDiscountByProduct Метод вычисляет скидку на товар с кодом productID для пользователя, принадлежащего группам пользователей arUserGroups. 4.0.5
GetByID Метод выбирает параметры скидки по ее коду ID. 4.0.4
GetList Метод возвращает результат выборки записей скидок в соответствии со своими параметрами. 4.0.4
GetDiscountGroupsList Метод возвращает результат выборки записей с информацией о привязке скидок к группам пользователей в соответствии со своими параметрами. 4.0.4
GetDiscountCatsList Метод возвращает результат выборки записей с информацией о привязке скидок к типам цен в соответствии со своими параметрами. 4.0.4
GetDiscountProductsList Метод возвращает результат выборки записей с информацией о привязке скидок к товарам в соответствии со своими параметрами. 4.0.4 12.0.0
GetDiscountSectionsList Метод возвращает результат выборки записей с информацией о привязке скидок к группам товаров в соответствии со своими параметрами. 4.0.4 12.0.0
Update Метод изменяет параметры скидки с кодом ID в соответствии с данными из массива arFields. 4.0.4
Читайте также:  сарина гросс певица национальность биография

С версии 12.0.0 в связи с изменением логики работы модуля считаются устаревшими следующие методы:

До выхода версии 12.0.0 все вышеперечисленные методы являлись служебными и позволяли получить явно заданные привязки скидки к инфоблоку, разделу, элементу. То есть данные, которые можно было увидеть в форме редактирования скидки.

Использование этих методов для получения ID элементов, на которые могла подействовать скидка, было и является некорректным. Например, для скидки, у которой задано ограничение на раздел, вызов GetDiscountProductsList вернет пустой массив.

С выходом 12.0 эти методы оставлены лишь для сохранения совместимости. Они могут вернуть привязки лишь к тем инфоблокам, разделам, элементам, которые явно заданы в ограничениях. Т.е. если скидка действует на название элемента, все перечисленные методы вернут пустые массивы.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

Discount

Пространство имен \Bitrix\Sale\Discount содержит подпространства, классы и методы для расчета всех скидок (каталога и магазина) и округления цен для корзины или заказа.

Пространство имен Описание
Formatter Класс предназначен для генерации описаний как самих правил корзины, так и их результатов.
Gift Содержит классы для работы с подарками.

Методы

Метод Описание С версии До версии
buildFromBasket Метод устанавливает пользовательский контекст для вычисления скидок. 17.0.11
calculate Метод для полного расчета всех скидок. 15.5.0
clearBasketItemData Метод удаляет внутренний кеш данных по позиции корзины. Вызывается при удалении позиции из корзины. 15.5.0
getApplyMode Метод возвращает режим взаимодействия правил корзины со скидками остальных модулей для заказа. 15.5.0
getApplyModeList Метод возвращает перечень режимов взаимодействия правил корзины со скидками остальных модулей. 15.5.0
getApplyResult Метод возвращает все результаты расчета, включая итоговые и базовые (исходные) цены корзины и доставки, перечень примененных скидок, правил корзины и купонов, флаги применения (вкл/выкл). 15.5.0
getOrder Метод возвращает объект заказа. 15.5.0
getShipmentsIds Метод возвращает список идентификаторов отгрузок для существующего заказа. 15.5.0
getUseMode Метод возвращает текущий режим расчета всех скидок и правил для заказа/корзины. 15.5.0
isClone Метод возвращает true, если обращение идет к клонированному объекту скидок. 16.0.26
isOrderExists Метод возвращает флаг существования заказа (true/false), поскольку расчет может вестись для корзины без заказа. 16.0.2
isOrderNew Метод возвращает флаг того, что заказ является новым, т.е. у заказа еще нет идентификатора. 16.0.2
isOrderRefresh Метод возвращает флаг полного пересчета заказа. 16.0.25
load Метод возвращает инициализированный объект скидок для переданного объекта заказа. 15.5.0 17.0.11
loadByBasket Метод возвращает инициализированный объект скидок для переданного объекта корзины товаров, не привязанной к заказу. 16.0.10 17.0.11
loadByFuser Метод возвращает инициализированный объект скидок для комбинации $fuser и $site. 16.0.10
save Метод сохраняет результаты применения к заказу скидок и правил округлений. 15.5.0
setApplyResult Метод позволяет указать, какие из выбранных скидок и правил исключить из расчета. 15.5.0
setCalculateShipments Метод устанавливает отгрузку для проведения расчетов. 15.5.0
setOrder Метод необходим, если для объекта корзины производились вычисления скидок, после чего она была привязана к заказу. 16.0.10
setOrderRefresh Метод устанавливает флаг пересчета заказа в административной форме редактирования. 16.0.25
setUseMode Метод устанавливает режим расчета всех скидок и правил для заказа/корзины. 15.5.0

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

GetList

Описание и параметры

Метод возвращает результат выборки записей скидок в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид: В качестве «название_поляN» может стоять любое поле скидки, а в качестве «направление_сортировкиX» могут быть значения «ASC» (по возрастанию) и «DESC» (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Пример фильтра: Этот фильтр означает «выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) равно 15».

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

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

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

CCatalogDiscountCoupon

Методы класса

Метод Описание С версии
Add добавляет купон для выбранной скидки. 5.1.0
CheckFields проверяет информацию о купоне перед добавлением или обновлением. 5.1.0
ClearCoupon очищает массив купонов, введенных текущим покупателем. 12.0.0
Delete удаляет купон. 5.1.0
DeleteByDiscountID удаляет все купоны для выбранной скидки. 5.1.0
GetByID возвращает информацию о купоне по его коду (ID). 5.1.0
GetList выбирает купоны, соответствующие условиям. 5.1.0
IsExistCoupon проверяет существование купона. 14.0.0
GetCoupons возвращает массив доступных для получения скидки купонов текущего покупателя. 12.0.0
GetCoupontTypes возвращает массив имеющихся на сайте типов купонов. 12.5.1
SetCoupon добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. 12.0.0
Update обновляет информацию о купоне. 5.1.0

Константы класса

Константа Значение Описание С версии
TYPE_ONE_TIME Y Купон на одну позицию заказа. 12.5.0
TYPE_ONE_ORDER O Купон на один заказ. 12.5.0
TYPE_NO_LIMIT N Многоразовый купон. 12.5.0

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

Читайте также:  текст песни код гиас 1 опенинг
Онлайн портал