ChDUP Posted April 13, 2013 Share Posted April 13, 2013 Bonjour à tous. Je suis sur Prestashop 1.5.3.1 Une boutique activée dans un groupe de boutique. Je souhaite aujourd'hui mettre en place une seconde boutique, qui reprendra une des catégorie de la première. Or, je m'aperçois dans la config du groupe de boutique que l'option "Partager les quantités disponible à la vente" est réglée sur NON. Bien entendu, je veux que les stocks soient partagés sur les 2 boutiques. Le problème est que si je passe cette option à OUI, il est indiqué dessous "Si vous changez cette option, les quantités des boutiques du groupe seront remises à 0." Impossible bien sur de tout remettre à 0 ! 5000 produits, avec de nombreuses décclinaisons. Je crée donc un autre groupe, en prenant soin d'activer l'option de partage des quantités. J'essaie de transferer ma première boutique vers ce groupe, mais impossible : "Vous ne pouvez pas changer le groupe de boutiques car une de ses options de partage est activée." Alors comment puis-je faire pour mettre en place ma seconde boutique ? merci ! Link to comment Share on other sites More sharing options...
ZenGraph Posted April 13, 2013 Share Posted April 13, 2013 Bonjour, pour pouvoir faire ce que vous voulez, il faut ruser... il est clair que de remettre le stock à 0 lorsqu'on active le partage de stock est une aberration, cela à été très mal pensé.. ou pas pensé du tout, je ne sais pas comment les devs ont pu imaginer une telle façon de procéder, et le ou les chefs de projet (si il y en a chez prestashop) approuver cette façon de faire. C'est pourquoi lorsque je fais ça.. j'exporte d'abord le stock de la boutique depuis phpmyadmin pour le réinjecter sur le nouveau système de stock global : INSERT INTO `ps_stock_available` VALUES ('1','10','0','1','0','31','0','2'), ('2','11','0','1','0','28','0','2'),etc... Ce qui serait mieux pour remettre le stock à jour serait d'avoir simplement une case à cocher : "OUI, je désire conserver l'état du stock" Aussi, notez que pour pouvoir partager les stocks, les boutiques doivent être dans le même groupe. Cordialement, Zen Link to comment Share on other sites More sharing options...
Mr6 Posted April 13, 2013 Share Posted April 13, 2013 Quitte à exporter autant le faire correctement, c'est à dire le faire dans le but de réimporter la boutique dans un Magento qui saura bien mieux gérer le multiboutique... Là c'est comme tu dis chDUP, une vraie galère ! Bon courage, tu as tout mon soutien avec encore une fonctionnalité pensée à moitié ! 1 Link to comment Share on other sites More sharing options...
ChDUP Posted April 13, 2013 Author Share Posted April 13, 2013 exporter les tables concernant les stocks pour les reinjecter ensuite me parait compliqué puisque différentes tables gérent cela suivant les produits qui ont ou n'ont pas des déclinaisons. Je sors justement d'un import de produits d'une part depuis une vieille version de Presta, de l'autre depuis un e-commerce propriétaire et ça a été une grosse galère au niveau de ces stocks de déclinaisons. J'envisage de cherche du côté du processus d'activation de cette fonctionnalité de partage de stock afin de "court-circuiter" le moment où les stocks sont remis à 0. Je ne vois pas trop en quoi cela poserait problème de ne pas le faire ? Link to comment Share on other sites More sharing options...
ChDUP Posted April 16, 2013 Author Share Posted April 16, 2013 dans controllers/admin/AdminShopGroupController.php J'ai commenté, vers le bas du fichier les 2 lignes StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group); Ce qui empêche les stocks de se remettre à 0. Ensuite j'ai basculé côté admin le groupe en "partage des quantités disponibles à la vente". Puis, table stock_available, j'ai passé tous les id_shop à 0 et les id_group_shop à 1 (id de mon groupe) Suite à ça tout semble bien fonctionner. J'ai du aussi gruger pour importer les produits de toute une catégorie sur la 2nde boutique, ce qui ne semble pas possible dans le fonctionnement standard. Link to comment Share on other sites More sharing options...
BobMorane Posted May 17, 2013 Share Posted May 17, 2013 dans controllers/admin/AdminShopGroupController.php J'ai commenté, vers le bas du fichier les 2 lignes StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group); Ce qui empêche les stocks de se remettre à 0. Ensuite j'ai basculé côté admin le groupe en "partage des quantités disponibles à la vente". Puis, table stock_available, j'ai passé tous les id_shop à 0 et les id_group_shop à 1 (id de mon groupe) Suite à ça tout semble bien fonctionner. J'ai du aussi gruger pour importer les produits de toute une catégorie sur la 2nde boutique, ce qui ne semble pas possible dans le fonctionnement standard. Un grand merci ChDUP pour l'astuce sur les quantités !!! Pour les catégories et produits, j'ai tout sélectionné (j'ai fait un clone pour une autre langue) et tout s'est correctement partagé. Link to comment Share on other sites More sharing options...
ShowYou Posted June 13, 2013 Share Posted June 13, 2013 Bonjour, Merci ChDUP pour cette astuce !!! Cela dit, ne pourrait-on pas mettre la valeur par défaut à 0 pour id_shop et 1 pour id_group_shop de façon à ce que lors de l'incrémentation de nouveau produit, on ne soit pas obligé de retourner dans la base de données ??? Link to comment Share on other sites More sharing options...
ILMP Posted October 9, 2013 Share Posted October 9, 2013 dans controllers/admin/AdminShopGroupController.php J'ai commenté, vers le bas du fichier les 2 lignes StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group);Ce qui empêche les stocks de se remettre à 0.Ensuite j'ai basculé côté admin le groupe en "partage des quantités disponibles à la vente". Puis, table stock_available, j'ai passé tous les id_shop à 0 et les id_group_shop à 1 (id de mon groupe) Suite à ça tout semble bien fonctionner. J'ai du aussi gruger pour importer les produits de toute une catégorie sur la 2nde boutique, ce qui ne semble pas possible dans le fonctionnement standard. Bonjour ChDUP, Je suis entrain de basculer mon shop en PS1.5.5 et bientôt en PS1.5.5, j'arrive au meme probleme que tout le monde lors de la création de la 2eme boutique les quantités de toutes les autres boutiques crées les quantités passent à 0 (Incroyable que Prestashop n'est pas pensé a cela! ) Est ce que ton astuce est toujours a jour ? car j'ai aucune envie de me taper la remise de quantités 1 par 1 pour tout mon catalogue. Merci beaucoup Matias Link to comment Share on other sites More sharing options...
ChDUP Posted October 9, 2013 Author Share Posted October 9, 2013 Je ne sais pas mais je dirai que probablement, oui. De toute façon, save de la base de données avant toute chose, et vous pouvez tester. Link to comment Share on other sites More sharing options...
Eric_Devos Posted October 15, 2013 Share Posted October 15, 2013 (edited) done Edited October 15, 2013 by Eric_Devos (see edit history) Link to comment Share on other sites More sharing options...
geys Posted July 23, 2014 Share Posted July 23, 2014 Bonjour,Je me permets de vous écrire car apparemment vous avez résolu le problème des stocks qui se remettent à 0 lors du passage en multiboutique.Qu'entendez- vous par "J'ai commenté vers le bas du fichier les 2 lignes StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group);1- ces lignes sont dans mon fichier ça ne fonctionne pas.2 - Je les ai supprimé, et ça ne fonctionne pas non plus.Merci pour votre aide si vous avez le temps de me répondre. dans controllers/admin/AdminShopGroupController.phpJ'ai commenté, vers le bas du fichier les 2 lignes StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group);Ce qui empêche les stocks de se remettre à 0.Ensuite j'ai basculé côté admin le groupe en "partage des quantités disponibles à la vente".Puis, table stock_available, j'ai passé tous les id_shop à 0 et les id_group_shop à 1 (id de mon groupe)Suite à ça tout semble bien fonctionner. Link to comment Share on other sites More sharing options...
ChDUP Posted July 23, 2014 Author Share Posted July 23, 2014 geys, ces 2 lignes lancent la fonction de remise à 0 des quantités, si vous les avez supprimé, il est surprenant que vos stocks soient remis à 0. Il faudrait voir si vous n'avez pas un override de ce controller dans /override Link to comment Share on other sites More sharing options...
geys Posted July 23, 2014 Share Posted July 23, 2014 geys, ces 2 lignes lancent la fonction de remise à 0 des quantités, si vous les avez supprimé, il est surprenant que vos stocks soient remis à 0. Il faudrait voir si vous n'avez pas un override de ce controller dans /override oups, qu'est qu'un override ? Link to comment Share on other sites More sharing options...
ChDUP Posted July 24, 2014 Author Share Posted July 24, 2014 c'est un fichier qui "surcharge" un autre afin de modifier certains fonctionnalités sans toucher le fichier d'origine. Regardez si vous avez un fichier dans override/controllers/admin/AdminShopGroupController.php Link to comment Share on other sites More sharing options...
geys Posted July 24, 2014 Share Posted July 24, 2014 Non, je n'ai pas ce fichier. En plus j'ai fait une mise à jour de mon presta 1.4 vers 1.6 (car le 1.4 ne fonctionne pas en multiboutique) et ça rame trop. Mes pages s'affichent en 10 secondes. Beaucoup trop pour du E-commerce. Je viens de changer pour un serveur dédié mais rien n'y fait. Ca rame... Je crois que je vais laisser tomber cette idée de multiboutique. Dommage cela m'aurait fait gagner un temps précieux. Merci en tous cas pour vos réponses. Link to comment Share on other sites More sharing options...
ChDUP Posted July 24, 2014 Author Share Posted July 24, 2014 ma modif concernait les versions 1.5.x si vous êtes en 1.6, il faut décortiquer le code Link to comment Share on other sites More sharing options...
webconcept76 Posted December 10, 2015 Share Posted December 10, 2015 Pour Prestahsop 1.6 ligne 335 du /controllers/admin/AdminShopGroupController.php commenter les deux lignes qui commence par StockAvailable juste en dessous de "//Reset available quantitites"' puis au niveau de phpmyadmin exécuter la requête suivante: UPDATE `ps_stock_available` SET `id_shop`=0,`id_shop_group`=1 ps: toujours faire un backup des vos données sql au moins les tables que vous impactez. Link to comment Share on other sites More sharing options...
Gu1llaume Posted December 27, 2015 Share Posted December 27, 2015 Je suis en 1.5.6 et je passe une "grosse" boutique en multi-boutique... C'est un truc de fou cette remise à 0 des stocks si on active le partage des stocks... Merci à ChDUP pour l'astuce... J'espère que ça tient toujours Link to comment Share on other sites More sharing options...
MadMax75PS Posted October 25, 2016 Share Posted October 25, 2016 Pour Prestahsop 1.6 ligne 335 du /controllers/admin/AdminShopGroupController.php commenter les deux lignes qui commence par StockAvailable juste en dessous de "//Reset available quantitites"' puis au niveau de phpmyadmin exécuter la requête suivante: UPDATE `ps_stock_available` SET `id_shop`=0,`id_shop_group`=1 ps: toujours faire un backup des vos données sql au moins les tables que vous impactez. Bonjour, la requête est à réaliser à quel moment ? Merci ! Link to comment Share on other sites More sharing options...
Mat_D1245 Posted November 4, 2016 Share Posted November 4, 2016 (edited) Pour Prestahsop 1.6 ligne 335 du /controllers/admin/AdminShopGroupController.php commenter les deux lignes qui commence par StockAvailable juste en dessous de "//Reset available quantitites"' puis au niveau de phpmyadmin exécuter la requête suivante: UPDATE `ps_stock_available` SET `id_shop`=0,`id_shop_group`=1 ps: toujours faire un backup des vos données sql au moins les tables que vous impactez. Désolé de déterrer un post vieux de 1 an, mais bon, comme trop souvent avec Prestashop les problèmes demeurent, surtout quand ils relèvent de l’aberration. Dans mon fichier j'ai deux fonctions: protected function afterAdd($new_shop_group) { //Reset available quantitites StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group); } protected function afterUpdate($new_shop_group) { //Reset available quantitites StockAvailable::resetProductFromStockAvailableByShopGroup($new_shop_group); } a) Dois-je commenter les deux? Une fois le partage effectué, dois-je décommenter les fonctions? D'avance merci, Mathieu. EDIT: a) évidemment, suis-je bête... pas la peine. Edited November 11, 2016 by Mat_D1245 (see edit history) Link to comment Share on other sites More sharing options...
Mat_D1245 Posted November 11, 2016 Share Posted November 11, 2016 (edited) ... ceci dit, j'imagine que l'on peut aussi modifier dans classes/stock/StockAvailable.php la fonction : public static function resetProductFromStockAvailableByShopGroup(ShopGroup $shop_group) { if ($shop_group->share_stock) { $shop_list = Shop::getShops(false, $shop_group->id, true); if (count($shop_list) > 0) { $id_shops_list = implode(', ', $shop_list); return Db::getInstance()->execute(' DELETE FROM '._DB_PREFIX_.'stock_available WHERE id_shop IN ('.$id_shops_list.')' ); } } else { return Db::getInstance()->execute(' DELETE FROM '._DB_PREFIX_.'stock_available WHERE id_shop_group = '.$shop_group->id ); } } Pour que les gens qui comme moi ont plusieurs groupes ne soient pas obligés de repasser en plus par le sql. Je ne l'ai pas encore testée, mais la fonction pourrait ressembler à ceci: public static function resetProductFromStockAvailableByShopGroup(ShopGroup $shop_group) { if ($shop_group->share_stock) { $shop_list = Shop::getShops(false, $shop_group->id, true); if (count($shop_list) > 0) { $id_shops_list = implode(', ', $shop_list); return Db::getInstance()->execute(' UPDATE '._DB_PREFIX_.'stock_available SET id_shop=0, id_shop_group='.$shop_group->id.' WHERE id_shop IN ('.$id_shops_list.')' ); } } else { return Db::getInstance()->execute(' DELETE FROM '._DB_PREFIX_.'stock_available WHERE id_shop_group = '.$shop_group->id ); } } A tester, mais surtout faire un backup avant. EDIT: je suis sur Presta 1.6.0.14 Edited November 11, 2016 by Mat_D1245 (see edit history) Link to comment Share on other sites More sharing options...
prestasafe Posted May 29, 2017 Share Posted May 29, 2017 Bonjour tout le monde. Pour ma part mon client à faire la "bourde" d'activer l'option et s'est retrouvé avec les stock à 0... J'ai trouvé un petite solution j'ai envoyé les requetes SQL suivante. DELETE FROM `ps_stock_available` WHERE `id_shop` > 0 Pour éviter le dupplicate. Puis ça UPDATE `ps_stock_available` s INNER JOIN `ps_product_attribute` attr ON s.id_product_attribute = attr.id_product_attribute SET s.quantity = attr.quantity WHERE s.id_product = attr.id_product AND s.id_product_attribute = attr.id_product_attribute Pour mettre à jour les quantités du stock des produits et celle la: SELECT s.id_product as stock_id_product, s.id_product_attribute as stock_id_attribute, s.quantity as stock_quantity, attr.id_product as attr_id_product, attr.id_product_attribute as attr_id_attribute, attr.quantity as attr_quantity FROM `ps_stock_available` as s, `ps_product_attribute` as attr WHERE s.id_product_attribute = attr.id_product_attribute AND s.id_product = attr.id_product Pour les attributs. Tout est bon pour moi. bon courage à tous ! 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