Как правильно сформировать массив с корзиной?

Делаю корзину для магазина. Добавил в корзиуну товар и из самой корзины можно изменить количество, при обновлении резулатов данные отправляются в файл обработчик корзины, откуда компонуется в массив и уже этот массив попадает обратно в корзиную Так вот вроде все работает, но это только когда 1 товар в корзине, когда товаров больше одного, получается так, что записывается новые результаты только в товар который стоит последним, я так понимаю потому что это иззп того что в обработчик поочередно отправляются все данные и если названия данных повторяются то они просто перезаписываются и в итоге остаются данные только последнего товара и добавление в массив идет уже именно этих данных. ТАк вот, как сделать так что бы данные отправлялись и обрабатывались пачками или как можно еще из такой ситуации выйти?

Вот так выглядят данные с одним товаром:

введите сюда описание изображения

А вот так, когда товара уже два:

введите сюда описание изображения

Вот так выглядит код обработчика:

<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');//Обязательная строка инициирующая движок Битрикса, но не подключающая шаблон
$id = $_POST['id'];//Получаем из глабального массива $_POST id товара
$name = $_POST['name'];//Получаем имя
$kol = $_POST['kol'];//Получаем количество
$kol2 = $_POST['kol2'];//Получаем количество2
$price = $_POST['price'];//Получаем цену
$bouquet = $_POST['bouquet'];//Получаем тип букета

if (!empty($_SESSION['BX_CART']['ids'])) {//Проверяем существует ли наша корзина в массиве $_SESSION
    $arChart= $_SESSION['BX_CART']['ids'];//Если да то получаем текущиие данные о корзине
} else {
    $_SESSION['BX_CART'] =  [];//Если нет присваиваем пустой массив
}
$arChart[$id] = ["bouquet" => $bouquet, 
                 "id" => $id,
                 "name" => $name,
                 "kol" => $arChart[$id]['kol']+$kol-$kol2,
                 "price" => $price                
                ];
 

 //Значение элемента массива с id товара увеличиваем на введенное количество
 $_SESSION['BX_CART']['ids'] = $arChart;   

//Сохраняем в сесии массив с корзиной
echo count($_SESSION['BX_CART']['ids']);//Возвращаем количество отдельных позиций в корзине


Ответы (0 шт):