Задача: Получить топ продаж за последнюю неделю из 21 инфоблока
Глазами sql можно получить по сути одним запросом
1)нам нужно получить: количество, ид товара 2)нам нужно отфильтровать: по ИД инфоблока, по дате изменения 3)нам нужно отсортировать: количество по убыванию
Казалось бы делов не много... CSaleBasket::GetList с группировкой...окау подумал я и запилил.
Группировка работает, а вот сортировка фиг, сортирует всеравно по PRODUCT_ID
Что мы получим? нужно дернуть товары, нужно по ним пробежаться, получить их Инфоблок, проверить нужен ли нам этот товар, и потом отсортировать итоговый массив...Problem? да всего то 30+строк кода...мда
а вот скуль
SEL ECT DISTINCT COUNT('B.PRODUCT_ID') AS CNT, B.PRODUCT_ID,EL.IBLOCK_ID,EL.NAME
FR OM b_sale_basket B
LEFT JOIN b_iblock_element EL ON(EL.ID=B.PRODUCT_ID)
WHERE EL.IBLOCK_ID=21
GROUP BY B.PRODUCT_ID
ORDER BY CNT DESC
К чему это я все?
Допилите пожалуйста сортировку и фильтр в CSaleBasket::GetList(); НО вспоминаются строки из документации "корзина не связана с каталогом=>не связана с инфоблоками" но ведь когда кладется товар, записывается же его PRODUCT_ID и XML_ID, название,цена, которые берутся из нужных нам модулей...
kopoBko, ну хотелка то допилить поддержку А так выходит и допиливать нечего, так как используя апи можно решить задачу, пусть и с новым объектным ядром (хотя и тут с какой стороны смотреть, функционал то потиху перезжает на d7).
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».