Все фото товаров в Yandex.Market

Все фото товаров в Yandex.Market

Дата публикации:
Поделиться:

По правде сказать не уверен, что данный формат с несколькими картинками пройдет у Yandex.Market, но на форуме поднимался вопрос и посему решаю данную задачу. Если будут замечания и предложения - с удовольствием скорректирую. Своего магазина с работой с Яндексом не имею, поэтому пишу код под ту задачу, что была на форуме :)

Опять же открываем файл в корне сайта yandex.php. После кода (строка 47)

// Товары
$simpla->db->query("SET SQL_BIG_SELECTS=1");

Добавляем код выборки всех картинок из базы

//Фото товара
$images = array();
foreach($simpla->products->get_images() as $i)
  $images[$i->product_id][] = $i->filename;

Далее находим запрос выборки вариантов товара (строка 60)

$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 s_variants v LEFT JOIN s_products p ON v.product_id=p.id
					LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories WHERE product_id=p.id LIMIT 1)	
					LEFT JOIN s_images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM s_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, p.id as product_id, p.url, p.annotation, pc.category_id 
					FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id
					LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories 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 ");  

Я удалил из запроса подключение таблицы s_images, так как мы картинки выбрали отдельно.

Теперь непосредственно к генерации файла. Найдем код (строка 92)

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

и заменим его на код

if(isset($images[$p->product_id]))
foreach($images[$p->product_id] as $v)
print "<picture>".$simpla->design->resize_modifier($v, 200, 200)."</picture>
";

Вот и все по данной задаче :)

Отзывы

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

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