Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Яндекс Маркет


Recommended Posts

Добрый день, прошу помощи:

при выгрузке yml файла со стороны Платона обнаружены нарушения Требований к рекламным материалам:

-Нет статуса "под заказ".

В импортируемом на Маркет файле у всех товаров статус: available="true" — товар в наличии

Нужен еще статус available="false" — товар на заказ каким-то образом связанный со страницей товара, у которого выставлен статус нет на складе или под заказ (http://help.yandex.ru/partnermarket/?id=1111461)

Как это можно решить? У меня нет желания выставлять всем товарам статус "в наличии" если их реально нет, а потом негативные отзывы о работе на том же Маркете получать...

Link to post
Share on other sites

при выгрузке yml файла со стороны Платона обнаружены нарушения Требований к рекламным материалам:

-Нет статуса "под заказ".

Типа такого:

в \catalog\controller\export\yml.php

(если id статуса продукта не равен 7 (у меня это "нет в наличии")- ставим доступно, если равен - ставим недоступно, решение возможно кривое, проверяйте)

foreach ($products as $product) {
				$output .= '<offer id="'.$product['product_id'].'"';
				if ($product['stock_status_id']==7) {
				$output .= ' available="true" ';
				} else {
				$output .= ' available="false" ';
				}

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

Link to post
Share on other sites

Типа такого:

в \catalog\controller\export\yml.php

(если id статуса продукта не равен 7 (у меня это "нет в наличии")- ставим доступно, если равен - ставим недоступно, решение возможно кривое, проверяйте)

foreach ($products as $product) {
				$output .= '<offer id="'.$product['product_id'].'"';
				if ($product['stock_status_id']==7) {
				$output .= ' available="true" ';
				} else {
				$output .= ' available="false" ';
				}

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

19th, спасибо

Чтобы окончательно закрыть вопрос:

где присваиваются id продуктам (id=7 - "нет в наличии")?

я ему например выгружаю только те товары, которые есть в наличии, остальные просто не отдаю в yml

т.е., по логике, указываем в yml, что id=7"нет в наличии"(???) и id=..."под заказ" не загружаются в Яшу - это бы меня как раз и устроило.

Только не смогу я это на программном уровне воплотить - нет навыков :blink:. Единственный язык программирования который изучал был бэйсик. Это было в школе лет 15 назад... :rolleyes:

Спасибо за понимание

Link to post
Share on other sites

где присваиваются id продуктам (id=7 - "нет в наличии")?

Зайди в админку, в редактирование наименования статусов заказов, выбери "редактировать" мышку на нужный статус и смотри куда она ссылается (в адресной строке будет большой адрес, который в себя включает что-то похожее на "id=7" ну или любое другое число).
Link to post
Share on other sites

foreach ($products as $product) {
				$output .= '<offer id="'.$product['product_id'].'"';
				if ($product['stock_status_id']==7) {
				$output .= ' available="true" ';
				} else {
				$output .= ' available="false" ';
				}
кривое решение. кто-нибудь подскажет правильное?
Link to post
Share on other sites

кривое решение. кто-нибудь подскажет правильное?

foreach ($products as $product) {
                                if ($product['stock_status_id']==7) {
                                $output .= '<offer id="'.$product['product_id'].'" available="true" bid="13">' . $this->eof;
                                } else {
                                $output .= '<offer id="'.$product['product_id'].'" available="false" bid="13">' . $this->eof;
                                }
  • +1 1
Link to post
Share on other sites

А как в яндекс маркет файле импортировать товар с seo url?

Link to post
Share on other sites

  • 1 month later...
Guest

foreach ($products as $product) {
                                if ($product['stock_status_id']==7) {
                                $output .= '<offer id="'.$product['product_id'].'" available="true" bid="13">' . $this->eof;
                                } else {
                                $output .= '<offer id="'.$product['product_id'].'" available="false" bid="13">' . $this->eof;
                                }

яндекс маркет не принимает товары так как те товары которые под заказ выгружаются с параметром available="true" но у меня магазин настроен так что когда товара нет он имеет статус на заказ и имеет ид 3. тот же статус стоит у товаров что есть в наличии. тоесть ид 3 но он отображается так как количество больше 1. Подскажите решение без прописывания ид3 так как если его проставляешь то все товары становятся на заказ, даже те которые в наличии.

Link to post
Share on other sites

Господа, у мну есть 2 вопроса по скармливанию яндексу результатов работы yml.php:

1. Что сие значит?:

Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2011-04-01 19:04 (строка 1, столбец 166)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Element 'model' is not valid for content model: '(url?,buyurl?,price,wprice?,currencyId,xCategory?,categoryId+,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?,country_of_origin?,downloadable?,adult?,barcode*,param*)' (строка 41, столбец 119)
В 41 строке у меня вот это:

$output .= '<price>' . $this->tax->calculate($product['price'], $product['tax_class_id']) . '</price>';
Судя по Element 'model' is not valid for content model: , ему не нравится формат написания моделей? Тогда, при чём тут 41 строка? Или я не так сие понимаю? У меня есть модели с пробелами и слешем (например "tovar: 12345/67"). Надо как-то по-другому писать?

2. Не могли бы те, у кого нормально работает, кто нормально подшаманил файл yml.php, выложить его? А то, насколько я понял, оригинальный файл достаточно кривой. А как его подравнять, чтобы он понравился Яндексу - хз. :(

Link to post
Share on other sites

В 41 строке у меня вот это:

$output .= '<price>' . $this->tax->calculate($product['price'], $product['tax_class_id']) . '</price>';
Нужно смотреть что в 41 строке сгенерённого файла

2. Не могли бы те, у кого нормально работает, кто нормально подшаманил файл yml.php, выложить его? А то, насколько я понял, оригинальный файл достаточно кривой. А как его подравнять, чтобы он понравился Яндексу - хз. :(

Судя по коду ты вряд-ли найдёш "у кого нормально работает"...
Link to post
Share on other sites

Судя по коду ты вряд-ли найдёш "у кого нормально работает"...

Ну как-то же люди добавляют на ЯМ! Я уже и вывод модели убирал, и ещё кучу шаманств делал. Не помогло. Начинают другие ошибки вылазить. Непруха какая-то. Или проблема в руках... :)
Link to post
Share on other sites

Ну как-то же люди добавляют на ЯМ! Я уже и вывод модели убирал, и ещё кучу шаманств делал. Не помогло. Начинают другие ошибки вылазить. Непруха какая-то. Или проблема в руках... :)

Дай ссылку на магазин, попробую разобраться.
Link to post
Share on other sites

Читай ЛС.

Link to post
Share on other sites

  • 1 month later...

высвечивается:

Parse error: syntax error, unexpected T_PROTECTED in /home/westmarketby/www/westmarket.by/catalog/controller/export/yml.php on line 86

после того как прописываешь:

foreach ($products as $product) {

if ($product['stock_status_id']==7) {

$output .= '<offer id="'.$product['product_id'].'" available="true" bid="13">' . $this->eof;

} else {

$output .= '<offer id="'.$product['product_id'].'" available="false" bid="13">' . $this->eof;

}

не подскажете?

86 строка:

// Возвращает массив категорий

protected function getCat($pi=0) {

$categories = $this->model_catalog_category->getCategories($pi);

$out = '';

Link to post
Share on other sites

Судя по всему используется yml.php из стандартной сборки ocStore с какими-то изменениями.

Я уже писал что файл из стандартной сборки - кривой как поросячий хвост и разбираться с ним нет никакого желания.

Link to post
Share on other sites
  • 5 months later...

У меня была аналогичная проблемма. Как выяснилось я создал не правильный DOMdocument (в PHP.)

А именно, случайно прикрепил <offers> вне <shop> На глаз все выглядело правдоподобно,

но естественно не работало с диагностикой "Not enough elements to match content model"

Теперь все работает.

Только вот где можно посмотреть результат?

Link to post
Share on other sites

  • 9 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.