PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Lien entre prestashop et WINDEV
Lien entre prestashop et WINDEV
Débuté par Themiller, 21 nov. 2017 22:18 - 20 réponses
Posté le 21 novembre 2017 - 22:18
Bonjour à toutes et à tous !

Je suis un dev. web (PHP, java, HTML) qui débute sur Windev et qui aurait besoin d'un petit coup de pouce après avoir parcouru beaucoup de forums !

Nous avons un site web fonctionnant sur Prestashop et notre logiciel de compta/gestion de stocks actuel a été créé avec Windev. Par conséquent, j'aimerais créer un petit logiciel qui mettrait à jour le site et le stock lors de la création d'un produit ou lors d'une vente. Et éventuellement toutes les 5 minutes récupérer les nouvelles commandes sur Prestashop.

J'ai déjà bien manipulé la Base de données HFSQL du logiciel de compta et peut sans aucun problème, lire son contenu, traiter les données etc.

Par contre là où je bloque c'est dans l'envoi de requêtes HTTP au webservice de Prestashop... Pour l'envoi de requête DELETE ou GET pas de problème mais pour les POST (add) ou PUT (update) c'est plus compliqué, j'ai toujours une erreur de XML mal formé...

Quelle serait la façon la plus simple et la plus propre pour créer un XML reconnu par Prestashop à partir des produits de la base HFSQL et l'envoyer via requête HTTP ?

Merci d'avance pour votre aide !

Themiller.
Posté le 24 novembre 2017 - 14:03
UP !
Membre enregistré
950 messages
Popularité : +53 (63 votes)
Posté le 24 novembre 2017 - 20:15
Bonjour,

Si tu connais la structure du xml a envoyer, tu peux utiliser les structure et les fonction serialise/deserialise

jordan
Posté le 25 novembre 2017 - 16:54
Bonjour, merci pour votre aide ! Oui la structure du XML est simple à récupérer, mais êtes vous sûrs que le Webservice accepte une requête sérialisée directement ?

Parce que je peux éventuellement envoyer le fichier xml ou une requête sérialisée depuis Windev vers un script PHP sur le serveur qui ensuite traitera le fichier ou la requete pour l'insérer dans la base Prestashop mais mon idée était de passer directement entre windev et prestashop pour éviter d’augmenter le temps de traitement...

Voici mon code actuel qui ne fonctionne pas :

MaCle est une chaîne = "**********"
sXmlEXPRESS est une xmlDocument
// Ce fichier XML a été généré depuis la base de données Windev en suivant le XML de pretashop
sXmlEXPRESS = XMLOuvre("C:\Users\user\Desktop\client.xml", depuisFichier)

// Création du formulaire à envoyer
HTTPCréeFormulaire("FORM")

// Ajout le XML dans le formulaire
HTTPAjouteParamètre("FORM","",sXmlEXPRESS)

// Envoi du formulaire
SI HTTPEnvoieFormulaire("FORM","http://91.121.181.197/presta/api/customers/1",httpPost,"","","text/xml; charset=""utf-8""",MaCle,"") ALORS
Texte est une chaîne = HTTPDonneRésultat()
pos est un entier = Position(Texte,"error")
SI pos > 0 ALORS
Erreur(Texte)
SINON
Info("Modification effectuée avec succès")
FIN
SINON
Erreur(ErreurInfo())
FIN


J'ai essayé également en mettant toutes les entrées XML directement dans le FORM, par exemple :

HTTPAjouteParamètre("FORM","id", sid)
HTTPAjouteParamètre("FORM","price", sPrice)
etc.


Mais ça me met la même erreur...

Auriez-vous un exemple de code fonctionnel sinon ?

Merci d'avance.
Posté le 10 décembre 2017 - 18:59
UP !
Posté le 12 mars 2019 - 17:19
Bonjour je suis dans le même cas que vous avez vous trouvé une solution ?

merci
Membre enregistré
329 messages
Popularité : +28 (32 votes)
Posté le 12 mars 2019 - 19:17
Il me semble que prestashop utilise le JSON plutôt que du REST, ce qui pourrais expliquer vos soucis !

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membre enregistré
16 messages
Posté le 12 mars 2019 - 21:58
Bonsoir,
Il y a aussi 2 autres possibilités que je trouve plus simple..
1) Accès direct à la base Mysql
2)Export fichiers plats structurés sur FTP, puis scripts cotés serveur pour intégration des données
j'utilise souvent ces 2 méthodes plutôt que les Webservices, après tout dépend des impératifs et particularités du projet

Bon courage ;-)
Membre enregistré
194 messages
Popularité : +3 (3 votes)
Posté le 13 mars 2019 - 02:34
Bonjour

perso je tapes directement dans la base de prestashop pour mettre a jour le stock etc etc
Message modifié, 13 mars 2019 - 02:35
Posté le 31 mars 2020 - 19:42
Bonjour,

Je remonte ce post, est-ce que quelqu'un à trouver la solution pour la mise à jour du stock dans prestashop. Je suis actuellement en train de travailler sur le sujet, si vous avez la solution je serai très très intéressé pour avoir un bout de code qui permet la mise à jour du stock.

Merci
Anthony
Membre enregistré
1 message
Posté le 02 novembre 2020 - 14:41
Bonjour, après des heures de tests j'ai trouvé enfin la méthode qui marche et je vous poste la démarche à suivre je j’espère utile pour beaucoup de gents
1. pour recevoir le fichier XML d'un produit ou autres (Méthode GET)
MaCle est une chaîne = "FGVBXSMYRDSNUQ7H8R5GJDKG97S6PVT1"//cle webservice
ResLancement est un booléen
ResLancement = HTTPRequête("http://localhost/prestashop/api/customers/4", "", "", "", "", MaCle, "")
SI ResLancement = Vrai ALORS
ResCode est une chaîne = HTTPDonneRésultat()
SAI_Réception=ResCode //on affiche l'XML reçu dans une zone de saisie par exemple
SINON
Erreur("Erreur.....")
RETOUR
2. pour insérer un nouveau client par exemple (méthode POST)
Sablier(Vrai)
sSourceXML est une chaîne = fChargeTexte("D:\html\customer_post.xml")
Macle est une chaîne="FGVBXSMYRDSNUQ7H8R5GJDKG97S6PVT1"
HTTPCréeFormulaire("FORM")
HTTPAjouteParamètre("FORM","",sSourceXML)
SI PAS HTTPEnvoieFormulaire("FORM","http://localhost/prestashop/api/customers",httpPost,"","","te/xml",Macle,"") ALORS
Info("Erreur d'envoie")
RETOUR
SINON
SAI_Réception=HTTPDonneRésultat()
FIN
Sablier(Faux)
3. pour modifier (methode put)
Sablier(Vrai)
sSourceXML est une chaîne = fChargeTexte("D:\html\customer_modif.xml")
Macle est une chaîne="FGVBXSMYRDSNUQ7H8R5GJDKG97S6PVT1"
HTTPCréeFormulaire("FORM")
HTTPAjouteParamètre("FORM","",sSourceXML)
SI PAS HTTPEnvoieFormulaire("FORM","http://localhost/prestashop/api/customers/4",httpPut,"","","text/xml",Macle,"") ALORS
I nfo("Erreur d'envoie")
RETOUR
SINON
SAI_Réception=HTTPDonneRésultat()
FIN
Sablier(Faux)

4. pour supprimer
Sablier(Vrai)
Macle est une chaîne="FGVBXSMYRDSNUQ7H8R5GJDKG97S6PVT1"
HTTPCréeFormulaire("FORM")
HTTPAjouteParamètre("FORM","","")
SI PAS HTTPEnvoieFormulaire("FORM","http://localhost/prestashop/api/customers/1",httpDelete,"","","",Macle,"") ALORS
Info("Erreur d'envoie")
RETOUR
SINON
SAI_Réception=HTTPDonneRésultat()
FIN
Sablier(Faux)

Bon courage à tous et Merci WINDEV
Posté le 03 novembre 2020 - 06:22
Merci Redha pour le partage

Moi je travaille avec le wordpress et je veux le communiquer avec le windev (mise à jour du stock).
Est ce que je peux utiliser la même procédure ou bien il y a une autre méthode pour le wordpress ?

Merci d'avance.
Posté le 03 novembre 2020 - 09:09
Désolé Cher Ami je travaille seulement avec pretashop. j’espère que d'autre membres pourront vous aider. Bon courage
Membre enregistré
1 298 messages
Popularité : +20 (72 votes)
Posté le 03 novembre 2020 - 16:35
Bonjour

Dans WordPress il est possible d'activer le Webservice du site (API)

de la tu peux accéder a toutes les fonctions, tel que lire des commandes, mettre a jours le stock, ect ...

ou bien tu accède directement à la base de données du site web (En mysql) c'est plus directe mais hard a faire

--
Bertin CARRIERE
SRL RGPD.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere

+32(0)498/10.18.58
Co-President de l'asbl Be-Dev Association des développeurs Windev de Belgique
www.be-dev.be
Membre enregistré
21 messages
Posté le 06 décembre 2021 - 18:12
Bonjour Ridha, ce fil date un peu mais est il possible de mettre le contenu du fichier Xml envoyé lors du put ?
Posté le 30 avril 2022 - 12:38
Bonjour

Dans WordPress il est possible d'activer le Webservice du site (API)

Je cherche dans le cPannel et l'environnement de WordPress
mais rien trouvé

Est ce possible tu me donne l'endroit pour voir les APIs ?
Merci d'avance
Membre enregistré
7 messages
Posté le 02 septembre 2023 - 06:56
Bonjour, je tente de communiquer via les api entre prestashop et windev mais ce n'est pas claire pour moi. Pouvez vous me fournir des exemples ?

--
Merci de votre soutien !
Cordialement,
Hubert de BUREN
Membre enregistré
3 342 messages
Popularité : +93 (137 votes)
Posté le 02 septembre 2023 - 10:58
HUBERT a écrit :
Bonjour, je tente de communiquer via les api entre prestashop et windev mais ce n'est pas claire pour moi. Pouvez vous me fournir des exemples ?

--
Merci de votre soutien !
Cordialement,
Hubert de BUREN

Salut,
En quoi les exemples de ridha du 2/11/2020 ne te conviennent pas ?
Posté le 04 septembre 2023 - 19:11
Voir la LST99
Membre enregistré
7 messages
Posté le 15 septembre 2023 - 06:30
Ainsi que la lst 127. Merci.
Comment lire le nom d un produit en français et écrire en allemand. La rubrique name de psproduct est un tableau.
Merci d avance

--
Merci de votre soutien !
Cordialement,
Hubert de BUREN
Membre enregistré
7 messages
Posté le 16 septembre 2023 - 15:47
Bonjour,
je cherche à traduire dans plusieurs langues les produits de prestashop via api. Avec la lst99 et 127, j'arrive à lire, mais mais les noms, d'inscriptions.
Psproduct. Price retourne bien le prix, mais psproduct. Name ne retourne rien.
Comment lire pour chaque langue ? Et Modifier dans une autre.?
Pour la traduction via l'api deepl c'est bon.
Je cherche aussi à lire et modifier les quantités des declinaisons.
Merci d avance,
Hubert

--
Merci de votre soutien !
Cordialement,
Hubert de BUREN