All Projects → notdest → yandex-yml-generator

notdest / yandex-yml-generator

Licence: other
😎 Генератор YML для Яндекс.Маркет на php, не требует других библиотек.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to yandex-yml-generator

YmlGenerator
YML (Yandex Market Language) file generator
Stars: ✭ 96 (+159.46%)
Mutual labels:  yml, yandex-market-language
swagger-aggregate
Spring Boot app to aggregate multiple service's Swagger api-docs
Stars: ✭ 23 (-37.84%)
Mutual labels:  yml
Taffy
Test Automation Framework Based On Nosetests. ✨🍰✨
Stars: ✭ 94 (+154.05%)
Mutual labels:  yml
api-spec
API Specififications
Stars: ✭ 30 (-18.92%)
Mutual labels:  yml
Localappveyor
Run your AppVeyor builds, locally
Stars: ✭ 112 (+202.7%)
Mutual labels:  yml
publiccode.yml
A metadata standard for public software
Stars: ✭ 97 (+162.16%)
Mutual labels:  yml
Cfn Sphere
AWS CloudFormation stack management tool
Stars: ✭ 76 (+105.41%)
Mutual labels:  yml
pyaptly
Automates the creation and managment of aptly mirrors and snapshots based on yml input files.
Stars: ✭ 17 (-54.05%)
Mutual labels:  yml
docker-compose-search
command line utility to search docker-compose projects
Stars: ✭ 32 (-13.51%)
Mutual labels:  yml
Setup Miniconda
Set up your GitHub Actions workflow with conda via miniconda
Stars: ✭ 222 (+500%)
Mutual labels:  yml
Neph
A modern command line job processor, similar with make command
Stars: ✭ 174 (+370.27%)
Mutual labels:  yml
Natrium
A pre-build (Swift) script to alter your Xcode project at pre-build-time per environment, build configuration and target.
Stars: ✭ 131 (+254.05%)
Mutual labels:  yml
php-serializer
Serialize PHP variables, including objects, in any format. Support to unserialize it too.
Stars: ✭ 47 (+27.03%)
Mutual labels:  yml
Yq
Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents
Stars: ✭ 1,688 (+4462.16%)
Mutual labels:  yml
resume
Simple and clean resume in Jekyll
Stars: ✭ 40 (+8.11%)
Mutual labels:  yml
Data
Extended implementation of ArrayObject - useful collection for any config in your system (write, read, store, change, validate, convert to other format and etc).
Stars: ✭ 77 (+108.11%)
Mutual labels:  yml
Sshkeydistribut0r
A tool to automate key distribution with user authorization
Stars: ✭ 153 (+313.51%)
Mutual labels:  yml
ymlx
Command-line YAML processor
Stars: ✭ 77 (+108.11%)
Mutual labels:  yml
SDDC.Lab
Ansible playbooks for automated deployment and configuration of a nested vSphere environment with NSX-T
Stars: ✭ 117 (+216.22%)
Mutual labels:  yml
wordpress-bundle
Use Wordpress and Symfony together using a Symfony bundle
Stars: ✭ 30 (-18.92%)
Mutual labels:  yml

Yml генератор на php

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].