Спасибо, за ответ. Разобрался.
Приведу подробное решение для тех, кто задастся тем же вопросом
В директории /modules/shop/producer/ создаем файл observer.php
Содержимое файла:
<?php
class Shop_Producer_Observer
{
static public function onBeforeGetXml($object, $args, $options)
{
//Выбираем все продукты
$oShopItems = Core_Entity::factory('Shop', $object->shop_id)->Shop_Items;
//Строим запрос для выбора только продуктов текущего производителя, активных, имеющих картинки
$oShopItems
->queryBuilder()
->select("*")
->where("shop_producer_id", "=", $object->id)
->where("image_small", "!=", "")
->where("active", "=", 1);
// Берем первый попавшийся продукт
$productsOfProducer = $oShopItems->find();
// Строим объект продукта, чтобы получить путь к картинке
$oShopItem = Core_Entity::factory('Shop_Item', $productsOfProducer->id);
// Добавляем тэги в производителя с нужными данными
$object->addXmlTag('productImageDir', $oShopItem->getItemPath());
$object->addXmlTag('productImageUrl', $oShopItem->getItemHref());
$object->addXmlTag('productImage', $productsOfProducer->image_small);
}
}
?>
Далее открываем файл bootstrap.php в корневой директории и добавляем
Core_Event::attach('shop_producer.onBeforeGetXml', array('Shop_Producer_Observer', 'onBeforeGetXml'));
в любом месте после
Core::init();
date_default_timezone_set(Core::$mainConfig['timezone']);