Меню

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

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

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

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

А дальше дернуть только его из массива.
Изменено: Михаил Базаров - 30.06.2022 21:40:31
 
Добрый день !
А не подскажите как мне получить ID товаров из заказа по ID заказа , и если товаров больше чем 1 ,
то через запятую их вывести !
Заранее спасибо !
И хотел бы попросить небольшой хотя бы пример кода , так как не очень разбираюсь)
Изменено: Михаил Базаров - 01.12.2023 15:03:00
 
Как-то так. Сделал не проверяя, там напишите - если что то пойдет не так.
Код
$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);
}
Изменено: Михаил Базаров - 11.11.2022 23:25:38
 
Михаил, наткнулся на этот пост, гугля немного другую задачу. а задача такая: мигрируем магазин с БУС на Б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 торговых предложений.
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

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

Объединить отдельные поля ФИО в одно свойство при оформлении заказа.

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

Базовая защита "Битрикс виртуальная машина" от DDoS атак.

Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, когда ваш сервер на CentOS под...

Сниппеты типографики bootstrap, для Битрикс

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

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

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

Если пользователь авторизован то... API Битрикс

Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, некую информацию, доступную только...

Звездочки в рейтинге Битрикс статей и товаров каталога

Задача: изменить вывод рейтинга элемента на звездочки, с помощью шаблона iblock.vote в товарах и новостях.

Сортировка элементов по индексу сортировки значений типа список

Внутри любого компонента есть заранее заложенные поля для сортировки элементов. Можно сортировать элементы в разных напр...

Валидация пароля и подтверждения при регистрации в битрикс

Встала задачка сделать валидацию пароля и его подтверждения в стандартной форме регистрации сайта под управлением Битрик...

CRM Битрикс-24 на веб-окружении под Ubuntu 24.04, c поддержкой PUSH и многосайтовости

Задача: Так как с 30 июня 2024 года операционная система CentOS-7 полностью снята с поддержки и не будет получать обновл...