Доброго дня.
У меня стоит задача: подменить некоторые данные у одного из товаров корзины (изменить стоимость его доставки).
Делаю я это в обработчике события "v5_on_apply_data" и в типе "eshop_cart_calc_item".
Но чтобы мне выбрать этот товар, я сначала просматриваю всю корзину через API вызов:
$oEshopCart = AMI::getResource('eshop/cart');
$oCartItems = $oEshopCart->getItems();
foreach($oCartItems as $oCartItem) {
// тут я делаю свои действия, и запоминаю порядковый номер нужного мне товара
// допустим, пусть это будет второй товар
}
Далее, в вышеуказанном обработчике ("eshop_cart_calc_item", я у второго товара меняю то что мне надо.
Проблема в том, что порядок товаров, который идет в вызове через API, и порядок товаров, который идет в обработчике - он отличается.
Вот для примера, если взять демо сайт и добавить в корзину первом случае сначала "Бинокль", а потом "Большой набор для рукоделия".
А во втором случае добавить сначала "Большой набор для рукоделия", а потом "Бинокль", то получается, что в одном случае порядок совпадает, а в другом не совпадает.
И вот не совсем понятно, как мне определить нужный мне товар. Я же не могу просто завязаться на ID товара. Потому что в корзине там еще есть и номер цены, и id подвида.
Если бы порядок следования товаров совпадал, то проблемы бы не было.
Ну или если бы скажем, был какой-то "сборный id", который бы был и в обработчике, и который можно было бы получить у товара корзины при работе через API. То по ним бы я тоже мог бы найти нужный мне товар.
Есть мысли, как решить задачу?
Добавлено: Работа с корзиной через API08.07.15 07:49:30