Jump to content

Webservice mise à jour produits et envois de commande vers un logiciel tiers


Zorse

Recommended Posts

Bonjour à tous .

J'aimerais comprendre comment créer une passerelle Webservice pour mettre a jour mes produits dans prestashop depuis un logiciel tiers et exporter mes commandes de prestashop vers le logiciel tiers.

Un webservice est fournie par l'editeur du logiciel tiers .

Mais je suis un peu perdu dans tout ça !!

Merci de vos retours je vous joint la doc du logiciel tiers 

WinPasserelle_documentation_technique.pdf

Edited by Zorse (see edit history)
Link to comment
Share on other sites

Il faut écrire une passerelle en php à la racine de votre site et l'appeler toutes les heures par tâche cron.

Quand celle-ci est appelée, elle liste les commandes et les envoie au webservice (en utilisant Curl et au format XML) suivant le formatage demandé dans le PDF

Link to comment
Share on other sites

Il y a plein de tutos pour créer des XML

Celui-ci par exemple: https://gilles-hunault.leria-info.univ-angers.fr/internet/L2Xml/xmlphp.php

Commencez par faire une requete vers la base de données (vous aurez un tableau avec les commandes) et ensuite une boucle foreach remplira le xml.

Une fois celui-ci terminé vous l'envoyez en Curl vers votre prestataire.

  • Thanks 1
Link to comment
Share on other sites

Bonjour eolia , j'ai un peu du mal a comprendre , j'essaye de suivre le tutoriel de prestashop ainsi que de chercher des exemple de script mais j'ai toujours du mal a comprendre...

j'arrive bien a afficher les ressources via webservice , jusque la javais une erreur " undefined index " qui est reparée , j'arrive maintenant a afficher les ressources (exemple orders)

2072816874_-GoogleChrome.thumb.jpg.9abb45adaff162e36531af7c42d598fd.jpg

 

Mais pour la suite j'ai toujours rien compris 
J'ai bien compris qui fallais appeler le webservice , recupérer le xml et le poster sur l'url du logiciel tiers avec Curl .

Donc on enchaine 3 fontions ? c'est ça ? 

La premiere étape serai d'arriver à afficher le xml via le fihchier php ? c'est bien ça ?

Merci 

Edited by Zorse (see edit history)
Link to comment
Share on other sites

le webservice de Presta vous a renvoyé la liste des commandes.

Il faut que le script php lise ce fichier en bouclant sur chaque ligne et qu'il rappelle le webservice sur chaque url, ce qui vous donnera le détail de chaque commande.

Il faut ensuite renvoyer tout ça à votre prestataire.

 

Mais à mon avis il est plus simple de faire une requete en base de donnée avec les infos demandées, de construire le fichier xml et de l'envoyer.

Link to comment
Share on other sites

J'arrive a me connecter a la base de données masi je n'arrive pas a récupérer les infos demandées , quel serait la requete ?

 

J'obtiens bien les numéro de commande , mais n'arrives pas à afficher ,nom , prénom etc 

 

 

Quote

<?php
$servername = "localhost";
$username = "XXXXXX.com";
$password = "XXXXXXX";
$dbname = "XXXXXX";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "select * from pss_orders";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id_order"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}

mysqli_close($conn);
?>

 

Edited by Zorse (see edit history)
Link to comment
Share on other sites

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

 

Edited by Eolia (see edit history)
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...