jakercz / feed
Nette extension for export xml feeds
3.0.0
2020-11-04 11:22 UTC
Requires
- php: >=7.0
- contributte/console: ^0.8.0
- contributte/di: ^0.4.0
- latte/latte: ^2.5
- nette/di: ^3.0
- nette/utils: ^3.0
- sergiors/importing: 1.0.1
- symfony/config: ^4.2
Requires (Dev)
- nette/tester: @dev
README
Library for create xml feeds
in Nette
Installation
The best way to install Mk/Feed is using Composer:
Nette 3
$ composer require jakercz/feed
Nette 2.4
$ composer require makr/feed
Configuration
.neon
extensions: feed: Mk\Feed\DI\FeedExtension feed: exportsDir: '%wwwDir%' exports : heureka: \App\Models\HeurekaGenerator zbozi : \App\Models\ZboziGenerator
Config
For run is used Kdyby/Console Read how to setup Kdyby/Console
php index.php
After successful installation display:
Available commands: Feed:export Export products
Usage
For each feed (heureka, zbozi) you must create one factory (IGenerator)
<?php namespace App\Model; use Mk\Feed\Generators\Zbozi\ExtraMessage; use Mk\Feed\Generators\Zbozi\Generator; use Mk\Feed\Generators\Zbozi\Item; class ZboziGenerator extends Generator { function generate() { $items = [ $this->createItem(), $this->createItem(), $this->createItem(), $this->createItem(), ]; foreach ($items as $item) { $this->addItem($item); } } protected function createItem() { $item = new Item(); $item->setProductName('Name') #název nabídky, povinné, doporučená délka 70 znaků ->setDescription('Description') #popis nabídky, povinné (doporučená délka do 1000 znaků) ->setUrl('http://www.seznam.cz') #adresa nabídky v eshopu, povinné ->setPriceVat(10) #cena, povinné; číselná hodnota, max. dvě desetinná místa ->setDeliveryDate(0) #dostupnost, povinné (celé číslo nebo datum ve formátu RRRR-MM-DD) ->setItemId(123) #identifikátor nabídky v eshopu, nepovinné (alfanumerické znaky) ->setEan(87458965) #kód obchodní položky (čárový kód), nepovinné ->setIsbn('978-1-78038-067-4') #identifikační číslo knihy, nepovinné ->setProductNo('PRO1548') #produktový kód výrobce, nepovinné ->setItemGroupId(10) #označení skupiny nabídek, nepovinné ->setManufacturer('Adidas') #výrobce produktu, nepovinné ->setBrand('Nike') #značka produktu, nepovinné ->setCategoryId(1) #ID kategorie Zboží.cz, nepovinné ->setProduct('Cerny') #název nabídky ve výsledcích vyhledávání, např. "+ dárek zdarma", nepovinné ->setVisibility(true) #zobrazování nabídky na Zboží.cz ->setCustomLabel('neco') #dodatečné označení nabídky, vytvoří skupinu - kolekce, sezoni akce ->setCustomLabel1('nic') #dodatečné označení nabídky, vytvoří skupinu - kolekce, sezoni akce ->setMaxCpc(10) #maximální cena za proklik ->setMaxCpcSearch(10.2) #maximální cena za proklik pro nezařazené nabídky ->setProductLine('iPod | iPod Touch') #produktová řada ->setListPrice(999) #doporučená koncová prodejní cena ->setReleaseDate(new \DateTime()); #datum oficiálního zahájení prodeje v ČR #category text $item->addCategoryText('Kategorie | Subkategorie'); $item->addCategoryText('Kategorie | Subkategorie1'); #images $item->addImage('http://placehold.it/350x150'); #adresa obrázku, nepovinné, doporučujeme uvádět; značku je možné opakovat $item->addImage('http://placehold.it/350x150'); $item->addImage('http://placehold.it/350x150'); #extra messages $item->addExtraMessage(ExtraMessage::EXTENDED_WARRANTY); #doplňkové informace o nabídce, @see http://napoveda.seznam.cz/cz/zbozi/specifikace-xml-pro-obchody/specifikace-xml-feedu/#EXTRA_MESSAGE $item->addExtraMessage(ExtraMessage::FREE_DELIVERY); #shops $item->addShopDepot(1234); #výdejní místo pro okamžitý odběr $item->addShopDepot(5678); #parameters $item->addParameter('Barva', 'Hnědá'); #parametry nabídky $item->addParameter('Váha', '10', 'Kg'); return $item; } }
Categories helper
For getting available categories you can call CategoryHelper
$categories = new \Mk\Feed\Generators\Zbozi\CategoriesHelper(); #first parameter can be cache storage for caching results
dump($categories->getCategories());
Print available config
$ php index.php Feed:export -s
Execute config
$ php index.php Feed:export
Inspired by Trejjam/Export