YanK Posted January 6, 2011 Share Posted January 6, 2011 Bonjour,Je souhaite gérer automatiquement les stocks du magasin avec celui du site web. Je pense donc utiliser la partie import csv que je vais modifier pour faire cela automatiquement avec CRON.Mais avant de faire cela j'ai fait des tests en manuel et je me retrouve avec le soucis suivant :Exemple :- J'ai un Produit A avec une quantité 12.- On commande 2 produits A.- Le stock de produit A passe à 10.- Je récupère le stock du magasin en csv (avant d'avoir géré la commande) j'ai donc toujours une quantité de 12.- Je met à jour la BD Prestashop et mon stock de produit A passe à 12.Je me retrouve donc avec un stock de 12 produit alors que j'en ai 2 qui doivent être réservé pour une commande.Y a t-il un meilleur moyen de mettre à jour le stock en prenant en compte les commandes en cours ?Merci d'avance Link to comment Share on other sites More sharing options...
madmike Posted January 6, 2011 Share Posted January 6, 2011 Bonjour Yank,Il n'y as hélas pas de miracle, mais plusieurs solutions :- dans tout les cas la gestion des stock doit être centralisé,- que la sync s'effectue d'un coté ou de l'autre il faut faire une sync,- etc ...Tu doit utiliser une seul interface maître pour tes stocks, et tu ajoute ou supprime tes produits.Pour ton import magasin, utilise des tables à part, et crée un script qui sync tes stock en fonctions de plusieurs critères et non un simple update de ta table produit de PSAs-tu un autre outils de gestion pour ton magasin ?Mike Link to comment Share on other sites More sharing options...
Vincent Decaux Posted January 6, 2011 Share Posted January 6, 2011 Cela peut être possible, lors de l'import, il faut faire une fonction qui va chercher dans la base les commandes passées sur le produit concerné.Si il y a des commandes, alors on baisse le stock du nombre de commandes avant de l'importer.Soit tu as de solides connaissances en PHP et tu peux t'y mettre, le script n'est pas très sorcier, soit en faisant appel à un prestataire. Link to comment Share on other sites More sharing options...
YanK Posted January 7, 2011 Author Share Posted January 7, 2011 Merci à tous les deux c'est bien ce que je pensais.Je voulais savoir avant de me lancer dans la création d'un script de vérification s'il n'y avait pas quelque chose d'existant.Je vais voir pour modifier le script d'import existant pour en créer un nouveau avec plus d'options. Link to comment Share on other sites More sharing options...
YanK Posted January 8, 2011 Author Share Posted January 8, 2011 Je pense que je vais utiliser les tables stock_mvt et order_history.Ce que je me demande c'est : Comment gère t-on un inventaire lorsqu'il y a des commandes non traitées en cours ? Car c'est un peu le même problème. Link to comment Share on other sites More sharing options...
YanK Posted January 28, 2011 Author Share Posted January 28, 2011 J'ai fini par automatiser l'importation dans prestashop.Voici le lien pour les détails du script : Mise à jour automatique des stocks prestashopPour déduire les commandes non traités de la mise à jour des stocks j'ai dupliquer l'onglet import et j'ai modifié la partie qui test si la quantité est nul par celle ci : if ($product->quantity == NULL) { $product->quantity = 0; } else { $RSQL = 'SELECT SUM(`quantity`) AS somme'; $RSQL .= ' FROM `'._DB_PREFIX_.'stock_mvt` sm'; $RSQL .= ' WHERE `id_product`='.(int)($product->id); $RSQL .= ' AND `quantity`<0'; $RSQL .= ' AND NOT EXISTS ('; $RSQL .= ' SELECT `id_product`'; $RSQL .= ' FROM `'._DB_PREFIX_.'order_history` oh'; $RSQL .= ' WHERE `id_order_state`=3'; $RSQL .= ' AND sm.`id_order`=oh.`id_order`'; $RSQL .= ' );'; $qt = Db::getInstance()->ExecuteS($RSQL); $product->quantity = (int)($product->quantity)+(int)($qt[0]['somme']); } En espérant que ça aidera du monde. Link to comment Share on other sites More sharing options...
madmike Posted January 28, 2011 Share Posted January 28, 2011 Cool, next step le dev d'un module admin pour gérer tout ce qui est conf + forcer l'update manuel ! non ;-) ? Link to comment Share on other sites More sharing options...
YanK Posted January 28, 2011 Author Share Posted January 28, 2011 @madmike : J'ai pas tout compris. Link to comment Share on other sites More sharing options...
madmike Posted January 28, 2011 Share Posted January 28, 2011 Ce ne te tente pas de crée un interface de type module dans PS pour étendre et agir sur le MàJ des stocks à partir de flux externes ? Link to comment Share on other sites More sharing options...
YanK Posted January 28, 2011 Author Share Posted January 28, 2011 La partie importation de prestashop est là pour ça. Link to comment Share on other sites More sharing options...
madmike Posted January 28, 2011 Share Posted January 28, 2011 hum hum ;-) Link to comment Share on other sites More sharing options...
hulk Posted January 16, 2012 Share Posted January 16, 2012 Bonjour Yank merci pour cette idée, c'est exactement ce que je cherche car je vais automatiser la mis à jour de mon stock prestashop à partir de mon stock magasin. j'ai du mal a comprendre les trucs que vous dites et à suivre tes instruction la dessus. Est ce que cette manipulation est valide pour les version 1.2.5? et si non, pouvez vous m'expliquer les marches à suivre pour utiliser votre truc. merci Link to comment Share on other sites More sharing options...
hulk Posted January 18, 2012 Share Posted January 18, 2012 up svp, est ce qu'il y a une personne qui a utilisé ce truc et qui peut me répondre? merci d'avance Link to comment Share on other sites More sharing options...
Tispirit1986 Posted November 23, 2012 Share Posted November 23, 2012 Merci pour se script je n'arrive pas a le faire fonctionner j'ai un email avec le TOKEN : 089c757a5ebb706a189ea396a******* Mais l'import ne se passe pas. je rappelle le script Le tuto de YANNICK KERMAREC http://www.kermarec.com/prestashop-mise-a-jour-automatique-des-stocks/ #!/bin/sh ##################################################################### # # # SRIPT DE YANNICK KERMAREC # # HTTP://WWW.KERMAREC.COM # # # ##################################################################### ####################### PARAMÈTRES PRESTASHOP ####################### [email protected] passwd=motdepass tab=Import # Onglet auquel vous voulez accéder admintab='Admin'$tab # Les script de prestashop vont chercher les onglets avec Admin devant urladminsite=http://www.prestashop.com/adminxxx/ # L'url de la partie administration de prestashop csvfile='monfichiert.csv' # Le nom de votre fichier csv se trouvant dans le répertoire 'import' de la partie adminxxx # Les type de valeur pour chaque colonne de votre CSV : # /!\ ATTENTION /!\ N'oubliez pas de bien renseigner cette partie car c'est ce qui va être utilisé pour mettre à jour la BD typevalue='&type_value[0]=id&type_value[1]=name&type_value[2]=no&type_value[3]=quantity' ####################### IDENTIFICATION ####################### # Identification et récupération du cookie wget --save-cookies=cookie.txt --post-data='email='$email'&passwd='$passwd'&Submit=submit' --keep-session-cookies -q -O login.php $urladminsite'login.php' if [ -n "$(grep 'error' login.php)" ] then error=$(grep '<li>.*</li>' login.php | sed 's/.*<li>\(.*\)<\/li>/\1/g') echo 'ERREUR : '$error else # Si pas d'erreur premier accès à la partie administration wget --load-cookies=cookie.txt --keep-session-cookies -q -O index.php $urladminsite'index.php' # Accès à la partie administration token=$(grep 'index.php?tab='$admintab'\&token=' index.php | sed 's/.*token=\(.*\)\">'$tab'.*/\1/g') # Extraction du token de la page index.php pour l'onglet qui nous intéresse fi ####################### IMPORTATION CSV ####################### if [ -n "$(echo $token | grep ^[a-z0-9]*)" ] then echo 'TOKEN : '$token # Affichage du token récupéré wget --load-cookies=cookie.txt --keep-session-cookies --post-data='tab='$admintab'&token='$token'&skip=0&csv='$csvfile'&entity=1&iso_lang=fr&separator=;&multiple_value_separator=,'$typevalue'&import=Import CSV data' -q -O maj.php $urladminsite'index.php' else echo 'ERREUR : Pas de token' fi Link to comment Share on other sites More sharing options...
Tispirit1986 Posted November 30, 2012 Share Posted November 30, 2012 up 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