В модуле
"Связанные опции" добавлены функции для облегчения создания связанных опций из других модулей.
В настройках модуля обязательно должна быть включена опция "Использовать различные варианты связанных опций", рекомендуется также включение галочки "Пересчитывать количество" (при этом количество товара будет рассчитано как сумма количества связанных опций), а также галочки "Обновлять опции" (опции задействованные в связанных опциях, будут автоматически добавлены в опции товара - product_options).
Если для загрузки товаров используются стандартные функции OpenCart из "admin\model\catalog\product.php" - addProduct($data) или editProduct($product_id, $data)
то можно предварительно дополнить массив $data параметрами для создания связанных опций (расшифровка параметров ниже).
Если таблицы товаров, опций и т.д. заполняются самостоятельно (без использования стандартных функций addProduct или editProduct), то можно использовать функцию самого модуля "Связанные опции", после добавления товара в базу данных из "admin\model\module\related_options.php" - editRelatedOptions($product_id, $data)
Пример:
$data = array()
$data['related_options_use'] = TRUE; // У товара есть связанные опции
$data['related_options_variant_search'] = TRUE; // Найти (если нет подходящего - создать) вариант связанных опций для товара
$data['relatedoptions'] = array(
array('relatedoptions_id' = > <id можно не указывать - будет создан новый>
, 'quantity' => 123
, 'model'=''
, 'price'=200
, 'options' => array($option_id1> => $option_value_id1, $option_id2 => $option_value_id2, ...)), // 1-й набор связанных опций
array('relatedoptions_id' = > <id можно не указывать - будет создан новый>
, 'quantity' => 321
, 'model'=''
, 'price'=100
, 'options' => array($option_id3> => $option_value_id3, $option_id4 => $option_value_id4, ...)), // 2-й набор связанных опций
...
);
$this->load->model('module/related_options');
$this->model_module_related_options->editRelatedOptions($product_id, $data);
(при использовании стандартных функций Opencart addProduct и editProduct необходимо аналогичным образом дополнить передаваемый им в качестве параметра массив $data)