A PHP library for generating and sFTPing XML Bazaarvoice Feeds.
Via Composer
$ composer require leroy-merlin-br/bazaarvoice-feed
$productFeed = new \BazaarVoice\Product\Feed();
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed', true);
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed')
->setIncremental(true);
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
$productElement = $productFeed->newProduct('my_product', 'My Product', 'product_category_123', 'http://www.example.com/my-product', 'http://www.example.com/images/my-product.jpg');
$feedElement->addProduct($product_element);
$moreProducts = [];
$secondProduct = $productFeed->newProduct('second_product', 'Second Product', 'product_category_456', 'http://www.example.com/second-product', 'http://www.example.com/images/second-product.jpg');
->setDescription('This is my second product')
->addPageUrl('http://www.example.es/second-product', 'es_SP')
->setBrandId('my_brand_123')
->addUPC('012345');
$moreProducts[] = $secondProduct;
$moreProducts[] = $productFeed->newProduct('third_product', 'Third Product', 'product_category_789', 'http://www.example.com/third-product', 'http://www.example.com/images/third-product.jpg')
->addISBN('123-456-7890')
->addPageUrl('http://www.example.co.uk/third-product', 'en_UK')
->addCustomAttribute('PRODUCT_FAMILY', 'example_products');
$feedElement->addProducts($moreProducts);
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
// ...
$categoryElement = $productFeed->newCategory('my_category', 'My Category', 'http://www.example.com/my-product');
$feedElement->addCategory($categoryElement);
$moreCategories = [];
$secondCategory = $productFeed->newCategory('second_category', 'Second Category', 'http://www.example.com/second-category')
->setImageUrl('http://www.example.com/images/second-category.jpg')
->addImageUrl('http://www.example.co.uk/images/uk-second-category.jpg', 'en_UK')
->setParentId('parent_category_id');
$moreCategories[] = $secondCategory;
$feedElement->addCategories($moreCategories);
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
// ...
$brandElement = $productFeed->newBrand('my_brand', 'My Brand');
$feedElement->addBrand($brandElement);
$moreBrands = [];
$secondBrand = $productFeed->newBrand('second_brand', 'Second Brand')
->addName('Duo Brand', 'es_SP')
->addName('Brand the Second', 'en_UK');
$moreBrands[] = $secondBrand;
$moreBrands[] = $productFeed->newBrand('third_brand', 'Third Brand');
$feedElement->addBrands($moreBrands);
$orderFeed = new \BazaarVoice\Interaction\Feed();
$feedElement = $orderFeed->newFeed('Order feed');
$orderProducts = [
[
'id' => 'productId123',
'name' => 'Product name',
'category' => 'Product Category',
'url' => 'http://product-url',
'imageUrl' => 'http://image-url',
'price' => 29,
],
];
$order = $feed->newInteraction('22/03/1987', '[email protected]', 'John Doe', 'userId123', 'pt_BR', $orderProducts);
$feedElement->addInteraction($orderFeed);
// $orderFeed->printFeed();
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
// ... add products, brands & categories ...
print $productFeed->printFeed($feedElement);
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
// ... add products, brands & categories ...
$productFeed->saveFeed($feedElement, 'path/to/dir', 'my_feed_XYZ');
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
// ... add products, brands & categories ...
if ($feedFile = $productFeed->saveFeed($feedElement, 'path/to/dir', 'my_feed_XYZ') {
try {
$productFeed->sendFeed($feedFile, $sftpUsername, $sftpPassword);
} catch (\Exception $e) {
// Failed to FTP feed file.
}
}
$productFeed = new \BazaarVoice\Product\Feed();
$feedElement = $productFeed->newFeed('my_feed');
// ... add products, brands & categories ...
if ($feedFile = $productFeed->saveFeed($feedElement, 'path/to/dir', 'my_feed_XYZ') {
try {
$productFeed->useStage()->sendFeed($feedFile, $sftpUsername, $sftpPassword);
} catch (\Exception $e) {
// Failed to FTP feed file.
}
}
$ composer test
The MIT License (MIT). Please see License File for more information.