-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
27 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | ||
|
||
Остальные будут немного позже. |