Jeniiifer Posted February 24, 2011 Share Posted February 24, 2011 Bonjour, Je suis en train de développer une application mobile android pour le commerce electronique. Est-ce que quelqu'un peut m'expliquer comment je peux utiliser prestashop dans mon application? Juste les étapes à suivre. Merci Link to comment Share on other sites More sharing options...
Broceliande Posted February 24, 2011 Share Posted February 24, 2011 Je ne comprends pas :- Tu veux que ton application communique avec prestashop ? (dans ce cas faut attendre la 1.4, ses webservices, et la documentation qui ne sera publiée qu'avec la 1.4 final)- Tu veux utiliser le code prestashop comme moteur de ton application ecommerce ? je ne sais pas si l'ASE supportera les prérequis de prestashop Link to comment Share on other sites More sharing options...
Jeniiifer Posted March 1, 2011 Author Share Posted March 1, 2011 Bon voilà ce que je demande: est-ce qu'il y a une possibilité d'appeler les fonctions déjà développées en presta dans mon application ?! Ma boutique presta est déjà en ligne. Ma mission est d'ajouter une application mobile complémentaire dont l'interface est similaire à celui de l'application web qui fonctionne déjà. J'ai pu faire la connexion avec la base via mon émulateur Android. Mais pour l'authentification par exemple je sais pas quoi faire car le mot de passe dans la base est chiffré, donc je doit connaitre le type de chiffrement: un de plusieurs problèmes. Quelqu'un a une idée svp?Merci beaucoup Link to comment Share on other sites More sharing options...
Broceliande Posted March 1, 2011 Share Posted March 1, 2011 Et bien alors je renouvelle donc mon conseil de base : attendre la 1.4 , ou créer toi même sur le presta déja en place les webservices dont ton appli android aura besoin.Pour utiliser , mais seulement dans l'arborescence abritant presta, les classes et fonctions de ce dernier, deux choses en php sont impératives, ceci pour se placer dans l'environnement : include('repertoire_racine/config/config.inc.php'); require_once('repertoire_racine/../../init.php'); La première ligne charge la config , notamment les données de connexion à la bddLa deuxième , elle , initialise l'environnement.A partir de là tu peux sur le serveur distant utiliser n'importe quel objet ou api de presta pour coder un web service.Tu ne pourras pas techniquement utiliser directement ces classes et apis sur le mobile distant, avec ou sans mot de passe.Pour ce qui est du cryptage du mot de passe, ce n'est pas si compliqué que ça en a l'air:dans settings.inc.php existe un define de clé , unique et générée à l'install : define('_COOKIE_KEY_','xxxxxxxxxxxxxxxxxxxxxxx') Pour stocker un mot de passe, prestashop réalise une concaténation de cette clé puis du mot de passe , ex :xxxxxxxxxxxxxxxxxxxxxxxMOTDEPASSEpuis fait un md5 de ça.Pour la vérif il fait pareil et compare les valeurs cryptées.Il existe un logiciel , Presta Widget , qui est fourni (gratuitement) , avec la partie presta (un module) qui sert de webservice. Ca peut te faire une bonne base de départJe ne connais pas le cahier des charges de l'appli que tu dois coder , mais bon courage. Link to comment Share on other sites More sharing options...
Jeniiifer Posted March 3, 2011 Author Share Posted March 3, 2011 Merci beaucoup Broceliande surtout en ce qui concerne le mot de passe, ça marche bien maintenant: J'ai développé en android une fonction qui fait un md5 du mot de passe entré par l'utilisateur puis envoie le résultat vers un service web en utilisant httpPost. J'ai utilisé un fichier php contenant une requête select et qui envoie le résultat de la requête sous format json.En ce qui concerne les 2 lignes que vous avez posté, ça serait parfait si je peux changer l'emplacement des éléments car il faut prendre en compte la taille de l'écran du mobile !Merci encore Link to comment Share on other sites More sharing options...
Broceliande Posted March 3, 2011 Share Posted March 3, 2011 Les deux lignes dont tu parles ne servent qu'à se placer dans l'environnement prestashop , et donc en utiliser les apis.Il n'y a aucun aspect visuel.Un exemple pour que tu comprennes : ton script distant qui récupère les données et les envoie en json .J'imagine donc que tu n'as pas inclus ces deux lignes et que tu as du coder tes manips Bdd.Si tu inclus ces lignes dans ton script, tu peux utiliser la classe Db de presta sans te soucier de la connexion ou de ses identifiants / password : $sqlstring="select blah blah where blah blah etc..."; $monresultat = Db::getInstance()->ExecuteS($sqlstring); Mais aussi utiliser les classes et leurs methodes sans meme passer par une requete , par ex tu veux tous les produits : $products=Product::getProducts($id_lang, $start, $limit, $orderBy, $orderWay, $id_category, true) idem pour les paniers, les commandes etc ....Te placer dans l'environnement prestashop t'evite de réinventer la roue. Link to comment Share on other sites More sharing options...
Jeniiifer Posted March 3, 2011 Author Share Posted March 3, 2011 Bon, j'ai cru qu'ils ont un aspect visuel car quand je visualise le fichier php dans le navigateur, il m'affiche le résultat du requête, mais il m'affiche aussi les tags, les catalogues,etc vus dans le site web. C'est pourquoi j'étais confuse Merci beaucoup pour tes explications, mais j'ai encore un problème pour lire les données json dans mon code java.En premier lieu j'ai utilisé ce fichier php et ça marche parfaitement: <?php mysql_connect("localhost","root","xxxxx"); mysql_select_db("presta"); $q=mysql_query("SELECT id_category ,date_add FROM ps_category WHERE level_depth ='".$_REQUEST['level']."'"); while($e=mysql_fetch_assoc($q)) $output[]=$e; print(json_encode($output)); ?> Je récupére le résultat dans un JsonArray puis je parcours cet array pour extraire les données.Maitenant que j'ai inclus ces 2 lignes et modifié le fichier comme suit: <?php include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/header.php'); $q="SELECT id_category ,date_add FROM ps_category WHERE level_depth ='".$_REQUEST['level']."'"; $monresultat = Db::getInstance()->ExecuteS($q); print(json_encode($monresultat)); ?> J'ai cet erreur sous android:"error parsing data org.json.JSONException: Value Donc il y a un problème dans la récupération des données, je sais pas pourquoi !!Merci encore de m'avoir prêter attention Link to comment Share on other sites More sharing options...
Broceliande Posted March 3, 2011 Share Posted March 3, 2011 La réponse aux deux problèmes , visuel apparent et erreur json est absolument la même :Si tu regardes quelques posts plus haut , je t'ai indiqué qu'il fallait inclure deux fichiers , (un include et un require_once de préférence d'ailleurs).Si tu regarde ton code , l'un des deux fichiers n'est pas le bon Au passage header.php affiche déja une partie du site (laquelle ? lol)essaye avec ça en copier coller au moins une fois pour éviter toute erreur : <?php /* environnement presta */ include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); /* */ $q="SELECT id_category ,date_add FROM ps_category WHERE level_depth ='".$_REQUEST['level']."'"; $monresultat = Db::getInstance()->ExecuteS($q); print(json_encode($monresultat)); ?> Link to comment Share on other sites More sharing options...
Broceliande Posted March 3, 2011 Share Posted March 3, 2011 Ensuite , tu peux tester la puissance de l'environnement presta sans aucune requete : <?php /* environnement presta */ include(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); $categories = Category::getCategories(2, true, true); // 2 est l'id de la langue , tu peux le récupérer en post par ex si tu veux le faire varier print(json_encode($categories)); ?> Edit : note que là tu récupère toutes les catégories actives en une fois, dans une langue donnée. Link to comment Share on other sites More sharing options...
Jeniiifer Posted March 4, 2011 Author Share Posted March 4, 2011 Faute très imbécile, je m'excuse je sais pas comment ça changait !! Bon, je vous remercie beaucoup pour votre aide et vos explications vraiment vous m'avez bien dirigé. Merci encore Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now