Добавить в фид yandex поле

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

bellota
bellota

Сообщение #1 bellota » 17.02.2020, 14:57

Добрый день.

Помогите добавить в фид нужное поле

Код: Выделить всё

<vat>2</vat>
<shipment-options>
<option days="1" order-before="15"/>
</shipment-options>
<outlets>
<outlet id="1" instock="50"/>
</outlets>
<vendor>Indesit</vendor>
<vendorCode>12345678</vendorCode>
<model>Indesit SB 185</model>


Есть пример кода, так вот мне нужно добавить

Код: Выделить всё

<outlets>
<outlet id="1" instock="50"/>
</outlets>


id так и должен быть "1"
instock браться из остатков данного товара

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #2 zyxer » 17.02.2020, 15:04

Версия окая?
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

bellota
bellota

Сообщение #3 bellota » 17.02.2020, 15:46

zyxer, 2.3.4

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #4 zyxer » 17.02.2020, 16:06

в файле feed.php в раёне строки

Код: Выделить всё

print "<model>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</model>
добавьте

Код: Выделить всё

print "<outlets>
    <outlet id=\"1\" instock=\"{$p->stock}\"/>
    </outlets>";
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

bellota
bellota

Сообщение #5 bellota » 17.02.2020, 19:10

А как будет передаваться кол-во у товаров у которых указано бесконечность?

bellota
bellota

Сообщение #6 bellota » 18.02.2020, 06:28

zyxer, Не работает. ошибка 500

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #7 korshunov » 18.02.2020, 07:25

У меня предложеный вариант работает.
Но обнаруживается, что при значении кол-ва бесконечность (stock=NULL) выдает instock="". Видимо, это неправильно.

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #8 zyxer » 18.02.2020, 08:32

да, на счет количества, действительно промахнулся ))
Нужно изменить на

Код: Выделить всё

print "<outlets>
    <outlet id=\"1\" instock=\"" . ($p->stock === null ? $okay->settings->max_order_amount : $p->stock) . "\"/>
</outlets>";


В таком случае при "бесконечности", будет подставляться значение "Максимум товаров в заказе" http://prntscr.com/r3xg0f

Файл feed.php должен выглядеть так: http://prntscr.com/r3xgbe
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

bellota
bellota

Сообщение #9 bellota » 18.02.2020, 15:10

zyxer писал(а):В таком случае при "бесконечности", будет подставляться значение "Максимум товаров в заказе" http://prntscr.com/r3xg0f

Файл feed.php должен выглядеть так: http://prntscr.com/r3xgbe
Сделал один в один. "Валится" фид ((
Изображение

Добавлено спустя 43 секунды:
https://prnt.sc/r44m1e

скрин

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #10 zyxer » 18.02.2020, 15:16

можно посмотреть выгрузку в сети? или это локалка? Если открыть через ctrl+u нет там каких php ошибок?

Добавлено спустя 18 секунд:
и изображение перезалейте, не отображается
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

bellota
bellota

J9KN8

Сообщение #11 bellota » 18.02.2020, 15:41

zyxer писал(а):можно посмотреть выгрузку в сети? или это локалка? Если открыть через ctrl+u нет там каких php ошибок?
https://bellota-shop.ru/feed.xml

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #12 zyxer » 18.02.2020, 15:48

У вас content-type: text/html, должен быть text/xml (может хостер его срезает зачем-то). Вообще Content-type устанавливается в файле feed.php http://prntscr.com/r459eb. Заголовок Content-type в данном случае влияет только на отображение содержимого браузером, т.е. парсерам он не обязателен.
Хотя правило хорошего тона, передавать всегда корректный Content-type
Параметр отображается корректно http://prntscr.com/r458hw
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

bellota
bellota

Сообщение #13 bellota » 18.02.2020, 15:52

zyxer, Проблема в том, что если я не изменяю файл, а заливаю дефолтный от окая, то все отображается ок! Если я удаляю добавления которые делаю, то уже фид отображается "криво".

Подскажите, как решить проблему? Я правлю в блокноте, может он косячит?

Добавлено спустя 1 минуту 17 секунд:
zyxer писал(а):У вас content-type: text/html, должен быть text/xml (может хостер его срезает зачем-то). Вообще Content-type устанавливается в файле feed.php
В файле все ок. text/xml

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 1 месяц
Откуда: Днепр

Сообщение #14 zyxer » 18.02.2020, 16:01

откройте в notepad++ и посмотрите кодировку файла, может быть что там utf-8 BOM, должна быть без BOM (кодировку можно увидеть в правом нижнем углу блокнота http://prntscr.com/r45i7o)
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

bellota
bellota

Сообщение #15 bellota » 20.02.2020, 06:37

Да, проблема была именно в блокноте. Поправил через Notepad++ и все заработало.
zyxer, Спасибо за помощь.

bellota
bellota

Сообщение #16 bellota » 02.02.2021, 16:12

Подниму тему теперь заново.
Как мне теперь вывести данный код, но в современной версии?

Рылся по Хелперу в модуле, но для меня там темный лес стоит


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 26 гостей