Добавление поле бренд и артикул в файл экспорта yandex.xml Simpla

Добавление поле бренд и артикул в файл экспорта yandex.xml Simpla

Данный вид выгрузки позволяет лучше ассоциировать карточки товаров в Яндекс.Маркете.

Находим в файле yandex.php строки

$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image
                    FROM __variants v LEFT JOIN __products p ON v.product_id=p.id
                   
                    LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1)    
                    LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)    
                    WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position ");

меняем на

$simpla->db->query("SELECT v.price, v.id AS variant_id, p.name AS product_name, v.name AS variant_name, v.position AS variant_position, v.sku AS variant_sku, p.id AS product_id, p.url, p.annotation, pc.category_id, i.filename AS image, b.name AS brand
              FROM __variants v LEFT JOIN __products p ON v.product_id=p.id
              LEFT JOIN s_brands b ON b.id = p.brand_id
              LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) 
              LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
                         WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position ");

далее ищем

if($p->image)
print "<picture>".$simpla->design->resize_modifier($p->image, 200, 200)."</picture>
";

print "<name>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</name>
<description>".htmlspecialchars(strip_tags($p->annotation))."</description>
</offer>
";

меняем на

if($p->image)
print "<picture>".$simpla->design->resize_modifier($p->image, 200, 200)."</picture>
";

if($p->brand)
print "<vendor>".$p->brand."</vendor>
";

if($p->variant_sku)
print "<vendorCode>".$p->variant_sku."</vendorCode>
";

print "<name>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</name>
<description>".htmlspecialchars(strip_tags($p->annotation))."</description>
</offer>
";

Если необходимо вывести только бренд, удалите эти строки

if($p->variant_sku)
print "<vendorCode>".$p->variant_sku."</vendorCode>
";

ДЕМО Поле vendor и vendorcode

Читайте также  Указываем телефон в настройках Simpla
Универсальный виджет get_products. Simpla CMS... Порой есть необходимость получить список товаров по какому-то определенному критерию, будь-то товары схожего бренда в карточке товаров, или новинки ко...
Универсальный плагин для Simpla CMS... Эта статья поможет Вам внедрить универсальный плагин для вызова нужных функций API прямо в шаблоне без надобности дорабатывать PHP код. И так отк...
Выгружаем в Яндекс Маркет только первый вариант то... Иногда необходимо выгружать в Яндекс Маркет только первый вариант товара. Данное решение поможет решить эту задачу. Открываем файл yandex.php, ище...
Выбор количества товара перед помещением в корзину... Странно, что разработчики вообще не включили данное дополнение в свой дистрибутив, ведь мелочь, а приятно, ну да ладно, сделаем сами. ...

Сохрани, чтобы не потерять