klev/yandex-market-yml

Yandex market create yml

dev-master 2017-08-26 20:05 UTC

This package is not auto-updated.

Last update: 2024-04-28 02:11:07 UTC


README

Yandex Market Yml

Библиотека для генерации YML файла

https://yandex.ru/support/partnermarket/yml/about-yml.html

Это библиотека не готова на 100%, ее нельзя использовать! Не было проведененно UNIT тестирование! Библиотека теоретически должна работать правильно, при правильных входных данных. Если вы увидите плохое решение в коде, пожалуйста сообщите мне об этом klevunin@gmail.com

Лицензия MIT

Use

Эту библеотеку можно установить с помощью Composer https://getcomposer.org/

"repositories": [
        {
            "type": "git",
            "url":  "git@github.com:klevunin/YandexMarketYml.git"
        }
    ],
"require-dev": {
    "klev/yandex-market-yml": "*"
},

У вас должен быть набор данных по вашим товарам. Вы должны скормить библиотеки массив данных $shop=[]; Эти данные формируют <shop></shop> Вы скорей всего будите обходить ваши товары и с какими-то вашими условиями записывать их в YML. По этой причине у меня реализовано добавление одного <offer/> Вы должны передать массив с данными $offer=[];

Массив $shop должен ключами совпадать со свойствами класса MarketYandexShop

Массив $offer должен ключами совпадать со свойствами класса MarketYandexOffer

Вы можете наследоваться от этих классов и добавлять свойства. Все свойства должны иметь getter и setter.

Вы так же можете добавить методы для обработки свойств.

Например, если у вас какой-то другой формат входных данных. Для этого вы должны создать методы protected в вашем классе, который начинается с getBuilderGet{NameProperty}. Вы можете увидеть примеры в trait MarketYandexBuilder.

use Klev\Yandex\YmlCreate\Yml\YandexYml;

require_once __DIR__ . '/../vendor/autoload.php';

$Yml = new YandexYml();
$Yml->setShop(new MarketYandexShopValidation($shop));
foreach ($offers as $offer) {
 $Yml->setOffers(new MarketYandexOfferValidation($offer));
}

Или сделать все тоже самое но без проверки валидации данных

$Yml = new YandexYml();
$Yml->setShop(new MarketYandexShop($shop));
foreach ($offers as $offer) {
 $Yml->setOffers(new MarketYandexOffer($offer));
}

При ошибки валидации я буду кидать исключения подкласса KlevYandexYmlCreateException. Это может быть полезно на стадии настройки.

Вы можете запросить метод, что бы увидеть текущий результат:

$Yml->getEchoXML();

Чтобы сохранить в файл, нужно вызвать метод с указанием имени файла:

$Yml->saveToFile($file);