Jump to content

Script indépendant bonne pratique de dev


csid

Recommended Posts

Bonjour,

 

je débute avec le dev PS et ... je suis un peu submergé d'informations souvent contradictoires.

 

Je suis sur un Prestashop 1.5.2. Je veux développer un script qui aura pour but de mettre à jour ma base prestashop à partir d'un webservice externe.

(Aucun pb d'acces au webservice externe en SOAP)

 

Mais je galère et je n'arrive pas à me décider sur la technique à employer pour mettre à jour la base PS. Jusqu'à aujourd'hui j'ai toujours codé mes passerelles "à la main". Mais là, vu la complexité de la base je voudrais faire ca dans les règles.

J'ai vu dans la structure de la base que le multiboutique ajoutait encore à la complexité donc pour ne pas me planter et me retrouver avec une base bancale je voudrais m'appuyer sur du code déjà rôdé...

 

Quelqu'un (une âme très charitable) pourrait-il me dire/guider dans la manière propre de créer un script (pas un module) externe lancé par tâche CON?

Que faut-il inclure? classes...?

Comment accéder proprement à la base et avec quelles classes/méthodes?

Y-a-t-il des methodes globales genre "ajouteUnProduitOuLeModifieSiExiste"...

Un exemple de code?

 

A priori j'aurai besoin de créer/maj des categories, créer/maj des produits (stock images produits associés etc), récupérer des commandes pour les transmettre...

Le tout sera lancé régulièrement par des taches cron.

 

Merci d'avance pour votre aide.

 

Hervé

Link to comment
Share on other sites

oui j'ai lu, j'ai lu aussi pas mal de topics s'y rapportant et il semble qu'il y a pas mal de pb techniques et limitations.

Dans le principe il est vrai que c'est un peu ce que je cherche.

Dans la pratique je n'ai pas trouvé d'exemple complet et fonctionnant. (pb avec les images, pb divers d'encodage etc...)

Il semble qu'en lecture pas de pb mais en mise à jour complexe...

 

Donc je m'orientais vers les fonctions natives de prestashop, genre m'appuyer sur les classes du noyau... ou autre.

 

J'ai dit "pas un module" mais peut être que la techno module permet de faire ça et que j'ai mal perçu la chose.

Je n'ai pas besoin d'une interface IHM

j'ai juste besoin de :

- lire un flux exterieur et metrte à jour ma base à partir de ce flux(ici un webservice SOAP)

- lire mes commandes à traiter et les transmettre via le même webservice extérieur SOAP

 

Au milieu je veux pouvoir manipuler éventuellement les données (appliquer un coef, faire des traitements spécifique sur des catégories précises, ou des codes produits précis) bref garder la main et bénéficier du noyau pour obtenir une base propre.

 

J'entend par propre :

Si je fais tous les insert à la main il risque d'y en avoir pas mal et je risque surtout d'en oublier ou d'en zapper pour de mauvaises raisons. Sans parler du temps que je vais passer pour rechercher tout ce qu'il y a à faire.

Utiliser des méthodes natives du noyau fait que la création d'un produit devrait être plus propre logiquement.

...

 

Peut être que je me fourvoie totalement mais vous êtes là pour m'éclairer ;)

 

(si par la même occasion on pouvait m'expliquer comment m'inscrire sur wiki.prestashop.com je ne trouve aucun lien d'inscription!!!

exemple pour accéder à ça : http://wiki.prestashop.com/display/enEN/Using+the+REST+webservice )

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

:(

personne ne sait rien?

- coté webservice je bataille pour l'instant avec l'install de curl qui est indispensable donc j'avance pas de ce coté

-par contre j'essaye de trouver des infos sur les classes et methodes du noyau de PS mais je trouve rien!!

donc je tâtonne et je sais que je suis sur la bonne voie mais j'aimerai bien savoir si il y a une doc ou un tuto.

 

Voilà en résumé le résultat de mes recherches :

//-- ceci permet au script d'accéder aux classes et methodes de PS

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

require(dirname(__FILE__).'/init.php');

 

//--manipuler un produit

$product = new Product(1); //-- 1 est l'id du produit

$product->price = $new_price;

$product->update(); //-- met à jour le protuit

 

On doit pouvoir faire plein de choses sur un produit via ce genre de methode.

Reste à savoir :

- quelles methodes existent?

- ce qu'elles font réellement. Par exemple si Add existe, est-ce que ca créé aussi toutes les dépendances dans les autres tables de produit

- OU TROUVER DE LA DOC???????

 

je pleure!!!!!!!

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...