Перейти к содержанию
Официальный форум поддержки Simpla

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


Перейти к решению Решено Kasha,

Рекомендуемые сообщения

Нужно добавить в файл дополнительный поля товаров.

<vendor> бренд
<vendorCode> артикул.

А также если есть вариант в товаре то выводить отдельной позицией в xml файл как отдельный товар(но с темже фото и url)

 

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

Находим в файле 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>
";
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
  • 1 месяц спустя...

подскажите пожалуйста, как можно сделать в файле yandex.php в поле цены, когда стоит "0", выводило "под заказ" или вообще не выводило данный товар с ценой "0" ?

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

 

Находим в файле 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>
";

Благодарю! 

Ссылка на сообщение
Поделиться на другие сайты

подскажите пожалуйста, как можно сделать в файле yandex.php в поле цены, когда стоит "0", выводило "под заказ"или вообще не выводило данный товар с ценой "0" ?

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

Еще в файл yml было бы неплохо выводить срок гарантии. :)
И еще... если работаете с яндекс маркетом, то там все лучше выводить с пометкой под заказ, т.к. в списке магазинов отображается так-же, никто из покупателей особой разницы не заметит, а служба контроля мгазинов не сможет придраться к тому, что какой-то товар везут дольше 3х дней. 


 

Ссылка на сообщение
Поделиться на другие сайты

 

подскажите пожалуйста, как можно сделать в файле yandex.php в поле цены, когда стоит "0", выводило "под заказ"или вообще не выводило данный товар с ценой "0" ?

Если Вы разобрались можете написать как Вы сделали :-)

Ссылка на сообщение
Поделиться на другие сайты
  • 9 месяцев спустя...

у меня почему - то маркет теперь выдает ошибку...вот она

Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2014-08-15 16:16 (строка 3, столбец 38)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Element 'name' is not valid for content model: '(url?,buyurl?,price,oldprice?,wprice?,currencyId,xCategory?,categoryId+,market_category?,picture*,store?,pickup?,delivery?,deliveryIncluded?,local_delivery_cost?,orderingTime?,((typePrefix?,vendor,vendorCode?,model,((provider,tarifplan?))?)|(author?,name,publisher?,series?,year?,ISBN?,volume?,part?,language?,binding?,page_extent?,table_of_contents?)|(author?,name,publisher?,series?,year?,ISBN?,volume?,part?,language?,table_of_contents?,performed_by?,performance_type?,storage?,format?,recording_length?)|(artist?,title,year?,media?,starring?,director?,originalName?,country?)|(worldRegion?,country?,region?,days,dataTour*,name,hotel_stars?,room?,meal?,included,transport,price_min?,price_max?,options?)|(name,place,hall?,hall_part?,date,is_premiere?,is_kids?)|(name,vendor?,vendorCode?)),aliases?,additional*,description?,sales_notes?,promo?,manufacturer_warranty?,seller_warranty?,country_of_origin?,downloadable?,adult?,age?,barcode*,cpa?,fee?,rec?,expiry?,weight?,dimensions?,param*,related_offer*)' (строка 45, столбец 9)
Ссылка на сообщение
Поделиться на другие сайты

Вы пытаетесь сделать выгрузку по типу "vendor.model". У такого типа товаров нет варианта name, только model

спасибо конечно, как я понимаю ошибка в этом куске файла

$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 ");

еще предполагаю что в этом кусочке b.name AS brand

или прошу поправить меня....

заранее тебе спасибо

Ссылка на сообщение
Поделиться на другие сайты

Вопрос решил.... добавив в файл следующие параметры

после 128 строчки

<description>".htmlspecialchars(strip_tags($p->annotation))."</description>

вставил

<param name='Бренд'>".htmlspecialchars(strip_tags($p->brand))."</param>
<param name='Размер'>".htmlspecialchars(strip_tags($p->variant_size))."</param>
<param name='Цвет'>".htmlspecialchars(strip_tags($p->variant_name))."</param>
 
Всем спасибо
Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...
  • 4 месяца спустя...
  • 5 месяцев спустя...

подскажите - как вывести еще url бренда

 

(делаю это в отдельном файле для Директа, выгружаю бренды все )

Ссылка на сообщение
Поделиться на другие сайты

Примерно так:

1. В запросе добавить поле b.url AS brand_url

2. При выводе использовать <url>".$simpla->config->root_url.'/brands/'.$p->brand_url."</url>";

Ссылка на сообщение
Поделиться на другие сайты

Примерно так:

1. В запросе добавить поле b.url AS brand_url

2. При выводе использовать <url>".$simpla->config->root_url.'/brands/'.$p->brand_url."</url>";

 

Спасибо! Все получилось!

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...

Добрый день, в файле  дописывается после расширения изображения цифры например

 

files/products/M2hqMPaHnzA.200x200.jpg?6c00911d006e80056ecbc6e7afe74501

 

как это можно убарть? потому что фото не подтягиваются в другую кмс систему

Ссылка на сообщение
Поделиться на другие сайты

Токены зашиты в API -  чтобы убрать,  надо там дорабатывать.

 

Либо установить разработку  http://forum.simplacms.ru/topic/8424-%D1%83%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD-%D0%B8%D0%B7-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B5%D0%BD%D0%B8%D1%8F/

Ссылка на сообщение
Поделиться на другие сайты

Токены зашиты в API -  чтобы убрать,  надо там дорабатывать.

 

Либо установить разработку  http://forum.simplacms.ru/topic/8424-%D1%83%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD-%D0%B8%D0%B7-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B5%D0%BD%D0%B8%D1%8F/

спасибо получилось, а как увеличить размер фото?

Ссылка на сообщение
Поделиться на другие сайты

Если вопрос про yandex.php, то можно бы и догадаться, что через постановку нужных размеров в

$simpla->design->resize_modifier($p->image, 200, 200)

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...

А подскажите пожалуйста, как сделать вывод не только главного изображения в файле но и доп? и в версии 1.4 тянет почему то краткое описание а не новое, как исправить? Очень надеюсь на помощь.

Ссылка на сообщение
Поделиться на другие сайты

Фрилансеров поддерживающих первую симплу можно на пальцах посчитать.

Почему не хотите обновится до последней версии?

Ссылка на сообщение
Поделиться на другие сайты

Фрилансеров поддерживающих первую симплу можно на пальцах посчитать.

Почему не хотите обновится до последней версии?

хочу вообще уйти с симплы, вот формирую файл  с товарами, и описание только краткое и фото не все(((

Ссылка на сообщение
Поделиться на другие сайты

хочу вообще уйти с симплы, вот формирую файл  с товарами, и описание только краткое и фото не все(((

Даже не попробовав вторую версию симплы вы решили уйти?
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...