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();