llirik, между 1С и сайтом происходит автоматический обмен. Информация о товарах редактируется в 1С, затем через обмен автоматически отправляется на сайт. Метки товаров также редактируются в 1С.
Если в 1С товару присвоить метку, после обмена она успешно присваивается в интернет-магазине сайта. Если затем эту метку убрать, то алгоритм обмена ничего вообще с метками не делает, так как в XML с данными о товарах теги, в которые помещены метки, пустые. А метод
applyTags() модели
Shop_Item выглядит так:
public function applyTags($sTags)
{
$aTags = explode(',', $sTags);
return $this->applyTagsArray($aTags);
}
То есть, если строка в
$sTags пустая, ничего не происходит с метками.
Алгоритм обмена в 1С был изменен так, чтобы в случае отсутствия меток у товаров в XML-теге
<ЗначенияСвойства> у дочернего тега
<Значение> была строка с определенным набором символов.
Я сначала добавил в код модели
Shop_Item вот что. Точнее, изменил код её метода
applyTags()
public function applyTags($sTags)
{
if ( $sTags === "NOTAGS" )
{
$this->Tag_Shop_Items->deleteAll(FALSE);
return $this;
}
$aTags = explode(',', $sTags);
return $this->applyTagsArray($aTags);
}
Но как вы уже сказали ранее, это неправильный путь.