Datafeed Magento voor Cleafs
Opzoek naar een Magento datafeed voor Cleafs? Hieronder de .php code die je kunt gebruiken om een Magento datafeed te maken voor het affiliate-netwerk Cleafs.
Zet de code in een PHP bestand en upload deze naar je server. Ga daarna via je browser naar de locatie van het bestand en je krijgt een keurg .xml bestand die geschikt is voor Cleafs.
De code is geschikt voor Magento 1.4.2 maar zal wellicht ook werken voor Magento 1.5 en hoger. Heb je de Cleafs datafeed werkend in Magento 1.5 laat hieronder even een reactie achter
.
Je zult waarschijnlijk nog wel wat aanpassingen moeten maken om het voor je eigen Magento webwinkel geschikt te maken.
Let op: Er is een nieuwe Magento Feed Export voor Cleafs uit!
< ?php
require_once '../app/Mage.php';
Mage::app('default');
/** Correct working function to get the product's sizes **/
function productGetSizesString($product) {
$childIds = Mage::getModel('catalog/product_type_configurable')->getChildrenIds($product->getId());
$sizes = array();
foreach($childIds[0] as $childId) {
$childProduct = Mage::getModel('catalog/product')->load($childId);
$sizes[] = $childProduct->getResource()->getAttribute('maat')->getFrontend()->getValue($childProduct);
}
return implode(';',$sizes);
}
/** Get product media images **/
function productGetImages($product) {
var_dump($product->getMediaGalleryImages());
}
$scriptName = $_SERVER["SCRIPT_NAME"];
try{
//---------------------- GET THE PRODUCTS
$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('status', 1);//enabled
$products->addAttributeToFilter('visibility', 4);//catalog, search
$products->addAttributeToSelect('*');
$prodIds=$products->getAllIds();
$product = Mage::getModel('catalog/product');
$xml = new DOMDocument('1.0','UTF-8');
$root = $xml->createElement('productFeed');
$xml->appendChild($root);
//products can be iterated
foreach($prodIds as $productId) {
$product->load($productId);
$productXML = $xml->createElement('product');
$productXML->setAttribute('id', $product->getSku());
$appends = array();
$appends[] = $xml->createElement('name', htmlspecialchars($product->getName(), ENT_COMPAT, 'UTF-8'));
$appends[] = $xml->createElement('price', number_format ($product->getPrice(), 2, '.', ''));
$appends[] = $xml->createElement('description', htmlspecialchars($product->getShort_description(), ENT_COMPAT, 'UTF-8'));
$appends[] = $xml->createElement('productURL', str_replace($scriptName, '', 'http://www.eerlijkewereld.nl/' .$product->getUrlPath()));
$appends[] = $xml->createElement('imageURL', Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage());
$additional = $xml->createElement('additional');
$additional->appendChild ( $xml->createElement('deliveryCost', htmlspecialchars('5.95',ENT_COMPAT, 'UTF-8')) );
$additional->appendChild ( $xml->createElement('deliveryTime', htmlspecialchars('24 uur', ENT_COMPAT, 'UTF-8')) );
$imageProduct = Mage::getModel('catalog/product')->load($productId);
$imagesIterator = $imageProduct->getMediaGalleryImages()->getIterator();
$index = 1;
while( $imagesIterator->valid() ) {
$additional->appendChild ( $xml->createElement('imageURL'.$index, $imagesIterator->current()->getUrl()) );
$imagesIterator->next();
$index++;
}
if ($product->getResource()->getAttribute('merk'))
$additional->appendChild ( $xml->createElement('brand', htmlspecialchars( $product->getResource()->getAttribute('merk')->getFrontend()->getValue($product) , ENT_COMPAT, 'UTF-8' )) );
if ($product->getResource()->getAttribute('categorie1'))
$additional->appendChild ( $xml->createElement('category', htmlspecialchars( $product->getResource()->getAttribute('categorie1')->getFrontend()->getValue($product) , ENT_COMPAT, 'UTF-8' )) );
if ($product->getResource()->getAttribute('categorie2'))
$additional->appendChild ( $xml->createElement('category-extra-1', htmlspecialchars( $product->getResource()->getAttribute('categorie2')->getFrontend()->getValue($product) , ENT_COMPAT, 'UTF-8' )) );
$appends[] = $additional;
foreach ($appends as $a) $productXML->appendChild( $a );
$root->appendChild($productXML);
}
header ("content-type: text/xml; charset=utf-8");
print $xml->saveXML();
}
catch(Exception $e){
die($e->getMessage());
}
?>
Lees ook:
- Magento Feed Export voor Beslist, Vergelijk en Cleafs
- Cleafs
- Handleiding Magento Installeren voor je Webwinkel
- Magento extensies voor je webwinkel
- MailChimp Nieuwsbrief Plug-in voor Magento
