Тема: Добавить комплектацию товару

Подскажите как програмно добавить товару комплектации с указанием остатка на складе.

Повысить оценку Понизить оценку

2 Отредактировано Александр (21.09.2015 12:22:20)

Re: Добавить комплектацию товару

Всё достаточно просто Вам нужен объект \Catalog\Model\Orm\Offer. Именно он отвечает за вставку и обновлении комплектации. Все комплектации для товаров начинаются с нулевого сортировочного индекса (поле sortn). Остаток дописывается к соответствующему складу всегда. Поле numэто всего лишь сведения об общем остатке по складам.
Сведения об остатка на складах при добавлении комплектации указывается в соответствующем массив сведений с ключом
Для добавления программно комплектации Вам нужно сделать следующее:

$offer = new  \Catalog\Model\Orm\Offer();
$offer['product_id'] = 'id товара которому припиываем';
$offer['title'] = 'Название комплектации';
$offer['stock_num'] = array(
   'id склада' => 'Количество на складе'
);

offer->insert();

Обработка ключа stock_num происходит в методе afterWrite у это объекта (/modules/catalog/model/orm/offer.inc.php)

Если у Вас всего один склад, то его можно получить так:

$default_warehouse = \Catalog\Model\WareHouseApi::getDefaultWareHouse(); //Получаем объект склада с данными.