Все свойства в Yandex.Market
Все манипуляции с генерацией документа выгрузки в Yandex.Market находятся в одном файле - в корне в yandex.php - откроем его.
После строк (строка 47)
// Товары $simpla->db->query("SET SQL_BIG_SELECTS=1");
добавим выборку всех свойств сразу с названиями параметров
// Свойства товаров $features = array(); $simpla->db->query("SELECT f.id as feature_id, f.name, po.value, po.product_id FROM s_options po LEFT JOIN s_features f ON f.id=po.feature_id ORDER BY f.position"); foreach($simpla->db->results() as $f) if(!empty($f->name)) $features[$f->product_id][$f->name] = $f->value;
Мы записали все свойства в массив по индексу товара и названию параметра.
Далее найдем закрывающую "товар" строку с описание и названием (строка 98)
print "<name>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</name> <description>".htmlspecialchars(strip_tags($p->annotation))."</description> </offer> ";
и преобразуем ее в код
print "<name>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</name> <description>".htmlspecialchars(strip_tags($p->annotation))."</description> "; if(isset($features[$p->product_id])) foreach($features[$p->product_id] as $k=>$v) print "<param name='".htmlspecialchars($k)."'>".htmlspecialchars($v)."</param> "; print "</offer> ";
Можно было бы сделать проще и вставить код в уже готовый "разрыв" после картинки, но не хотелось нарушать структуру.
В следующий раз расширим этот функционал и добавим возможность выгружать только выбранные свойства. А с этой задачей все!
Приятной работы с SimplaCMS!
Комментарии
Ваш отзыв будет первым