Меню

Получить все товары из всех заказов пользователя. История купленных товаров.

Получить все товары из всех заказов пользователя. История купленных товаров.

Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленных товаров. Не путать с историей заказов, нужен именно список всех купленных товаров- выведенный с помощью компонента catalog.section. Что бы пользователь мог добавить любой товар в новый заказа.
А как получить товары только из одного заказа? Из самого последнего хочу вывести товары.
Цитата
Василий написал:
А как получить товары только из одного заказа? Из самого последнего хочу вывести товары.

В целом точно также. В параметре сортировки указать по дате создания, что бы самый свежий (последний) был первым
Код
'order' = [ 'DATE' => 'DESC'],

А дальше дернуть только его из массива.
Добрый день !
А не подскажите как мне получить ID товаров из заказа по ID заказа , и если товаров больше чем 1 ,
то через запятую их вывести !
Заранее спасибо !
И хотел бы попросить небольшой хотя бы пример кода , так как не очень разбираюсь)
Как-то так. Сделал не проверяя, там напишите - если что то пойдет не так.
Код
$dbBasketItems = CSaleBasket::GetList(
        false,
        array(
            'ORDER_ID' => ID НУЖНОГО ЗАКАЗА
        ),
        false,
        false,
        array(
            'PRODUCT_ID'
        )
);
while ($arItems = $dbBasketItems->Fetch()) {
    $orderedItems[] = $arItems['PRODUCT_ID'];
}

// ВЫВОДИМ
if(count($orderedItems) > 1) {
    // Если массив больше одного элемента
    // Выводим ID через запятую
    echo implode(', ',$orderedItems);
}
Михаил, наткнулся на этот пост, гугля немного другую задачу. а задача такая: мигрируем магазин с БУС на Б24 и в каких-то старых заказах у покупателей не заполнены обязательные поля. Но это не таблица users - это какая-то другая, смежная. может подскажете - какая?))
Цитата
Pyro338 написал:
Михаил, наткнулся на этот пост, гугля немного другую задачу. а задача такая: мигрируем магазин с БУС на Б24 и в каких-то старых заказах у покупателей не заполнены обязательные поля. Но это не таблица users - это какая-то другая, смежная. может подскажете - какая?))

Должны бы в b_sale_order_props_value там значения всех свойств, которые заполнили покупатели.
Каждый заказ имеет уникальный идентификатор, который связывает значения свойств с соответствующим заказом.
Запросы в цикле - плохая идея.
Получить ID купленных товаров одним запросом:
Код
\Bitrix\Main\Loader::includeModule("sale");

$arData = \Bitrix\Sale\Order::getList([
    'select' => ['ID', 'PRODUCT_ID'],
    'filter' => ["USER_ID" => $USER->GetID()],
    'runtime' => [
        new \Bitrix\Main\Entity\ReferenceField(
            'BASKET',
            '\Bitrix\Sale\Internals\Basket',
            ["=this.ID" => "ref.ORDER_ID"],
            ["join_type" => "left"]
        ),
        new \Bitrix\Main\Entity\ExpressionField(
            'PRODUCT_ID',
            '%s',
            ['BASKET.PRODUCT_ID']
        ),
    ],
    'cache' => ['ttl' => 60, 'cache_joins' => true],
    'order' => ['ID' => 'DESC'],
    //'limit' => 100,
])->fetchAll();

$arIds = (!empty($arData) ? array_unique(array_column($arData, 'PRODUCT_ID')) : []);
Но стоит помнить, что это могут быть и ID торговых предложений.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Почтовое событие на создание нового элемента инфоблока, через API

Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблока простыми пользователям.Будет...

Получение местоположений через API Битрикс c поиском по select.

Если нужно получить список городов из модуля "Местоположения" можно воспользоваться API Битрикс. Данные местоположения м...

Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне 1С-Битрикс

Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении товара в корзину в старых шаблон...

Заполнить свойство инфоблока ценой из торгового каталога

Если вам по какой-то причине нужно скопировать цену товара в свойство этого же инфоблока. Например, для вывода старой це...

Создание локальных уведомлений для приложения на Apache Cordova

Задача состоит в том, чтобы реализовать возможность локальных уведомлений в приложении на Apache Cordova без использован...

Отфильтровать товары бренда и вывести по разделам каталога

Задача: на странице бренда, который выводится компонентом новостей, нужно показать все товары этого бренда из каталога. ...

Массово изменить коэффициент единицы измерения в каталоге

Задача: всем товарам каталога или товарам определённого раздела изменить коэффициент единицы измерения.

Сгенерировать скидочные купоны, при заказе и отправить на почту

Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны для скидки (правила корзины) и ...

Произвольные ссылки в элементе из свойства инфоблока

Задача: предоставить контент-менеджерам возможность добавлять произвольные ссылки внутри карточки товара. Управление ссы...