Данная схема действует везде. Ограничений на действие никаких нет.
Insert проще простого сделать, например так:
$product = new \Catalog\Model\Orm\Product(); //Объявим новый ORM объект.
//Заполняем нужные поля объекта \Catalog\Model\Orm\Product, поля смотрим в файле /modules/catalog/model/orm/product.inc.php соответственно, например так
$product['title'] = 'Мой новый товар';
$product['alias'] = \RS\Helper\Transliteration::str2url($product['title']);
$product['xdir'] = array(id нужной нам категории); //Категория
$product['public'] = 1; //Флаг публичности
//И ещё какие-либо наши поля смотрим в файле /modules/catalog/model/orm/product.inc.php
if ($product->insert()){ //Добавим в БД и заодно проверим, а вставилась ли она
echo "Всё успешно вставилось".
//После добавления записи у товара появится поле id и достать можно так $product['id']
}else{
echo "Произошли следующие ошибки".
var_dump($product->getErrors());
exit();
}
Далее я расскажу как добавить остальные записи в БД для других вещей. Вообще их можно включить в конструкцию перед insert и оно будет действовать одинаково, но в данном случае я буду рассматривать, если запись уже существует. Т.е. через update.
Добавление цены
//Установка одной цены и валюты
$excost = array(
'id нужной нам цены из справочника цен' => array(
'cost_original_val' => Сколько нам надо,
'cost_original_currency' => id нужной нам валюты
)
)
$product['excost'] = $excost;
//Получить id цены по умолчанию(основной) можно так
$default_cost_id = \Catalog\Model\CostApi::getDefaultCostId();
Добавление фото производим через API работы с фото
$photoApi = new \Photo\Model\PhotoApi(); //Инициализируем API
$photoApi->addFromUrl('полный url откуда брать фото','catalog', $product['id']); //Добавляем фото из url
Добавление характеристик
//Для добавления строковой или числовой характеристики
$product['prop'][id нужной нам характеристики]['value'] = 'значение характеристики';
//Для добавления списковой характеристики
$product['prop'][id нужной нам характеристики]['value'] = array(
'значение характеристики 1',
'значение характеристики 2',
);
А в конце вызываем update
$product->update(); //Обновим товар