Jump to content

Edit History

Eolia

Eolia

Euh... on est dans Prestashop là, donc on ne va pas réinventer la roue.

Vous avez besoin de ces informations:

Num_pharma : Identifiant unique de pharmacie fournis par Winpharma (nombre entier de 10 chiffres maximum). Date : Date du jour. Date_vente : Date de la vente (date requise.) Numero_vente : Numéro unique de la vente dans la solution externe (nombre entier requis). Client_id : Identifiant unique du client dans la solution externe (nombre entier requis). Nom : Nom du client (chaine alphanumérique requise). Prenom : Prénom du client (chaine alphanumérique requise). Datenaissance : Date de naissance (date requise). Rue1 : Adresse de facturation (chaine alphanumérique requise). Rue2 : Complément d’adresse (chaine alphanumérique requise). Codepostal : Code postal (nombre entier requis). Ville : Ville (chaine alphanumérique requise). Pays : Pays (chaine alphanumérique requise). Tel : Téléphone fixe (nombre entier requis). Portable : Téléphone mobile. Email : Adresse e-mail (chaine alphanumérique requise). Codeproduit : Code barre du produit CIP13, ACL13, GTIN (nombre entier 13 chiffres requis). Designation_produit : Libellé du produit. Quantite : Quantité facturée (nombre entier requis). Prix_brut : Prix TTC sans remise (valeur décimale requise). Remise : Pourcentage de remise (valeur décimale requise, 0 si pas de remise). Prix_net : Prix TTC avec remise (valeur décimale requise). Tauxtva : Taux de TVA (valeur décimale requise).

Ce qui donne: date du jour, date_add date de la vente, id_order de la vente, id_customer id du client, laststname nom du client, firstname prénom du client, birthday date de naissance, adresse de livraison complète, détail produit complet

il faut donc croiser les tables ps_orders, ps_order_detail, ps_customer, ps_address, ps_order_detail_tax et ps_tax

 

Eolia

Eolia

Euh... on est dans Prestashop là, donc on ne va pas réinventer la roue.

Vous avez besoin de ces informations:

Num_pharma : Identifiant unique de pharmacie fournis par Winpharma (nombre entier de 10 chiffres maximum). Date : Date du jour. Date_vente : Date de la vente (date requise.) Numero_vente : Numéro unique de la vente dans la solution externe (nombre entier requis). Client_id : Identifiant unique du client dans la solution externe (nombre entier requis). Nom : Nom du client (chaine alphanumérique requise). Prenom : Prénom du client (chaine alphanumérique requise). Datenaissance : Date de naissance (date requise). Rue1 : Adresse de facturation (chaine alphanumérique requise). Rue2 : Complément d’adresse (chaine alphanumérique requise). Codepostal : Code postal (nombre entier requis). Ville : Ville (chaine alphanumérique requise). Pays : Pays (chaine alphanumérique requise). Tel : Téléphone fixe (nombre entier requis). Portable : Téléphone mobile. Email : Adresse e-mail (chaine alphanumérique requise). Codeproduit : Code barre du produit CIP13, ACL13, GTIN (nombre entier 13 chiffres requis). Designation_produit : Libellé du produit. Quantite : Quantité facturée (nombre entier requis). Prix_brut : Prix TTC sans remise (valeur décimale requise). Remise : Pourcentage de remise (valeur décimale requise, 0 si pas de remise). Prix_net : Prix TTC avec remise (valeur décimale requise). Tauxtva : Taux de TVA (valeur décimale requise).

Ce qui donne: date du jour, date_add date de la vente, id_order de la vente, id_customer id du client, laststname nom du client, firstname prénom du client, birthday date de naissance, adresse de livraison complète, détail produit complet

il faut donc croiser les tables ps_orders, ps_order_detail, ps_customer, ps_address, ps_order_detail_tax et ps_tax

donc dans votre fichier à la racine de votre site, votre code va ressembler à ça (ATTENTION, je n'ai mis aucune sécurité d'accès ou autres)

<?php

require_once(dirname(__FILE__) . '/config/config.inc.php');

$orders = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
            SELECT
                o.id_order as `Numero_vente`,
                od.`product_name` as `Designation_produit`,
                od.`product_reference` as `Référence`,
                od.`product_quantity` as `Quantité`,
                od.`product_ean13` as `Codeproduit`,
                ROUND(od.`original_product_price` + (od.`original_product_price` * t.`rate` / 100), 2)  as `Prix_brut`,
                ROUND(((od.`original_product_price` - od.`unit_price_tax_excl`)/od.`original_product_price`) * 100, 2) as `Remise`,
                ROUND(od.`unit_price_tax_incl`, 2) as `Prix_net`,
                t.`rate` as `Tauxtva`,
                o.`date_add` as `Date_vente`,
                c.`id_customer`as `Client_id`,    
                c.`firstname` as `Prenom`,
                c.`lastname` as `Nom`,
                c.`birthday`as `Datenaissance`,
                a.`address1`as `Rue1`,
                a.`address2`as `Rue2`,
                a.`postcode`as `Codepostal`,
                cl.`name`as `Pays`,
                a.`city`as `Ville`,
                a.`phone`as `Tel`,
                a.`phone_mobile`as `Portable`,
                c.`email`as `Email`,    
                osl.`name` as `Statut`    
            FROM ps_orders o
            INNER JOIN `ps_order_detail` od ON (o.`id_order` = od.`id_order`)
            LEFT JOIN `ps_order_detail_tax` odt ON (odt.`id_order_detail` = od.`id_order_detail`)
            LEFT JOIN `ps_tax` t ON (odt.`id_tax` = t.`id_tax`)
            INNER JOIN `ps_customer` c ON (c.`id_customer` = o.`id_customer`)
            INNER JOIN `ps_address` a ON (a.id_address = o.id_address_delivery)
            INNER JOIN `ps_country` co ON (a.id_country = co.id_country)
            INNER JOIN `ps_country_lang` cl ON (cl.`id_country` = co.`id_country` AND cl.`id_lang` = 1)
            INNER JOIN `ps_order_state` os ON (os.`id_order_state` = o.`current_state`)
            INNER JOIN `ps_order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = 1)
            WHERE o.`date_add` BETWEEN "2022-12-01" AND "2022-12-31"
            ORDER BY o.id_order DESC
        ');
$filePath = 'orders.xml';
$dom = new DOMDocument('1.0', 'utf-8'); 
$root = $dom->createElement('beldemande'); 
$root->setAttribute('date', date('Y-m-d')); 
$root->setAttribute('version', 1.1);  
$root->setAttribute('type', 'SUCCESS');
$infact = $dom->createElement('infact'); 
$root->appendChild($infact);          
foreach($orders as $order) {
    ... votre code pour générer le xml
}

 

×
×
  • Create New...