Jump to content

WebService en Objet


Recommended Posts

Bonjour tout le monde,

 

Je viens vers vous concernant le WebService de Prestashop.

 

Le contexte 

 

On me demande de créer une passerelle prestashop, non sous XML mais en programmation orientée objet. J'ai commencé à rechercher des informations mais je ne tombe que sur des tutos sur du REST ou CRUD. Si je comprends bien c'est fais avec du XML ? (Pouvez vous me le confirmer ?)

 

Sources http://doc.prestashop.com/display/PS14/Tutoriel+Webservice+REST

 

Je recherche donc un tuto ou une documentation pour utiliser les classes de prestashop.

Si quelqu'un à des infos ou des brides de tuto, n'hésitez pas, je prends tout.

 

Cordialement,

Dark-Serum

Share this post


Link to post
Share on other sites

Bonjour,

 

Je vous confirme que la réception des données (d'ailleurs, l'envoi également) se fait via XML seulement. Des éléments de réponses se trouvent dans les classes du WebService quant à la sortie en JSON, par exemple, mais ce n'est pas implémenté.

 

Tout dépend du contexte global et comme se déroule le processus, mais il est possible pour votre application de concevoir un interpréteur entre votre XML et l'objet. Ceci permettant par exemple de récupérer les données souhaitées en XML et puis de traiter cela via un objet. Ou bien, finalement, d'avoir une classe de type Product et que, au moment de la soumission au WebSevice, vous utilisez un "build" XML.

 

Tout dépend donc un peu votre point de départ, votre point d'arrivée et l'outil de liaison utilisé entre les deux, je dirais.

Share this post


Link to post
Share on other sites

C'est bien ce que je pensais ...

Alors pourquoi me direz vous je recherche cela ?

Eh bien la personne qui gère le prestashop avec une passerelle en XML trouve que cela est trop long et gourmand et pense que l'on gagnerait en vitesse et performance en utilisant la programmation orienté objet.
 

Donc ce que je pourrais faire si je vous suis :

 

- Récupérer en XML les infos.

- Les placer dans des objets.
- Les uploader avec du xml.

 

Du coup je rallonge ma chaine originale si je place l'objet entre les deux nan ???

Pardon pour les questions idiotes mais ça serait plus idiot de ne pas les poser.

 

Merci encore de vos réponses.

Edited by DarkSerum (see edit history)

Share this post


Link to post
Share on other sites

Aucunes questions idiotes, au contraire. :)

 

Oui. D'autant que si on utilise un script PHP externe, on peut tout à fait récupérer le flux XML de l'entité souhaité (par exemple Product, Category, ...) et le convertir assez simplement en objet (XMLQuelqueChose).

 

En C#, par exemple, j'ai pris soin de faire un cache pour chaque objet récupéré (attention, je ne fais que de la lecture et c'est donc tout naturel et sans problèmes pour autant, actuellement).

 

Après, selon la nature du script et l'idée souhaitée, il est possible également d'avoir un module maison qui réalise le traitement. Mais c'est au cas par cas, je pense.

Share this post


Link to post
Share on other sites

D'accord, je peux récupérer le xml avec du webservice et le rapatrier sur un module perso qui le converti en objet pour l'insérer en base.

Le principe de la passerelle est de récupérer des informations d'un fichier txt ou csv (envoyé sur le ftp tous les deux jours) pour les insérer dans le prestashop (insertion de produits catégories ou mises à jour de celles ci).

Share this post


Link to post
Share on other sites

Dans ce cas, et si c'est particulier à la boutique en place (ou utilisé couramment ainsi), je propose de pencher sur l'idée d'un module propre à la boutique.

 

Un contrôleur en Front Office (sécurisé via un éventuel paramètre) serait appelé par tâche cron tout les x temps. C'est finalement ce dernier qui récupérerait le fichier et qui le traiterait. Cette manière d'agir permet notamment un traitement en objet via les classes directes de PrestaShop.

 

Je ne sais pas si ça collerait à votre besoin, mais c'est une piste.

Share this post


Link to post
Share on other sites

Oui c'est même peut être plus intéressant un module, car on risque de reproduire ce développement pour d'autre site.
Mais une passerelle reste une passerelle, on aura un bout de code à ajuster.

 

Et je viens de penser : une passerelle (en override de classes), c'est possible de la rendre plus général pour d'autre site ?

Share this post


Link to post
Share on other sites

Bonjour,

Vu que vous n'utilisez apparemment le web service que pour insérer les données en base, pourquoi vouloir utiliser le web service ?

A partir du moment ou vous avez récupéré les données depuis votre csv, vous créez votre objet à partir des classes natives de prestashop pour l'insertion ou la modification en base.

Share this post


Link to post
Share on other sites

Bonjour,

 

Pourquoi vouloir utiliser le webservice ?

Eh bien je pensais que l'objet était possible avec le webservice, ensuite c'est une passerelle qui tournera chaque nuit ...

Donc il y aura un import automatique toutes les nuits.

 

Si un fichier personnalisé permet de faire ce qu'un webservice (xml) mais en objet alors pourquoi pas :D

 

Je viens de regarder de plus près cette solution, il faut seulement inclure le fichier config/config.inc.php pour réutiliser les classes de prestashop ?
 

Avez vous une doc sur les différentes classes de prestashop 1.6 ?

Merci encore de vos réponses et de votre aide.

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More