llirik,
если использовать такой код метода...
class Shop_Cart_Observer
{
static public function onBeforeGetXml($object, $args)
{
// Получить объект Shop_Item (товар)
$oShop_Item = $object->Shop_Item;
// Узнать, для каких товаров этот товар является сопутствующим
$oCore_QueryBuilder_Select = Core_QueryBuilder::select( 'shop_item_id' )
->from( 'shop_item_associated' )
->where( 'shop_item_associated_id', '=', $oShop_Item->id );
// Сохранить идентификатор(ы) такого(их) товара(ов)
$row = $oCore_QueryBuilder_Select->execute()->asAssoc()->current();
// Добавить XML-тег в XML-код товара со значением идентификатора того товара,
// для которого он является сопутствующим
$oShop_Item->addEntity(
Core::factory('Core_Xml_Entity')
->name( 'associated_id' )
->value($row['shop_item_id'])
);
}
}
...то действительно в XML для корзины по пути
/shop/shop_cart/shop_item добавляется тег
associated_id со значением полученного идентификатора.
А как быть, если этот товар был добавлен не как сопутствующий, а просто самостоятельный? Например, вентили для бескамерных автомобильных дисков можно приобретать и просто так. Не обязательно их устанавливать в диски. Кто-то вообще их в паяльные лампы ставит или в домашний автоклав.
Ведь если я правильно понимаю, описанным выше образом я просто внутри корзины смогу понять, является ли конкретный товар сопутствующим для каких-либо иных товаров. А вот был ли он добавлен в корзину именно как сопутствующий чему-то... это как определить?