Venez baraguiner avec la communauté !
Vous n'êtes pas identifié.
bonjour les fermiers!
je suis à la recherche d'un script ou autre qui me permette de pouvoir exporter certaines informations de ma base de données de boutique en ligne afin de pouvoir disposer d'un fichier xml pour les différents comparateurs de prix du marché.
je souhaite grosso modo optenir un fichier xml de la sorte:
<?xml version="1.0" encoding="UTF-8"?> <product> <category>03- Enceintes</category> <brand>Audes</brand> <product_name>Audes Blue (la paire)</product_name> <price>2582.55</price> <product_url>http://www.hautefidelite-promo.com/product.php?id_product=10</product_url> <image_url>http://www.hautefidelite-promo.com/img/p/10-50.jpg</image_url> <description>Lenceinte colonne Blue de Audès réuni dans une même enceinte une très bonne enceinte compacte et ...</description> <shipping_cost>40</shipping_cost> <product_id>4567</product_id> </product>
Hors ligne
Bonjour,
je ne suis pas un gros connaisseur mais j'avais réalisé un script qui permettait de modifier un fichier XML.
Pour mon cas le fichier XML existait déja donc je n'avais pas besoin de le créer, je l'ouvrais juste pour faire des modifications.
Dans ton cas ça devrait donner ça:
$monfichier = fopen('test.xml', 'w+');//ouverture du fichier si il n'existe pas il est créer (normalement)
fseek($monfichier, 0); // On met le curseur au début du fichier
fputs($monfichier, '<?xml version="1.0" encoding="UTF-8"?>'."\n");//on ecrit la premiere ligne
$reponse = mysql_query("SELECT * FROM produits ORDER BY id ASC");//requete qui recupere toutes les infos sur les produits
while ($donnees = mysql_fetch_array($reponse) )//on boucle pour recuperer toutes les infos produit par produit
{
fputs($monfichier, '<product>'."\n");// on ecrit chaque ligne en recuperant la donnee le concernant
fputs($monfichier, '<category>'.$donnees["category"].' </category>'."\n");
fputs($monfichier, '<brand>'.$donnees["brand"].' </brand>'."\n");
fputs($monfichier, '<product_name>'.$donnees["product_name"].' </product_name>'."\n");
fputs($monfichier, '<price>'.$donnees["price"].' </price>'."\n");
fputs($monfichier, '<product_url>'.$donnees["product_url"].' </product_url>'."\n");
fputs($monfichier, '<image_url>'.$donnees["image_url"].' </image_url>'."\n");
fputs($monfichier, '<description>'.$donnees["description"].' </description>'."\n");
fputs($monfichier, '<shipping_cost>'.$donnees["shipping_cost"].' </shipping_cost>'."\n");
fputs($monfichier, '<product_id>'.$donnees["product_id"].' </product_id>'."\n");
fputs($monfichier, '</product>'."\n");
}
fclose($monfichier);//on ferme le fichierBien sur à ajuster selon le nom de ta table et de tes champs dans ta BDD.
Dernière modification par anarta (14/06/2009 18:08:32)
Hors ligne
a vrai dire je pige pas grand chose et je n'arrive pas vraiment à faire fonctionner le schmilblik!
sinon voici pour info le fichier php qui crée un fichier xml destiné au site leguide.com:
<?php
class psf_LeGuide extends Module {
function __construct() {
$this->name = 'psf_leguide';
$this->tab = 'Exportations';
$this->version = 1.0;
parent::__construct(); // The parent construct is required for translations
$this->page = basename(__FILE__, '.php');
$this->displayName = '[<font color="blue">P</font><font color="#F4C6C9">S</font><font color="red">F</font>] '.$this->l('LeGuide');
$this->description = $this->l('Exportation du catalogue pour LeGuide.com');
}
function install() {
$temp = new Category();
$langs = Language::getLanguages(false);
foreach ($langs as $lang) {
$temp->name[ $lang['id_lang'] ] = 'PSF LeGuide';
$temp->link_rewrite[ $lang['id_lang'] ] = 'PSF_LeGuide';
}
$temp->id_parent = 1;
$temp->active = 0;
if (!$temp->save())
return false;
Configuration::updateValue('PSF_LEGUIDE_CATID', $temp->id);
if (!parent::install())
return false;
return true;
}
public function getContent() {
$output = '<h2 align="center">'.$this->displayName.'</h2>';
if (Tools::isSubmit('submitPSFLEGUIDEGENERATE')) {
$output .= $this->createXML();
}
return $output.$this->displayForm();
}
public function displayForm() {
global $cookie;
$select_lang = '';
$langs = Language::getLanguages();
foreach ($langs as $lang)
$select_lang .= '<option value="'.strtoupper($lang['iso_code']).'">'.$lang['name'].'</option>';
$select_currency = '';
$currencies = Currency::getCurrencies();
foreach ($currencies as $currency)
$select_currency .= '<option value="'.strtoupper($currency['iso_code']).'">'.$currency['name'].'</option>';
$output = '
<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
<fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Configuration').'</legend>
<label>'.$this->l('Langue').'</label>
<div class="margin-form">
<select name="LANG">
'.$select_lang.'
</select>
</div>
<label>'.$this->l('Devise').'</label>
<div class="margin-form">
<select name="CURRENCY">
'.$select_currency.'
</select>
</div>
<label>'.$this->l('Disponibilité').'</label>
<div class="margin-form">
<input type="radio" name="DISPO_choix" value="dispo" onclick="$(\'#DISPO\').attr(\'disabled\', false); $(\'#DISPO_TEMPS\').attr(\'disabled\', false); $(\'#DISPO_ENTRE_1\').attr(\'disabled\', true); $(\'#DISPO_ENTRE_2\').attr(\'disabled\', true); $(\'#DISPO_ENTRE_TEMPS\').attr(\'disabled\', true); $(\'#DISPO\').focus();" />
<input type="text" id="DISPO" name="DISPO" disabled="disabled" style="text-align: right; width: 20px;" /> <select name="DISPO_TEMPS" id="DISPO_TEMPS" disabled="disabled"><option value="heure">heure</option><option value="heures">heures</option><option value="jour">jour</option><option value="jours">jours</option><option value="semaine">semaine</option><option value="semaines">semaines</option><option value="mois">mois</option></select>
<br />
<input type="radio" name="DISPO_choix" value="entre" onclick="$(\'#DISPO_ENTRE_1\').attr(\'disabled\', false); $(\'#DISPO_ENTRE_2\').attr(\'disabled\', false); $(\'#DISPO_ENTRE_TEMPS\').attr(\'disabled\', false); $(\'#DISPO\').attr(\'disabled\', true); $(\'#DISPO_TEMPS\').attr(\'disabled\', true); $(\'#DISPO_ENTRE_1\').focus();" />
entre <input type="text" id="DISPO_ENTRE_1" name="DISPO_ENTRE_1" disabled="disabled" style="text-align: right; width: 20px;" /> et <input type="text" id="DISPO_ENTRE_2" name="DISPO_ENTRE_2" disabled="disabled" style="text-align: right; width: 20px;" /> <select name="DISPO_ENTRE_TEMPS" id="DISPO_ENTRE_TEMPS" disabled="disabled"><option value="heure">heure</option><option value="heures">heures</option><option value="jour">jour</option><option value="jours">jours</option><option value="semaine">semaine</option><option value="semaines">semaines</option><option value="mois">mois</option></select>
</div>
<label>'.$this->l('Délai de livraison').'</label>
<div class="margin-form">
<input type="radio" name="DELAI_choix" value="delai" onclick="$(\'#DELAI\').attr(\'disabled\', false); $(\'#DELAI_TEMPS\').attr(\'disabled\', false); $(\'#DELAI_ENTRE_1\').attr(\'disabled\', true); $(\'#DELAI_ENTRE_2\').attr(\'disabled\', true); $(\'#DELAI_ENTRE_TEMPS\').attr(\'disabled\', true); $(\'#DELAI\').focus();" />
<input type="text" id="DELAI" name="DELAI" disabled="disabled" style="text-align: right; width: 20px;" /> <select name="DELAI_TEMPS" id="DELAI_TEMPS" disabled="disabled"><option value="heure">heure</option><option value="heures">heures</option><option value="jour">jour</option><option value="jours">jours</option><option value="semaine">semaine</option><option value="semaines">semaines</option><option value="mois">mois</option></select>
<br />
<input type="radio" name="DELAI_choix" value="entre" onclick="$(\'#DELAI_ENTRE_1\').attr(\'disabled\', false); $(\'#DISPO_ENTRE_2\').attr(\'disabled\', false); $(\'#DELAI_ENTRE_TEMPS\').attr(\'disabled\', false); $(\'#DELAI\').attr(\'disabled\', true); $(\'#DELAI_TEMPS\').attr(\'disabled\', true); $(\'#DELAI_ENTRE_1\').focus();" />
entre <input type="text" id="DELAI_ENTRE_1" name="DELAI_ENTRE_1" disabled="disabled" style="text-align: right; width: 20px;" /> et <input type="text" id="DELAI_ENTRE_2" name="DELAI_ENTRE_2" disabled="disabled" style="text-align: right; width: 20px;" /> <select name="DELAI_ENTRE_TEMPS" id="DELAI_ENTRE_TEMPS" disabled="disabled"><option value="heure">heure</option><option value="heures">heures</option><option value="jour">jour</option><option value="jours">jours</option><option value="semaine">semaine</option><option value="semaines">semaines</option><option value="mois">mois</option></select>
</div>
<label>'.$this->l('Garantie').'</label>
<div class="margin-form">
<input type="text" id="GARANTIE" name="GARANTIE" style="text-align: right; width: 20px;" /> <select name="GARANTIE_TEMPS" id="GARANTIE_TEMPS"><option value="mois">mois</option><option value="an">an</option><option value="ans">ans</option><option value="année">année</option><option value="années">années</option></select>
</div>
<label>'.$this->l('Frais').'</label>
<div class="margin-form">
<input type="text" id="TRANSPORT" name="TRANSPORT" style="text-align: right; width: 20px;" />
<p class="clear">
Dans ce champ, doit être indiqué la somme TTC en euros de tous les frais liés à la commande : frais de port, de traitement, de préparation, etc. Préférez la virgule comme séparateur de décimales.
</p>
</div>
<label>'.$this->l('Etat').'</label>
<div class="margin-form">
<input type="radio" name="ETAT" value="0" /> Neuf
<br />
<input type="radio" name="ETAT" value="1" /> Occasion
</div>
<center><input type="submit" name="submitPSFLEGUIDEGENERATE" value="'.$this->l('Générer le fichier XML').'" class="button" /></center>
</fieldset>
</form>';
return $output;
}
private function createXML($produits = '') {
$LANG = Tools::getValue('LANG', 'FR');
$CURRENCY = Tools::getValue('CURRENCY', 'EUR');
if (Tools::getValue('DISPO_choix', 'dispo') == 'dispo')
$DISPO = Tools::getValue('DISPO', '48').' '.Tools::getValue('DISPO_TEMPS', 'heures');
else
$DISPO = Tools::getValue('DISPO_ENTRE_1', 48).'-'.Tools::getValue('DISPO_ENTRE_2', '72').' '.Tools::getValue('DISPO_ENTRE_TEMPS', 'heures');
if (Tools::getValue('DELAI_choix', 'dispo') == 'delai')
$DELAI = Tools::getValue('DELAI', '48').' '.Tools::getValue('DELAI_TEMPS', 'heures');
else
$DELAI = Tools::getValue('DELAI_ENTRE_1', 48).'-'.Tools::getValue('DELAI_ENTRE_2', '72').' '.Tools::getValue('DELAI_TEMPS', 'heures');
$GARANTIE = Tools::getValue('GARANTIE', 2).' '.Tools::getValue('GARANTIE_TEMPS', 'ans');
$FRAIS = Tools::getValue('TRANSPORT', 0);
$ETAT = Tools::getValue('ETAT', 0);
$i = 1;
$id_lang = Language::getIdByIso(strtolower($LANG));
if ($produits == '')
$produits = Product::getProducts($id_lang, 0, 0, 'id_product', 'ASC', Configuration::get('PSF_LEGUIDE_CATID'));
if (!is_array($produits) || count($produits) == 0)
return '<center>'.$this->displayError( $this->l('Il n\'y a pas de produits dans la catégorie "PSF LeGuide"') ).'</center>';
// Creation du XML
$doc = new DOMDocument('1.0', 'ISO-8859-1');
// Creation de l'arbre "catalogue"
$catalogue = $doc->createElement('catalogue');
// Attributs de "catalogue"
$catalogue->setAttribute('lang', utf8_encode($LANG));
$catalogue->setAttribute('date', date("Y-m-d H:i"));
$catalogue->setAttribute('GMT', str_replace('0', '', date('O')));
foreach ($produits as $prod) {
$prod = new Product($prod['id_product']);
$cat = new Category($prod->id_category_default);
// Creation du l'arbre "product"
$product = $doc->createElement('product');
// Attributs de "product"
$product->setAttribute('place', $i++);
$images = $prod->getImages($id_lang);
$url_image = '';
foreach ($images as $im)
if ($im['cover'] == 1)
$url_image = 'http://'.$_SERVER["HTTP_HOST"].'/img/p/'.$prod->id.'-'.$im['id_image'].'.jpg';
$row = $doc->createElement('categorie');
$row->appendChild( $doc->createCDATASection($cat->name[$id_lang]) );
$product->appendChild($row);
$row = $doc->createElement('identifiant_unique');
$row->appendChild( $doc->createCDATASection('PRODID_'.$prod->id) );
$product->appendChild($row);
$row = $doc->createElement('titre');
$row->appendChild( $doc->createCDATASection($prod->name[$id_lang]) );
$product->appendChild($row);
$prix = $doc->createElement('prix', $prod->getPrice($prod->id_tax, null, 2, null, false, true, 1));
$prix->setAttribute('currency', $CURRENCY);
$product->appendChild($prix);
$row = $doc->createElement('url_produit');
$row->appendChild( $doc->createCDATASection('http://'.$_SERVER["HTTP_HOST"].$prod->getLink()) );
$product->appendChild($row);
$row = $doc->createElement('url_image');
$row->appendChild( $doc->createCDATASection($url_image) );
$product->appendChild($row);
$row = $doc->createElement('description');
$row->appendChild( $doc->createCDATASection($prod->description_short[$id_lang]) );
$product->appendChild($row);
$product->appendChild( $doc->createElement('frais_de_livraison', $FRAIS) );
if ($prod->ecotax == 0)
$product->appendChild( $doc->createElement('D3E', 0) );
else
$product->appendChild( $doc->createElement('D3E', $prod->ecotax) );
$product->appendChild( $doc->createElement('disponibilite', $DISPO) );
$product->appendChild( $doc->createElement('delai_de_livraison', $DELAI) );
$row = $doc->createElement('marque');
$row->appendChild( $doc->createCDATASection($prod->manufacturer_name) );
$product->appendChild($row);
$product->appendChild( $doc->createElement('ean', $prod->ean13) );
$product->appendChild( $doc->createElement('garantie', $GARANTIE) );
/*
$prix_barre = $doc->createElement('prix_barre', '34,45');
$prix_barre->setAttribute('currency', $CURRENCY);
$product->appendChild($prix_barre);
*/
$row = $doc->createElement('reference_modele');
$row->appendChild( $doc->createCDATASection($prod->reference) );
$product->appendChild($row);
$product->appendChild( $doc->createElement('occasion', $ETAT) );
$product->appendChild( $doc->createElement('devise', $CURRENCY) );
$row = $doc->createElement('devise');
$row->appendChild( $doc->createCDATASection($prod->manufacturer_name) );
$product->appendChild($row);
$catalogue->appendChild($product);
}
$doc->appendChild($catalogue);
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'.$doc->saveXML();
if (!$doc->save(_PS_MODULE_DIR_.'psf_leguide/leguide.xml'))
return '<center>'.$this->displayError( $this->l('Erreur durant la génération du fichier XML') ).'</center>';
else
return '<center>'.$this->displayConfirmation( '<center>'.$this->l('Fichier correctement généré...').'<br /><a href="http://'.$_SERVER["HTTP_HOST"].__PS_BASE_URI__.'modules/psf_leguide/leguide.xml" target="_blank">http://'.$_SERVER["HTTP_HOST"].__PS_BASE_URI__.'modules/psf_leguide/leguide.xml</a>' .'</center>').'</center>';
}
}
?>seul bémol, avec ce dernier je n'arrive à exporter que 67 produits de ma boutique prestashop qui en contient près du double.
Hors ligne
Désolé je ne peut plus t'aider, ton code est trop compliqué pour moi. J'ai l'impression qu'il y a du javascript et du php mélangé. D'autres membres ont peut être une solution.
Hors ligne
Salut
Le bout de code de Anarta fait ce que tu veux, en gros il manque juste la connexion à la bdd en début de script et quelques modif pour adapter a tes données.
Hors ligne
Ouai mais nan, il utilise Prestashop, un CMS, du coup c'est de la POO, et il faut faire avec l'API de Prestashop et il me semble qu'il utilise un script fait pour Prestashop, du coup y'a peu de chance qu'on y comprenne quelquechose. Le mieux c'est que tu ailles sur le forum de PS 
Hors ligne
Rien ne l'empêche de créer un fichier php à la racine de son site et de l'exécuter indépendamment du CMS ?
Hors ligne
darkcristal a écrit:
Rien ne l'empêche de créer un fichier php à la racine de son site et de l'exécuter indépendamment du CMS ?
j'essayerai cet ap-midi de le faire fonctionner on verra bien
Hors ligne
sinon, quand c'est des scripts open sources, le plus rapide, c'est encore d'aller faire un tour sur leur forum, ils seront plus à même de répondre:
notamment: Export des articles.
C'est du CSV, mais la plupart des comparateurs acceptent aussi ce format, sinon, c'est facile de l'adapter aussi.
Hors ligne
Ouark a écrit:
sinon, quand c'est des scripts open sources, le plus rapide, c'est encore d'aller faire un tour sur leur forum, ils seront plus à même de répondre:
notamment: Export des articles.
C'est du CSV, mais la plupart des comparateurs acceptent aussi ce format, sinon, c'est facile de l'adapter aussi.
je l'ai installé mais fonctionne pas comme il faut
Hors ligne
bon fin de compte j'ai trouvé un peu mieux mais je lutte encore et toujours mais là vous allez peut-être pouvoir m'aider... je souhaiterai écrire dans un fichier csv ce que me renvoie une page php.
Voici le lien de la page: http://www.hautefidelite-promo.com/modu … export.php
Voici le code de la page:
<?php
class ShoppingDotCom extends Module
{
public $url;
public $filename;
private $_html;
function __construct()
{
$this->name = 'shoppingdotcom';
$this->tab = 'Exportation';
$this->version = '0.9';
parent::__construct();
$this->page = basename(__FILE__, '.php');
$this->displayName = $this->l('Exportation catalogue');
$this->description = $this->l('Exportation complète de la liste des produits');
$this->filename = 'catalogue.csv';
$this->url = 'http://' . htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8') . __PS_BASE_URI__ . 'modules/' . $this->name . '/export.php';
}
public function install()
{
if (!parent::install())
return false;
Configuration::updateValue('SHOPPINGDOTCOM_LANGUAGE', intval(Configuration::get('PS_LANG_DEFAULT')));
return true;
}
public function uninstall($w = false)
{
if (!parent::uninstall(false))
return false;
Configuration::deleteByName('SHOPPINGDOTCOM_LANGUAGE');
return true;
}
public function getContent()
{
$this->_html = '<h2><img src="' . __PS_BASE_URI__ . 'modules/' . $this->name . '/logo.gif" alt="" /> Comparateur de Prix</h2>';
$this->_html.= '<fieldset class="width3">
<legend>'.$this->l('Informations').'</legend>
<p>'.$this->l('URL du fichier').': <a href="'. $this->url .'" target="_blank">'. $this->url .'</a></p>
<p><a href="https://marchand.shopping.com/mac/app?service=page/AccountSummary" target="_blank">'. $this->l('Aller sur mon compte shopping.com') .'</a></p>
</fieldset>';
return $this->_html;
}
public function buildCSV()
{
$csv = '';
/* First line, columns */
$columns = array(
'Référence', //Référence
'CUP', //upc__ean
'Fabricant',
'Nom du produit',
'Description du produit',
'Prix',
'Prix barré',
'En solde',
'Stock', //disponibilite: oui ou non
'Description de la disponibilité',
'URL produit',
'URL image',
'Catégorie',
'Frais de port',
'Poids',
'Eco-taxe'
);
foreach ($columns AS $column)
$csv.= $column.'|';
$csv.= chr(13);
/* Setting parameters */
$parameters = Configuration::getMultiple(array('PS_REWRITING_SETTINGS', 'PS_LANG_DEFAULT', 'PS_SHIPPING_FREE_PRICE', 'PS_SHIPPING_HANDLING', 'PS_SHIPPING_METHOD', 'PS_SHIPPING_FREE_WEIGHT', 'PS_COUNTRY_DEFAULT'));
/* Language */
$language = new Language(intval($parameters['PS_LANG_DEFAULT']));
/* Link instance for products links */
$link = new Link();
/* Searching for products */
$sql = 'SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `active` = 1';
//$sql.= ' LIMIT 0,5';
$result = Db::getInstance()->ExecuteS($sql);
foreach ($result AS $k => $row)
{
$product = new Product(intval($row['id_product']));
if (Validate::isLoadedObject($product))
{
$line = array();
$line[] = $product->reference;
$line[] = $product->ean13;
$line[] = Manufacturer::getNameById($product->id_manufacturer);
$line[] = $product->name[intval($parameters['PS_LANG_DEFAULT'])];
$line[] = strip_tags($product->description_short[intval($parameters['PS_LANG_DEFAULT'])]);
$price = $product->getPrice();
$line[] = number_format($price - $product->ecotax, 2, ',', '');
$priceb = $product->getPriceWithoutReduct();
$line[] = number_format($priceb - $product->ecotax, 2, ',', '');
$line[] = $product->on_sale ? 'o' : 'n';
$line[] = $product->quantity ? 'o' : 'n';
$line[] = strip_tags( $product->availability[intval($parameters['PS_LANG_DEFAULT'])] );
$line[] = 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').$link->getProductLink(intval($product->id), $product->link_rewrite[intval($parameters['PS_LANG_DEFAULT'])], $product->ean13);
/* Product cover image */
$image = $product->getCover(intval($product->id));
if ($image['id_image'])
$imageObj = new Image(intval($image['id_image']));
$line[] = (isset($imageObj) AND Validate::isLoadedObject($imageObj)) ? 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8')._THEME_PROD_DIR_.intval($product->id).'-'.intval($imageObj->id).'-small.jpg' : 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8')._THEME_PROD_DIR_.$language->iso_code.'-default-small.jpg';
/* Product categories */
$categories = $product->getIndexedCategories(intval($product->id));
if ($categories)
{
foreach ($categories AS $k => $row)
{
$category = new Category(intval($row['id_category']));
$line[] = Category::hideCategoryPosition($category->name[intval($parameters['PS_LANG_DEFAULT'])]);
}
}
else
$line[] = 'N/A';
/* Delivery costs */
if ((isset($parameters['PS_SHIPPING_FREE_PRICE']) AND $price > floatval($parameters['PS_SHIPPING_FREE_PRICE']) AND floatval($parameters['PS_SHIPPING_FREE_PRICE']) > 0) OR
(isset($parameters['PS_SHIPPING_FREE_WEIGHT']) AND $product->weight > floatval($parameters['PS_SHIPPING_FREE_WEIGHT']) AND floatval($parameters['PS_SHIPPING_FREE_WEIGHT']) > 0))
$line[] = 0;
else
{
$delivery = 0;
if (isset($parameters['PS_SHIPPING_HANDLING']))
$delivery += intval($parameters['PS_SHIPPING_HANDLING']);
$carrier = new Carrier(intval($parameters['PS_CARRIER_DEFAULT']));
$defaultCountry = new Country(intval($parameters['PS_COUNTRY_DEFAULT']));
$id_zone = intval($defaultCountry->id_zone);
$delivery += intval($parameters['PS_SHIPPING_METHOD']) ? $carrier->getDeliveryPriceByWeight($product->weight, intval($id_zone)) :
$carrier->getDeliveryPriceByPrice($price, intval($id_zone));
$line[] = number_format($delivery, 2, ',', '');
}
$line[] = $product->weight;
$line[] = number_format($product->ecotax, 2, ',', '');
foreach ($line AS $column)
$csv.= $column.'|';
$csv.= chr(13);
}
}
echo $csv;
}
public function getCSV()
{
header('HTTP/1.0 200 OK');
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: post-check=0, pre-check=0', false );
header("Pragma: no-cache");
header('Content-Transfer-Encoding: binary');
header('Content-Type: text/plain; charset=utf-8');
$this->buildCSV();
}
}
?>Hors ligne