2017-09-21 5 views
0

quelqu'un peut-il me diriger vers une documentation sur la façon de créer un flux XML personnalisé dans PrestaShop 1.6+. J'ai cherché dans la documentation officielle mais je n'ai pas trouvé ce dont j'avais besoin.Créer un flux d'exportation XML dans PrestaShop

La tâche est simple: créez un flux XML personnalisé à partir duquel un autre e-shop peut prendre les produits.

Merci pour votre aide.

Répondre

1

Vous pouvez obtenir la liste des produits en utilisant getProducts() puis utiliser SimpleXMLElement pour générer du XML.

include('config/config.inc.php'); 
include('init.php'); 
$productObj = new Product(); 
$products = $productObj -> getProducts($id_lang, 0, 0, 'id_product', 'DESC'); 

$xml = new SimpleXMLElement('<xml/>'); 
foreach($products as $product) { 
$productXml = $xml->addChild('product'); 
$productXml->addChild('id', $product->id); 
$productXml->addChild('name', $product->name); 
$productXml->addChild('description', $product->description); 
} 
Header('Content-type: text/xml'); 
print($xml->asXML()); 

sortie sera ..

<xml> 
    <product> 
     <id>ID</id> 
     <name>NAME</name> 
     <description>DESCRIPTION</description> 
    </product> 
    <product> 
     <id>ID</id> 
     <name>NAME</name> 
     <description>DESCRIPTION</description> 
    </product> 
    ... 
    ... 
    ... 
</xml> 

voir fonction Description getProducts() dans les classes/product.php de connaître les paramètres.

/** 
* Get all available products 
* 
* @param integer $id_lang Language id 
* @param integer $start Start number 
* @param integer $limit Number of products to return 
* @param string $order_by Field for ordering 
* @param string $order_way Way for ordering (ASC or DESC) 
* @return array Products details 
*/ 
public static function getProducts($id_lang, $start, $limit, $order_by, $order_way, $id_category = false, 
    $only_active = false, Context $context = null) {...} 

Vous pouvez placer le fichier xml.php avec dans votre répertoire racine prestashop et peut accéder à ce xml en vous rendant ou l'envoi à la demande yourdomain.com/xml.php.

Ou si vous voulez créer votre module pour xml alors vous devez placer le code dans votre contrôleur frontal et ensuite vous pouvez accéder au fichier xml en visitant yourdomain.com/index.php?fc=module&module=<ModuleName>&controller=<XMLFunction>. Lire Prestashop Documentation pour en savoir plus sur la structure du module prestashop.

+0

Salut, merci beaucoup pour la réponse, mais il me manque autre chose - comment créer dans l'adresse de point de terminaison de module où sera disponible XML? Par exemple. une URL avec mon XML existera. –

+1

Réponse mise à jour. – Sama

+0

Merci beaucoup, vous avez sauvé ma journée :) –