Skip to content

Commit

Permalink
нормальный текст
Browse files Browse the repository at this point in the history
  • Loading branch information
notdest committed Mar 22, 2018
1 parent dbad77c commit 1866939
Showing 1 changed file with 27 additions and 6 deletions.
33 changes: 27 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,33 @@
Yml Generator
============

## Внимание! Проект на глубокой реконструкции, в данный момент не работоспособен ##
## Будет закончен к концу марта ##
Генератор YML для быстрого и *безболезненного* подключения вашего магазина к Yandex.Market. Основные фишки:

Генератор YML для быстрого подключения вашего магазина к Yandex.Market.
**Ультимативно прост.** Состоит из двух файлов: [ymlDocument.php](ymlDocument.php) и [ymlOffer.php](ymlOffer.php). В них соответственно объявлены классы `ymlDocument` и `ymlOffer`, унаследованные от встроенных классов `DomDocument` и `DomElement`. Никакие сторонние библиотеки и фреймворки не требуются. Может пожаловаться на отсутствие `DomElement`, что решается установкой пакета `php-xml`, хотя обычно на хостингах он уже есть.

Написан на основе встроенных классов DomDocument и DomElement, т.е. не тянет за собой лишних фрэймворков. В файле index.php находится пример использования. Все обязательные параметры передаются при создании ymlDocument или при создании нового товарного предложения, использование остальных методов опционально.
В обзор.ods находится табличка, с перечислением полей в каждом виде товарных предложений, делалась изначально для себя, чтобы упростить создание класса.
**Быстрая проверка актуальности.** Документация у Яндекса сделана преимущественно в виде таблиц. Соответственно я задокументировал свои классы такими же таблицами с аналогичным порядком следования полей, описав текущие правила и ограничения. Просто открываете рядом два окна браузера, с документацией Яндекса и моей, и ищете различия. Нет различий - хорошо, есть - пишете на *e-mail* в профиле.

Документация по YML: http://help.yandex.ru/partnermarket/yml/about-yml.xml
Таблица Яндекса | Таблица моя
----------------------- | -------------
[Общие поля магазина](https://yandex.ru/support/partnermarket/export/yml.html) | [Общие поля магазина](docs/yml.md)
[Упрощенный тип](https://yandex.ru/support/partnermarket/offers.html) | [Упрощенный тип](docs/simple.md)
[Произвольный тип](https://yandex.ru/support/partnermarket/export/vendor-model.html) | [Произвольный тип](docs/arbitrary.md)

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

**Простота встраивания.** Для каждого типа описаний сделан свой пример использования по принципу "удали лишнее". Порядок следования полей такой же, как и в документации, за исключением вынесенных в конструктор.
```php
// 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 страницы товара
```
Здесь `arbitrary()` создает предложение типа «произвольный», в него вынесены гарантированно обязательные поля. Метод `cbid()` уже не обязателен, его можно просто удалить, если он не нужен. Метод `url()` также можно удалить, но без него не будет работать модель «Переход на сайт» . Каждая строчка имеет комментарий, но тут возникают проблемы - в *Sublime Text* всё идеально, в встроенном в *linux Mint* блокноте изредка что-то уезжает, а вот на *github*-е уже прилично едет. Ну и с другими редакторами такое бывает. Файлы примеров:

Тип предложения | Пример
----------------| -------------
Упрощенный | [examples/simple.php](examples/simple.php)
Произвольный | [examples/arbitrary.php](examples/arbitrary.php)

Остальные будут немного позже.

0 comments on commit 1866939

Please sign in to comment.