notdest/yandex-yml-generator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

notdest/yandex-yml-generator

最新稳定版本:1.0

Composer 安装命令:

composer require notdest/yandex-yml-generator

包简介

Simple Yandex Yml file generator.

关键字:

README 文档

README

Генератор YML для быстрого подключения вашего магазина к Yandex.Market.

  • Встраивается по принципу «Удали лишнее из примера».
  • Очень прост, состоит из всего двух классов - ymlDocument и ymlOffer.
  • Зависит только от встроенных библиотек - php-xml и php-mbstring, обычно они уже установлены.

Установка

composer require notdest/yandex-yml-generator

Если без композера - подсоединяем два файла из папки /src/, как в примерах.

Проверка работоспособности

Скачиваем проект и запускаем пример arbitrary.php. Может ругаться, что не может создать файл - даем права на запись папке с примерами. Получившийся файл arbitrary.xml проверяем сервисом Яндекса.

Устройство примеров

Для каждого типа описаний сделан свой пример использования по принципу "удали лишнее". Порядок следования полей такой же, как и в документации, за исключением вынесенных в конструктор. Примеры выглядят вот так:

// model, vendor, id, price, currencyId, categoryId , [price from - "цена от ххх руб." ] $offer = $y->arbitrary( '3811', 'Brand', 'id01id1111', 900, "USD", 15 /* , true*/ ); $offer ->cbid(80) // Размер ставки на карточке товара. 0,8 у.е. ->url("http://magaz.ru/tovar.html") // !!! условно обязательный. URL страницы товара  //->vat('VAT_10_110') отсутствует в схеме // Ставка НДС для товара.

Здесь arbitrary() создает предложение типа «произвольный», в него вынесены гарантированно обязательные поля. Метод cbid() уже не обязателен, его можно просто удалить, если он не нужен. Метод url() также можно удалить, но без него не будет работать модель «Переход на сайт» . Далее, метод vat() описан в документации, но отсутствует в xsd-схеме указанной в технических требованиях и не проходит валидацию. Каждая строчка имеет комментарий. Файлы примеров:

Тип предложения Пример Дата валидации
Упрощенный examples/simple.php 11.08.2019
Произвольный examples/arbitrary.php 11.08.2019
Книги examples/book.php 11.08.2019
Аудиокниги examples/audiobook.php 11.08.2019
Аудио и видеопродукция examples/artist.php 11.08.2019
Туры examples/tour.php 11.08.2019
Мероприятия examples/event.php 11.08.2019
Лекарства examples/medicine.php 11.08.2019

Валидация проводилась с помощью сервиса Яндекса, указывая тип "Маркет".

Сверить с документацией Яндекса

Документация у Яндекса сделана преимущественно в виде таблиц. Соответственно я задокументировал свои примеры такими же таблицами с аналогичным порядком следования полей, описав текущие правила и ограничения. Просто открываете рядом два окна браузера, с документацией Яндекса и моей, и ищете различия. Нет различий - хорошо, есть - пишете на e-mail в профиле.

Таблица Яндекса Таблица моя
Общие поля магазина Общие поля магазина
Упрощенный тип Упрощенный тип
Произвольный тип Произвольный тип
Книги Книги
Аудиокниги Аудиокниги
Аудио и видеопродукция Аудио и видеопродукция
Туры Туры
Мероприятия Мероприятия
Лекарства Лекарства

Не обязательно проверять все, используются обычно общие поля и какой-то один тип.

Также был сделан нагрузочный тест examples/stress-test.php. Для генерации файла объемом 500 Мб (максимально разрешенный Яндексом) понадобилось 143 секунды, потребление памяти составило 2 Мб. Или 31 секунда на моем новом компе.

В случае необходимости внести изменения, рекомендую сначала ознакомиться с документацией по классам ymlDocument и ymlOffer.

P.S. Ставь звездочки, если считаешь, что проект должен быть в топе.

统计信息

  • 总下载量: 40.02k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 50
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 50
  • Watchers: 2
  • Forks: 15
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固