Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


centrznanie
 Поделиться

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

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

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

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

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

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

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

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


при выгрузке 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, и они не жалуются.

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


Типа такого:

в \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:

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

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


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

Зайди в админку, в редактирование наименования статусов заказов, выбери "редактировать" мышку на нужный статус и смотри куда она ссылается (в адресной строке будет большой адрес, который в себя включает что-то похожее на "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" ';
				}
кривое решение. кто-нибудь подскажет правильное?
Ссылка на комментарий
Поделиться на других сайтах


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

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
Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...

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 так как если его проставляешь то все товары становятся на заказ, даже те которые в наличии.

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

Господа, у мну есть 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, выложить его? А то, насколько я понял, оригинальный файл достаточно кривой. А как его подравнять, чтобы он понравился Яндексу - хз. :(

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


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

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

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

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

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

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


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

Дай ссылку на магазин, попробую разобраться.
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

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

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 = '';

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


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

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

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

  • 5 месяцев спустя...

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

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

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

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

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

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


  • 9 лет спустя...

 

Цитата



Opencart 3

ос стор сборка, такая же проблема, у меня поле (83) price - не хочет умножать коофициент валюты 1.3455 на цену которая была в usd 1.000

yandex_turbo.php

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


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.