Все свойства в Yandex.Market

Все свойства в 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!

Отзывы

Ваш отзыв будет первым
Оставьте отзыв
На него будут приходить уведомление при ответе. На сайте не публикуется

Модули из этой тематики