У k2 store для обновления цены и опций используется плагин и этот способ также гарантирует сохранность данных. Параметры товара, которые отображаются на форме администратора - это не данных из базы, а данные плагина для этого материала.
Такой подход дает гарантию, что данные будут изменены только фирменным плагином, но если вы используете другие компоненты, которые меняют параметры товара через базу, то нужно вносить поправки в параметры плагина или внести изменения в сам плагин, иначе при редактировании материала вы сбросите стоимость товара или опций.
Как актуализировать данные ?
Самый простой способ - изменить отображение параметров в плагине, вывести на форму данные из базы.
Для этого нужно редактировать файл
/plugins/k2/k2store/k2store.php
Начиная с 149 строки, внести изменение - прочитать параметры и заменить значения в массиве:
jimport('joomla.form.form');
$form = JForm::getInstance('plg_k2_'.$this->pluginName.'_'.$path, $xml_file, array(), true, 'fields[@group="'.$path.'"]');
$values = array();
if ($item->plugins)
{
$id = JRequest::getVar ('cid',null);
$db = JFactory::getDbo();
$db->setQuery("select * from #__k2store_products where product_id='".$id."'");
$lrow = $db->loadAssoc();
foreach ($lrow as $i => $item_data_db){
foreach (json_decode($item->plugins) as $name => $value)
{
$count = 1;
if (isset($lrow[str_replace($this->pluginName, '', $name, $count)]))
$values[str_replace($this->pluginName, '', $name, $count)]=$lrow[str_replace($this->pluginName, '', $name, $count)];
else
$values[str_replace($this->pluginName, '', $name, $count)] = $value;
}}
$form->bind($values);