Jump to content

Quantité, prix et délais mis à jour sur une requête xml ....


stephan

Recommended Posts

Bonjour,

Je travail avec un fournisseur capable de me fournir un lien xml qui me permettrai d'afficher dynamiquement un quantitatif, un prix et un delai selon la référence recherchée ....

N'y aurai-t-il pas une solution toute prête pour ce genre de traitement ???

L'espoir fait vivre ;)

Cordialement.

Link to comment
Share on other sites

Bon, je vais encore avancer seul .... (Une fois n'est pas coutume ... mais presque'une habitude)

Je vais tenter de faire le truc sous forme du tutoriel, comme ça, ça servira aux autres ;)
Tout ceci sera à adapter selon votre fournisseur !!!

1 - Lecture des données depuis mon fournisseur. (en php)

J'ai fais le choix de partir en full php, certains navigateurs ne sont pas compatible javascript, donc htmlrequest devient difficilement exploitable.
Voici la syntaxe d'appel pour savoir l'état de mes références, à adapter bien entendu :D

$donnees ='<?xml version="1.0" encoding="ISO-8859-1" ?>

REF1
REF2
REF3

';



Voici le code pour appeler le site

function httpsPost($Url, $strRequest)
{
// Initialisation
$ch=curl_init();
// Set parameters
curl_setopt($ch, CURLOPT_URL, $Url);
// Return a variable instead of posting it directly
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Active the POST method
curl_setopt($ch, CURLOPT_POST, 1) ;
// Request
curl_setopt($ch, CURLOPT_POSTFIELDS, $strRequest);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// execute the connexion
$result = curl_exec($ch);
// Close it
curl_close($ch);
return $result;
} 
$url = 'https://sitexmlrequest.fr';
$Response = httpsPost($url, $donnees);
echo $Response;



Avec firebug, on obtient le résultat XML :

<?xml version="1.0"?>


1
280



100
16832




Prochaine étape, on décortique le XML et on initialise des variables !

Link to comment
Share on other sites

Première version du code qui permet d'extraire les datas du XML.

$xml = new SimpleXMLElement($Response);
foreach ($xml->Item as $item) {
 echo $item['Text'], ' (Commentaire)
';
 echo $item['ItemNo'], ' (Reference)
';
 echo $item['Status'], ' (Status)
';
 echo $item['delai'], ' (Delai)
';
 echo $item->Stock, ' (Stock)
';
 echo $item->Price, ' (Prix)
';
}

Link to comment
Share on other sites

2 - Coté Back Office

Oui, là ça se complique, quelle est la meilleur solution à adoptée ?
Je pense qu'il vaille mieu faire bien du premier coup, ou du moins s'en rapproche le plus possible ...

Je vais modifier les données liées au fournisseurs, parce que c'est bien d'eux que l'on parle !
Je vais rajouter deux champs:
- xml_url (pour donner le lien d'accès)
- xml_req (Sequence d'appel XML)

Restera à déterminer un mode opératoire pour dire si cette référence doit oui ou non consulter le XML
pour ce, je vais aussi modifier les champs liés aux articles, J'avais penser à une case à cocher pour dire si cette référence doit consulter le fichier fournisseur, mais pour l'instant on se servira du champs référence fournisseur en rouge !

Modification de la structure :

ALTER TABLE `ps_supplier` ADD `xml_url` VARCHAR( 256 ) NOT NULL AFTER `name` ,
ADD `xml_req` VARCHAR( 256 ) NOT NULL AFTER `xml_url`



ALTER TABLE `ps_product` ADD `xml_price` DECIMAL( 13, 6 ) NOT NULL AFTER `price` DEFAULT '0'



Voir les images avant et après.

18920_8KNGSZDmpxSGYZzQTcLH_t

18921_L3BnfAkZjNWA6WSmjLJz_t

18934_FP1Vfcc9Es6Uw0whflft_t

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...