@vardoLP
Ват ю сэй эбаут май мама?!

Как вывести список пользователей у которых есть товары в корзине?

Что делаю:
Получаю список нужных мне юзеров по их ID
Получаю список товаров в корзине выбранных юзеров через FUSER_ID

Что нужно:
Скажем так, нужно построить такой макет. Есть строчки с данными юзеров. Нажимая на каждую открывается список с товарами, которые есть у него в корзине в данный момент.

Вопрос
Как связать полученные значения и построить выше описанный макет.
  • Вопрос задан
  • 667 просмотров
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
1) Если у Вас битрикс в редакции Бизнес, то не надо изобретать велосипед. Такая страница уже есть в админке. Магазин -> Покупатели -> Корзины.

2) Если всё же это редакция малый бизнес или надо вывести всё это в публичке тогда:
Список покупателей:
$users = \Bitrix\Sale\Internals\BasketTable::getList([
    "select" => [
        "USER_ID" => "FUSER.USER.ID",
        "USER_EMAIL" => "FUSER.USER.EMAIL",
    ],
    "filter" => [
        "!FUSER.USER_ID" => NULL,
        "ORDER_ID" => NULL,
    ],
    "group" => [
        "FUSER.USER.ID",
        "FUSER.USER.EMAIL"
    ]
])->fetchAll();


ВАЖНОЕ уточнение. В этом запросе не будут выведены корзины не авторизованных пользователей, потому что с ними всё равно ни чего не сделать полезного. Если всё же эти корзины нужны, тогда запрос будет выглядеть так:
$users = \Bitrix\Sale\Internals\BasketTable::getList([
    "select" => [
        "FUSER_ID",
        "USER_ID" => "FUSER.USER.ID",
        "USER_EMAIL" => "FUSER.USER.EMAIL",
    ],
    "filter" => [
        "ORDER_ID" => NULL,
    ],
    "group" => [
        "FUSER_ID",
        "FUSER.USER.ID",
        "FUSER.USER.EMAIL"
    ]
])->fetchAll();


Корзины покупателя:
$fuserId = 44514;//ID покупателя !!!!!  НЕ пользователя
$basket = \Bitrix\Sale\Internals\BasketTable::getList([
    "select" => [
        "*"
    ],
    "filter" => [
        "FUSER_ID" => $fuserId,
        "ORDER_ID" => NULL,
    ],
])->fetchAll();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы