Jump to content

Systeme de quantité global


Recommended Posts

J'ai vu que plusieurs personne ont eu ce problème mais personne pour y répondre..

Dans Prestashop tout le monde sait que lorsque l'on fait des déclinaisons de produits, le systeme de quantité n'est plus gobal mais declinaison par declinaison.

Ce que tout le monde ne sait pas, c'est comment avoir un systeme de quantité global avec des declianisons pour les produits.....

En somme sur le BO des déclinaisons, il nous demnde de rentrer une quantité qui écrase la global, j'ai essayer de repérer les ligne de code correspondantes et il me semble que c'est dans adminproduct.php :

if ($id_product_attribute = intval(Tools::getValue('id_product_attribute')))
                   {
                       if ($this->tabAccess['add'] === '1')
                       {
                           if ($product->productAttributeExists($_POST['attribute_combinaison_list'], $id_product_attribute))
                               $this->_errors[] = Tools::displayError('This attribute already exists.');
                           else
                               $product->updateProductAttribute($id_product_attribute,
                               Tools::getValue('attribute_wholesale_price'),
                               Tools::getValue('attribute_price') * Tools::getValue('attribute_price_impact'),
                               Tools::getValue('attribute_weight') * Tools::getValue('attribute_weight_impact'),
                               Tools::getValue('attribute_ecotax'),
                               Tools::getValue('id_image_attr'),
                               Tools::getValue('attribute_reference'),
                               Tools::getValue('attribute_supplier_reference'),
                               Tools::getValue('attribute_ean13'),
                               Tools::getValue('attribute_default'),
                               Tools::getValue('attribute_location'));



Ce code est censé remplacer les valeurs des attributs des produits, si des déclinaisons existe. J'ai bien sur essaer de supprimer la ligne attribuer a la quantité mais rien a faire...

Il y a aussi ce code dans product.php qui a l'air de remplacer les attributs des déclinaisons des attributs des produits en général :

//wash attributes list (if some attributes are unavailables and if allowed to wash it)
           if (Configuration::get('PS_DISP_UNAVAILABLE_ATTR') == 0)
               foreach ($groups AS &$group)
                   foreach ($group['attributes_quantity'] AS $key => &$quantity)
                       if (!$quantity)
                           unset($group['attributes'][$key]);



En essayant de le modifier ca a fait un bordel monstre donc abandon pour ce bou de code...

HELP PLEASE... Si quelqu'un à ne serai-ce qu'une minipiste, qu'il me tienne au courant !!!!!

Link to comment
Share on other sites

MERCIS DE TA REPONSE QUE JE TROUVE TRES CONSTRUCTIVE....

L'intérêt ? C'est de ne pas raisonner avec une quantité pour chaque déclinaison mais en quantité global de produit... c'est difficile a comprendre ?
Tu sais, on ne vend pas que des T-shirt ou autre sur une boutique en ligne..

Pour ce qui sont intéressé, je crois avoir trouvé la solution en modifiant la classe attribut.

Sur ce bon Vent !

Link to comment
Share on other sites

Veuillez m'excuser, ne le prenez pas comme ça.

J'ai posté trop vite et trop tard :(

Ma question était celle-ci :
Quelle intérêt pour une gestion de stock ?
Par exemple, si dans ton stock, tu as 4 roses et 3 verts, tu n'as pas 7 roses ou 7 verts ?

Veuillez encore m'excuser pour ce petit désagrément.

Link to comment
Share on other sites

Ho tinkiete pas c'est pas grave... C'est juste que j'ai pris ton post pour un : On s'en fou de ton problème a la con, alors que j'ais plenché dessus pendant 4 jour.. Apparement j'étais pas tout seul mais bref c'est pas grave.

"Par exemple, si dans ton stock, tu as 4 roses et 3 verts, tu n’as pas 7 roses ou 7 verts ?" => Le problème est que tu résonne que d'une seule manière : que l'on a en stock des produits limité.

OR Perso : j'ai une quantité illimité en déclinaison (par exemple si on parle de rose : j'en ais illimité en bleu, rouge, blanc etc..) MAIS je veux que ma quantité global du produit soit limité.

En somme je vend des toiles limités en nombre. Je peux vendre 200 toiles en tout mais dans plusieurs formats possible. Ainsi sur les 200 toiles vendu d'une toile, je peux en vendre 150 du format 1 et 50 du format 2 ou alors 50 du format 1 et 150 du format 2.... me comprend-tu ?

Il serait très gentil de ta part de m'indiquer ou les quantités des déclinaisons sont engeristrées ?

A tu une idée de la manière e lié ces deux quantités ?

Link to comment
Share on other sites

@widget & Miguelroso : Julien est l'un des membres qui a apporté, et apporte encore, beaucoup à cette communauté. Je ne trouve pas vraiment justifié de le blamer parce qu'il a posé une question... Et pour ce qui est du contenu de ses posts, une simple recherche avancée démontrera qu'il n'a rien à prouver.
Donc merci d'être un brin indulgent. ;-)

Link to comment
Share on other sites

vi bien entendu, pour ce qui est de Miguelroso, je ne le connais pas je pense qu'il a réagit un peu comme moi a la zob. Bien sur j'étais énervé et n'est pas réfléchit non plus.

Si ça peut régler les problèmes, je vous fait à tous un bisous sur les fesses :P

Bonne continuation !!

Link to comment
Share on other sites

grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr m'énerve ce truc


Je croais avoir trouvé la solution et la plus imple du monde d'ailleurs : dans le fichier product.js

a la place du code :

globalQuantity +=quantity;



Je met :

globalQuantity == $product->quantity



Prestashop quelque soit le format sélectionné résonne bien sur la même quantité mais il ne me prend pas en compte mais déclinaisons.... Domage !

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...

Et finalement on fait comment ?

Car je rencontre le même problème, je lis le forum depuis 3 heures et sans succès pour trouver la réponse.

Je vends des produits en série limitée. 1 produit = plusieurs déclinaisons. Je cherche à savoir comment faire pour que la quantité se décompte du produit peu importe la déclinaison sélectionnée.

Merci pour votre aide,

Vyloo

  • Like 1
Link to comment
Share on other sites

Je suis confronté à la même problématique.

J'ai plusieurs déclinaisons, mais pour lequel le produit est le même. Pour info des objets sur lesquels je grave des photos et textes et sur lesquels on peut mettre une ou plusieurs photos. Je trouve ça super lourd d'avoir à régler la quantité de produits sur chaque déclinaisons alors que au final c'est la même information pour chaque déclinaison. Puis au niveau du stock ça fausse tout.

Si quelqu'un avait une solution à ce problème ce serait vraiment sympa. Julien Breux, tu dis que tu vas trouver une solution au 18 mai 2009, est ce que tu as progressé ?

Mon raisonnement est que on devrait avoir une petite case à cocher à coté du champ "quantité" ou l'on pourrait donc choisir de supplanter les quantités des déclinaisons si celles ci sont à zéro par exemple. Ce serait vraiment bien.

Je vais me pencher sur ce problème mais l'aide d'un professionnel comme Monsieur Breux serait vraiment la bienvenu.

Link to comment
Share on other sites

J'ai trouvé ça:

if (Validate::isLoadedObject($product = new Product(intval(Tools::getValue('id_product')))))
           {
               if (!isset($_POST['attribute_quantity']) OR $_POST['attribute_quantity'] == NULL)
                   $this->_errors[] = Tools::displayError('attribute quantity is required');


dans "AdminProduct.php" ligne 363 (prestashop 1.3.7)

Je pense qu'il suffit de modifier la ligne qui envoie une erreur en récupérant la valeur globale de quantité et en l'insérant dans la BDD.

Ainsi il suffit de ne pas remplir le champ "quantité" des déclinaisons pour prendre la valeur globale. Sauf que je viens de m'apercevoir en le disant que ça fausserait toujours le stock, en conséquence il faudrait modifier aussi le comportement lorsque le stock diminue. Que chacune des déclinaisons diminuent aussi.

Qu'en pensez vous ? Une autre solution peut-être ?

Link to comment
Share on other sites

Quelle réactivité ce forum tout de même ! Ça fait bientôt un an que le post est ouvert et personne n'as encore donné un semblant de solution et la team n'est venu que pour défendre Mr Breux...

Moi le message que je reçois c'est démerdez vous on est trop occupé à faire des modules hors de prix...

Bah je vais me démerder alors mais prochain e-commerce je sais pas si je reprendrais PS.

  • Like 1
Link to comment
Share on other sites

Bonjour Mr Besky,

A ce genre de propos, j'ai simplement envie de répondre "Merci d'être passé, passez le coucou à Magento...".

Si vous êtes sur une version 1.4, j'ai peut-être éventuellement une alternative.

Le tout est encore de comprendre ce louche fonctionnement.

Pour rappel, arrêtez moi si je me trompe :

--

Vous souhaitez globaliser la gestion de stock entre un produit et ses déclinaisons.

Autrement dit (et pour l'exemple), dans votre garage, vous avez trois voitures (x1 verte, x2 rouge et x1 bleue) soit x4 voitures.

Lorsqu'un client commande x1 voiture rouge, vous souhaitez que le stock de produit diminue de x1 et donc (si j'ai bien compris) laisser malgré tout le client commander x3 voitures rouges (puisque stock globalisé) !?

--

Merci par avance pour votre réponse.
Non merci par avance pour votre antipathie.

--

Encore juste une chose:

Je vous lance le défit d'ouvrir une boutique physique avec une caisse enregistreuse gratuite (rapport à Prestashop), un TPE gratuit (rapport au module hors de prix) ainsi qu'un lecteur de code barre gratuit (rapport au module hors de prix).
Je commence à saturer des gens qui veulent tout gratuit sous prétexte que c'est hors de prix...
En espèrent au moins que les produits dans votre boutiques ne seront pas hors de prix.
(quitte à ce que vous n'ayez pas de quoi vous nourrir...)

  • Like 1
Link to comment
Share on other sites

Bonjour Julien Breux, c'est assez comique de voir que les seuls fois ou l'on obtiens des réponses c'est quand on commence à s'impatienter et à tenir des propos certes un peu énervée mais, la preuve en est faites, efficace puisqu'on obtiens à ce moment la une réponse.

Pour info je ne vend pas des voitures, ni rouge, ni verte... Je vend des objets que je grave c 'est à dire que je part disons de 40 objets sur chacun d'eux je propose de graver 1, 2 ou 3 photos par exemple.

Donc je modifie le produit d'origine, mais le produit d'origine je n'en vend qu'un, c'est la prestation que je propose comme déclinaison.

Qu'il il ai 1 ou 3 photos de gravés sur le produit je ne vent qu'un objet pas 3. Donc si sur chacune de mes déclinaisons j'ai un stock différent alors que pour autant j'ai un stock commun pour toutes les déclinaisons, bah excusez moi de le dire comme tel mais ça fout la merde.

Exemple:

j'ai 40 médailles.

Un client m'en commande une avec 3 photos.
Je vend une médaille gravée avec trois photos (que je grave moi même bien entendu)

Un autre client me commande une médaille avec 1 photo.
Je vend une médaille sur laquelle je grave 1 photo.

Au final je n'ai vendu que 2 médailles. Il me reste donc 38 médailles

Tandis que si j'utilise le stock des déclinaisons j'ai vendu 4 articles, puisque 3 photos + 1 photo.
Sauf que je ne vend pas de photos moi je vend juste la médaille sur laquelle je grave une/des photos.


Comprenez-vous ce que je veux exprimer ? Je précise que je suis sur la version 1.3.7 ayant essayé de mettre à jour à la 1.4 et ayant constaté quelques petit problèmes de finition assez embêtant.

Petite parenthèse : Croyez le ou non, je comprend tout à fait que certains modules soient payant, c'est tout à fait naturel, il faut bien vivre. Seulement il y a ici des gens qui certes profitent du CMS gratuitement, mais qui peuvent aussi être amené à payer pour des modules et qui demandent de l'aide. Je ne crois pas que ce soit trop demander que d'obtenir une réponse lorsqu’on demande de l'aide sur un forum d'entraide, quand en plus de ça on fait vivre la communauté et on essai sois même d'aider au mieux ceux qui en ont besoin. C'est une notion toute bête de service à la clientèle qui si elle est satisfaite par le support de vos produits, ne demandera pas mieux que de payer pour des modules fonctionnel et avec un support satisfaisant. Moi je ne demande que ça, seulement quand je lis le forum, excusez moi mais ça ne me donne pas très envie d'acheter des modules. J'ai vu l'exemple de personnes qui sont en rade avec des modules développés par la team et qui n’obtiennent aucune réponse durant plusieurs semaines voir plusieurs mois. Encore une fois je ne dis pas que c'est facile de répondre à tous et d'aider tout le monde, mais une simple réponse pour préciser que vous vous occupez du problème et que vous proposerez une mise à jour très bientôt serait suffisante.Fin de la parenthèse

Merci de votre réponse et de votre aide.

  • Like 1
Link to comment
Share on other sites

Bonjour Julien Breux, c'est assez comique de voir que les seuls fois ou l'on obtiens des réponses c'est quand on commence à s'impatienter et à tenir des propos certes un peu énervée mais, la preuve en est faites, efficace puisqu'on obtiens à ce moment la une réponse.


Allez savoir pourquoi certaines personnes poussent des coups de gueules après des citoyens ordinaires... comprenez pourquoi certains ne reviennent pas sur ce forum par peur. Comprenez pourquoi l'idée de monter un forum professionnel alternatif est alléchant pour éviter de se faire engueuler sans cesse pour des problèmes personnels.

Ou a t'on vu qu'il fallait engueuler le boulanger du coin pour avoir la recette de la baguette Française ?
Ou a t'on vu qu'il fallait engueuler le pompier du coin pour éteindre un feu URGEMMENT alors qu'il ne l'a pas allumé ?

Des métaphores certes, mais réelles face à certains membres de cette communauté...


Pour info je ne vend pas des voitures, ni rouge, ni verte... Je vend des objets que je grave c 'est à dire que je part disons de 40 objets sur chacun d'eux je propose de graver 1, 2 ou 3 photos par exemple.


Pourquoi les voitures ? parce que c'est un exemple simple par rapport à ce que vous souhaitez faire... et surtout... qu'il n'y a pas que vous que ce sujet peut intéresser...


Donc je modifie le produit d'origine, mais le produit d'origine je n'en vend qu'un, c'est la prestation que je propose comme déclinaison.

Qu'il il ai 1 ou 3 photos de gravés sur le produit je ne vent qu'un objet pas 3. Donc si sur chacune de mes déclinaisons j'ai un stock différent alors que pour autant j'ai un stock commun pour toutes les déclinaisons, bah excusez moi de le dire comme tel mais ça fout la merde.

Exemple:

j'ai 40 médailles.

Un client m'en commande une avec 3 photos.
Je vend une médaille gravée avec trois photos (que je grave moi même bien entendu)

Un autre client me commande une médaille avec 1 photo.
Je vend une médaille sur laquelle je grave 1 photo.

Au final je n'ai vendu que 2 médailles. Il me reste donc 38 médailles

Tandis que si j'utilise le stock des déclinaisons j'ai vendu 4 articles, puisque 3 photos + 1 photo.
Sauf que je ne vend pas de photos moi je vend juste la médaille sur laquelle je grave une/des photos.


Dans ces cas là, c'est un champs personnalisé : Nombre de photos
Avec une liste déroulante de 1 à 3 ... à vous de mettre plusieurs photos dans le produit et donc de ne faire aucune déclinaison.
Pour le coup, ce n'est pas une logique de stock applicable à autre chose qu'a votre activité puisque vous êtes parti dans la mauvaise direction.


Comprenez-vous ce que je veux exprimer ? Je précise que je suis sur la version 1.3.7 ayant essayé de mettre à jour à la 1.4 et ayant constaté quelques petit problèmes de finition assez embêtant.


Là dessus, je vous comprends parfaitement...


Petite parenthèse : Croyez le ou non, je comprend tout à fait que certains modules soient payant, c'est tout à fait naturel, il faut bien vivre. Seulement il y a ici des gens qui certes profitent du CMS gratuitement, mais qui peuvent aussi être amené à payer pour des modules et qui demandent de l'aide. Je ne crois pas que ce soit trop demander que d'obtenir une réponse lorsqu’on demande de l'aide sur un forum d'entraide, quand en plus de ça on fait vivre la communauté et on essai sois même d'aider au mieux ceux qui en ont besoin. C'est une notion toute bête de service à la clientèle qui si elle est satisfaite par le support de vos produits, ne demandera pas mieux que de payer pour des modules fonctionnel et avec un support satisfaisant. Moi je ne demande que ça, seulement quand je lis le forum, excusez moi mais ça ne me donne pas très envie d'acheter des modules. J'ai vu l'exemple de personnes qui sont en rade avec des modules développés par la team et qui n’obtiennent aucune réponse durant plusieurs semaines voir plusieurs mois. Encore une fois je ne dis pas que c'est facile de répondre à tous et d'aider tout le monde, mais une simple réponse pour préciser que vous vous occupez du problème et que vous proposerez une mise à jour très bientôt serait suffisante.Fin de la parenthèse

Merci de votre réponse et de votre aide.


Hélas, je comprends parfaitement.

Ce que je ne comprends pas, c'est le poste ci-dessus ! (par jmlf44)

Ou il est écrit que nous devons (pour les meilleurs d'entre nous) répondre obligatoirement et instantanément ?

On fait ce que l'on peut !
Link to comment
Share on other sites

Ce n'est je pense malheureusement facile pour personne et il faut que d'un coté comme de l'autre des efforts soient fait et croyez moi bien que si vous avez besoin d'aide pour des choses à ma porté, comme de rassurer les utilisateurs et transmettre les problèmes les plus importants aux personnes concernées, je serais ravis d'aider la team à satisfaire ses clients (bénévolement bien entendu).

En ce qui concerne notre problème. Vous avez en effet compris le fonctionnement, mais qui ne s'applique absolument pas au voitures, à moins bien sur de peindre la voiture après la commande.

J'utilise en effet les champs personnalisés pour que mes clients puissent m'envoyer les photos, cela dit je souhaite tout de même impacter le prix en fonction du nombre de photos que souhaite la personne. Pour cela il ne me semble pas qu'il y ai d'autres solutions que d'utiliser les déclinaisons (je peux me tromper).

Seulement le problème comme je l'ai expliqué plus haut c'est que j'aurais besoin que quand on me commande un produit, que ce soit avec 1 ou 3 photos, cela change le stock du produit dans sa globalité et non pas seulement de la déclinaison.

Pour info je viens de m'apercevoir que je m'étais tromper tout à l'heure en disant que cela vidait le stock de 3 articles, ce n'est absolument pas ça. Ça me vide effectivement de 1 article mais uniquement de la déclinaison "3 photos" et non pas du produit brut.

Veuillez m'excuser pour cette méprise qui embrouille encore plus les choses :)

Connaissez vous une solution, simplement pour faire en sorte de ne plus utiliser le stock des déclinaisons mais uniquement le stock du produit brut, sans pour autant se passer des déclinaisons ?

Merci.

(ps: J'ai renvoyé tous les posts que j'ai trouvé sur le sujet vers celui-ci, ce qui pourra sans doute faciliter le travail de chacun.)

Link to comment
Share on other sites

Au tout début de Prestashop, il y a 2 ans, avant PS 1 j'ai suggéré à la Team que l'on puisse gérer le stock des déclinaisons de différentes facons: avec ou sans sans incidence sur le stock comme c'est le cas pour tous les objets personnalisés avec gravure ou impression.... mais bon cette suggestion est vite passée aux oubliettes. Il faudra peut attendre quelques années ou un module salvateur :cheese:

Link to comment
Share on other sites

Je pense que c'est cette partie de code qui nous intéresse. En modifiant cela je pense qu'il serait possible de faire en sorte d'activer ou non la quantité dans les déclinaisons.

Ligne 1426 à 1443 du fichier "AdminProduct.php"

   function displayFormInformations($obj, $currency)
   {
       parent::displayForm();
       global $currentIndex, $cookie;
       $iso = Language::getIsoById(intval($cookie->id_lang));

       $qty_state = 'readonly';
       $qty = Attribute::getAttributeQty($this->getFieldValue($obj, 'id_product'));
       if ($qty === false) {
           if (Validate::isLoadedObject($obj))
               $qty = $this->getFieldValue($obj, 'quantity');
           else
               $qty = 1;
           $qty_state = '';
       }
       $cover = Product::getCover($obj->id);
       $this->_applyTaxToEcotax($obj);
       $link = new Link();



Maintenant à savoir comment la modifier c'est une autre histoire.

Je pense qu'il suffirait de rajouter une condition comme:

if ($attQty == $NULL) && (isset($case-a-cocher))
{
utiliser la valeur de $quantity_state $qty
}

avec une case à cocher (checkbox) a coté du champ "quantité" sur la fiche du produit. Puis faudrait faire environs la même manip sur le FO.

Donc si la valeur de la quantité de la déclinaison est vide et que la case est cochée, on utilise la valeur quantité globale.

Faudrait aussi enlever le code qui remplis automatiquement la case quantité des déclinaisons.

Qu'en pensez vous ?

  • Like 1
Link to comment
Share on other sites

re bonjour,

Besky, merci pour ta recherche et je trouve l'idée très bonne;

Si la quantité des déclinaisons est de 0, que prestashop prenne par défaut celle de la fiche produit;

Je vais voir avec un ami développeur et si il trouve je reviendrai bien sur partager sa solution.

Moi concrètement si je ne trouve pas de réponse, je vais être obligée de refaire mon site sous une autre plateforme car je ne vends qu'en série limitée sous plusieurs déclinaisons... :-(

  • Like 1
Link to comment
Share on other sites

Attention, il ne faut surtout pas prendre la valeur 0 mais la valeur $null c'est à dire que le champ n'est pas remplis, sinon quand le stock d'une déclinaison sera épuisé ça prendra automatiquement le stock global et du coup ça n'avertira pas le client que le stock est épuisé.

C'est un détail mais de taille quand même :)

Link to comment
Share on other sites

Je veux pas jeter d'huile sur le feu, mais il y a des propos enflammés ici que j'ai du mal à comprendre.
Ce que je crois lire clairement, c'est que si on ne répond pas à une question, alors peu importe le nombre de personnes qu'on a pu aider, forcément on est merdique.
Je ne connais pas une personne ayant une boutique prestashop qui n'utilise pas un des modules gratuits de julien.
Par ailleurs je ne vois pas en quoi s'enflammer parce qu'on a un besoin qui ne trouve pas de réponse fait avancer les choses.
Ca remonte le post certes, mais au vu de certaines phrases on a envie de passer son chemin et sauter au post suivant , franchement, il faut le comprendre.
Force est de constater qu'il ne suffit pas de prendre sur son temps libre pour en être remercié.
J'ai fais mes armes sur prestashop en m'appuyant sur les tutoriels de julien et je lui en suis reconnaissant.

C'est sûr ça fera un de plus qui ne postera ici que pour manifester sa désapprobation. (Non pour défendre Julien Breux, qui n'en a absolument pas besoin).
Sauf que je ne suis ni de la team , ni partenaire, et que j'ai le sentiment désagréable que je pourrais tout a fait lire un jour ce genre de commentaire malgré tout.
Je me serais mal senti de ne pas donner mon avis. C'est fait.
Il ne vise personne , ce topic n'est qu'un exemple de ce qui peut arriver de n'importe quel autre topic et de n'importe quelle autre personne.

Link to comment
Share on other sites

Je crois que personne ne doute de l'implication et de l'aide apporté par Julien Breux et d'autres à de nombreuses personnes. Je suis tout à fait conscient que de nombreuses personnes offrent de l'aide et qui plus est précieuse à beaucoup de personnes qui en ont besoin.

Ceci dit un coup de gueule n'est pas prononcé dans le but d'accuser qui que ce soit, ni de dire que personne ne se préoccupe d'aider les autres. Seulement soulever un problème qu’apparemment nous sommes nombreux à rencontrer, celui de ne pas trouver de réponse dont nous avons besoin à des questions et des problèmes que nous essayons de résoudre, non pas seulement pour nous, mais pour la communauté et pour améliorer Prestashop.

N'oublions pas que c'est justement cette communauté qui permet aux développeurs de Prestashop d’obtenir de nouvelles idées, des remontés de problèmes et même certaines résolutions à ces problèmes. Si cette communauté se sent abandonnée quand elle a un problème à résoudre, les gens finiront par abandonner et ce n'est pas seulement les commerçants qui utilisent PS qui en pâtirons, mais aussi la richesse de ce CMS qui, il faut bien le reconnaitre est un des plus abordables et des mieux conçus.

Sur ce je pense qu'il serait préférable pour discuter sainement de tout cela, d'ouvrir un sujet consacré aux améliorations que les utilisateurs de ce forum souhaiteraient concernant la prise en charge de leurs demandes et de leurs problèmes. Car pour l'instant le problème qui nous concerne n'est malheureusement toujours pas résolu et ce n'est pas cette discussion qui le résoudra.

Très cordialement,
Besky

Link to comment
Share on other sites

vyloo je vais aussi bosser dessus voir ce que je peux faire, de toute façon j'en ai besoin aussi. Ceci dit j'aurais bien aimé avoir un avis sur ce que j'ai dis avant de Julien Breux ou même Broceliande si ça ne vous dérange pas :)

Merci.

Link to comment
Share on other sites

Je ne vois pas d'inconvénient à te donner mon avis , même s'il ne vaut pas forcément celui de julien.

Pour moi tu cherches du mauvais côté, en tout cas pas dans le bon ordre (ce n'est pas une critique mais plus une analyse rapide de la problèmatique, tu vas me comprendre...).

En effet tu commences par l'admin lorsque tu n'es pas certain d'être en mesure d'obtenir le comportement souhaité en back office.
Pourtant , pour cette première phase , tu as déja les données dont tu as besoin , puisque sauf erreur de ma part , déclinaisons ou pas , il est bien toujours possible de renseigne la quantité stock du produit principal, non ?.
Il n'est donc pas utile de modifier quoique ce soit du côté de l'admin et encore moins des déclinaisons si on souhaite justement ignorer ces champs. Avoir les champs quantité alignés sur la quantité 'parente' dans le BO est juste un aspect cosmétique.

Pour ma part , je commencerais donc par effectuer une recherche d'occurence sur tous les fichiers 'hors dossier admin' afin d'isoler le terme oosp , car (presque?) partout ou le code devra décider si le produit est commandable ou pas , on retrouvera cette variable sous une forme ou une autre.
C'est ici qu'il faudra intervenir et modifier le cas de figure/bloc if où le produit a des attributs afin de prendre en compte une autre constante ou valeur de configuration par exemple USE_NATIVE_STOCK_QTY , afin de décider si on se base sur le stock natif ou par attributs.

Il me semble que c'est amplement suffisant. Mais ça représente un travail long et fastidieux , et de la modification de source partout.

Link to comment
Share on other sites

Merci de ton aide Broceliande.

En fait je crois au contraire que pour rendre possible les deux méthodes (utilisation du stock globale et du stock par déclinaison) il est nécessaire de modifier le BO (je peux me tromper)

Pour info lorsque des déclinaisons existe il n'est plus possible d'éditer la quantité globale du produit car le champ est mis en "readonly"

Ceci dit les informations sur les variables vont m'être bien utiles et je t'en remercie car je ne les connaissais pas.

Sur le fait que ça représente un travail long et fastidieux je te rejoins car en effet cela représente pas mal de travail mais c'est tout de même mieux que de passer à un autre CMS alors qu'on a déjà tout bien configuré notre boutique :)

Après il est certain qu'il ne faudra pas compter sur les mises à jour car malheureusement je ne sais pas faire de module et je doute qu'il soit possible dans ce cas de le faire (encore une fois je peux me tromper).

En tous cas merci de ton aide Broceliande.

edit: j'avais pas vu le second post alors merci encore pour ton aide sur les pages à modifier :)

Link to comment
Share on other sites

Par contre je ne comprend pas en quoi la gestion de la disponibilité du stock m’intéresse car ce que je veux moi c'est que quand on coche la case "utiliser quantité globale si quantité déclinaison non remplis" qu'il prenne le nombre inscrit dans la quantité globale du produit au lieux de prendre celle de la déclinaison, donc après, la disponibilité du produit se réglera sur cette donnée, non ?

En gros le fonctionnement que je veux (pour être plus clair) c'est :

if (!isset(AttQty)) OR (AttQty == $null) { echo $GlobalQuantity }

(ce ne sont pas forcément les bonnes variables)

Donc je ne crois pas qu'il faille agir sur l'affichage de la rupture de stock, non ?

Link to comment
Share on other sites

J'ai l'impression que c'est vachement plus de taff que je ne l'imaginais.

Faut que je trouve un moyen de simplifier tout ça

En admettant que la case à cocher soit plutôt lors de la création d'une combinaison ce serait peut-être plus simple. Dans ce cas la j'ajoute un champ dans la table qui s'occupe des déclinaisons dans la BDD, du genre "use_global_qty" avec comme valeur 1 ou 0 .

Dans ce cas je n'aurais plus qu'a empêcher que le champ de quantité de produit soit mis en "readonly" et peut-être juste modifier le thème pour que quand le champ "use_global_qty" de la table en question est à 1 ça affiche la quantité globale de produits et non pas celle des déclinaisons.

De plus à ma connaissance je n'ai aucun module qui gère les quantités de produits. Après il est vrai que ça fonctionnerais pas pour tout le monde, notamment ceux qui ont des modules qui utilisent la quantité de produits. Cela dit j'ai bien peur de ne pas être assez doué pour le moment pour faire toutes ces modifications, sans compter que ça me prendrait énormément de temps.

En attendant donc je vais faire comme ça, sauf contre indication de ta part broceliande, ainsi ça pourra au moins aider quelques personnes et plus tard quand j'aurais plus de temps j'essayerais de faire ça plus en profondeur.

Link to comment
Share on other sites

Pas bête tout ça, mais dans l'hypothèse ou l'on voudrait tout de même pouvoir utiliser les quantités des déclinaisons pour certaines, aurais tu (je me permet) une solution pour ça s'il te plais ?

Link to comment
Share on other sites

Bien entendu !

Tu aurai les trois options suivantes :

- [boîte de sélection] Utiliser pour tout les produits | Utiliser pour les produits suivant | Ne pas utiliser pour les produits suivants
- [Champs Text] Identifiants des produits. ^^

Ainsi, tu peux à peu prêt TOUT faire.

  • Like 1
Link to comment
Share on other sites

je suppose que c'est cela qu'on appel la parole de la sagesse et de l’expérience :D

Bien joué :)

Faut juste que je me renseigne sur la création de modules. Aurais-tu de bonnes sources pour apprendre à créer un module comme il faut par hasard ? Je me suis déjà renseigné mais j'ai pas trouvé grand chose qui puisse me convenir :-/

Link to comment
Share on other sites

/!\ Ceci dit, je mets juste un bémol sur le fait que lorsque tu passera en 1.4, cela faussera tes statistiques... car tu n'as pas 3 * X produits, mais bien X.

Pour créer un module, il y'à mon tutoriel ici : http://www.julien-breux.com/2009/08/22/tutoriel-prestashop-creer-un-module-avec-onglet/

Le site est en réorganisation pour mieux aider la communauté ;)

Link to comment
Share on other sites

Ok merci Julien c'est sympa de t'être creusé la tête je vais regarder ton tutoriel et si jamais j'ai des questions je te les poserais.

En ce qui concerne la v1.4 je verrais le moment voulut je pense.

Encore merci :)

Link to comment
Share on other sites

Julien t'a tout donné ...

J'ajoute juste que tu peux prévoir tout ceci dans un module proprement installable et désinstallable , sans toucher au core, ni même à l'admin, car il me semble que tu n'est pas le seul à vouloir cette fonctionnalité.

Dans l'install de ton module , tu peux via une reqûete toute simple remplacer le tab présent dans /admin/tab par le tiens , modifié , et qui charge une copie du code javascript également modifiée.
Il faudra juste coder l'uninstall pour remettre l'admin d'origine. Mais tu seras forcé de faire évoluer ce fichier avec les versions , pour pouvoir tourner avec les mises à jour.

Je précise aussi que les hooks cités par julien sont choisis à bon escient :
newOrder pour décompter le stock des attributs si nécessaire
updateOrderStatus en cas d'annulation par exemple , pour réintégrer.

Seulement il faudra que tu tiennes compte de ce que fais déja prestashop dans ces cas précis.
Ce comportement varie d'ailleurs entre la 1.3 et la 1.4

Link to comment
Share on other sites

Merci de ces infos Julien, cependant je vois qu'il existe un hook (si j'ai bien compris ce qu'est un hook c'est le point d'accroche dans lequel va se trouver le module ?) qui s'appel "UpdateQuantity". Est-ce que ce n'est pas plutôt celui-ci qu'il conviendrait d'utiliser ?

Autant pour moi à la lecture de la description de ce hook je vois que je me suis trompé.

Edit: je n'avais pas vu ton message Broceliande j'y répond donc en édition.

Merci de toutes ces infos Broceliande.

Si j'ai bien compris, dans la fonction d'installation de mon module, je sauvegarde le fichier admin/tab/AdminProduct.php puis je le remplace par le mien qui sera la version modifié à ma sauce.

Dans cette version modifiée, j'ai simplement à rajouter un champ "select" avec mes options suivi d'un champ "text" pour deux des options ou les utilisateurs n'auraient qu'a marquer les identifiants des déclinaisons (et non des produits comme le disait Julien de sorte à permettre qu'on puisse activer la quantité de certaines déclinaisons pour chacun des produits) séparés par des virgules.

Reste à ajouter un identifiant pour chaque déclinaison dans le tableau des déclinaisons (le numéro doit déjà être utilisé dans la bdd) pour que l'utilisateur sache quelle déclinaison est associée à tel ou tel identifiant.

Ensuite je récupère les variables renvoyées par mon select et mon champs text si besoin est. Et après par contre je suis perdu... :-/

Je crois que c'est l'histoire des hook que j'ai pas très bien compris. je vais essayer de me documenter un peu sur ces engins la ^^
Link to comment
Share on other sites

Lol, ça va plus vite pour toi que pour moi ^^

Pour l'instant je vais essayer de le faire moi même quand même mais ça servira toujours à d'autres qui n'ont pas forcément envie de se prendre la tête comme moi :)

Ça me plairait vraiment de pouvoir créer et proposer des modules à la communauté, car j'ai pas mal d'idée mais ce qui est chiant c'est que je n'ai pas la possibilité de les mettre en place par moi même à cause de mon manque de compétence.

Je vais donc persévérer et en attendant d'autres vont surement se faire un plaisir de tester ton module. :)

Link to comment
Share on other sites

Je suis certain que je ne suis pas le seul intéressé pour la v1.3 je ne suis pas le seul à y être retourné j'en ai bien peur, et puis rien ne t'empêche de le développer pour la v1.4 ça intéressera surement plein de monde :)

Tu l'a pas mis en test quelque part des fois que je puisse voir comment il fonctionne ?

De plus mon banquier aime pas trop que je creuse mon découvert malgré que je constate le prix largement modéré de ce module :)

Link to comment
Share on other sites

Merci bien

Je te tiens au courant si j'ai quelques question concernant la réalisation de mon module un peu plus complet que ca.

En gros je voudrais arriver à faire en sorte qu'on puisse pour un même produit définir certaines déclinaisons qui auraient leur stock perso et d'autres qui n'auraient pas du tout de stock au final.

Comme ça ça permettrait d'avoir des déclinaisons du genre:

- mugg + rouge/bleu/vert (déclinaisons avec un stock perso)

- mugg + bleu + 1 photo (qui enlèverais du stock au mugg bleu sans gérer de stock pour la photo)

- mugg + 1 photo (qui enlèverait du stock uniquement au produit de base)

Je sais je change un peu de principe mais je trouve ça vachement mieux de pouvoir combiner des combinaisons et de n'agir que sur un stock.

En plus si ça se trouve c'est moins compliqué (enfin je suppose ^^ ).

Qu'en penses-tu ?

En tous cas pour aujourd'hui j’arrête car j'ai les yeux qui vont exploser sans parler de mon pauvre cerveau ^^

Link to comment
Share on other sites

Bonsoir à tous,

Un grand merci à Julien, Brocéliande, Besky et tous ceux qui ont participés, activement ou pas, à ce nouveau module.
Je suis persuadé qu’il va être très utile à ceux qui, comme moi, commençaient à déprimer devant leur écran et leur problème qui paraissait insurmontable !!!
Je m’empresse de piller quelques troncs pour l’essayer.

JMLF

Link to comment
Share on other sites

Woua je suis impressionnée, 2 jours sont passés.... 3 amis développeurs m'ont déconseillé de toucher au code source....que magento avait la même limite...je commençais à désespérer !

Et j'arrive, vous avez DEJA fait un module !!!! un GRAND GRAND MERCI
j'achète tout de suite !

A +

Vyloo

Link to comment
Share on other sites

Bonjour, est-ce que ce module marche sur la version 1.4 ? Je n'ai pas l'impression mais au cas ou...
Et autre question, si j'ai 90 produits et 3 déclinaisons je dois mettre 90 pour chaque déclinaison et mon stock sera de 90 ou il sera de 180 ?
Merci de vos réponses

Link to comment
Share on other sites

Bonjour Katzele, ce module n'est malheureusement pas compatible avec les v1.4 mais je suis certain que Julien Breux est déjà dessus. Sinon le principe si je ne me trompe c'est de mettre 90 à chacune des déclinaisons et quand on te commande un produit ca enlève 1 unité de chaque déclinaison. Ton stock sera donc de 90 produits

Link to comment
Share on other sites

Salut,

Je viens d'installer le module.

Je l'ai installé, configuré avec "Utiliser avec touS (avec un s et non un t) les produits" (petite faute d'orthographe au passage ;-) ) puis j'ai créé une fiche produit, avec donc mes 3 déclinaisons et je ne vois aucun changement.

Je dois certainement mal m'y prendre, Pouvez-vous m'aider s'il vous plait ?

Pour rappel :
1 produit est vendu en série limitée, il existe en 3 formats (donc 3 déclinaisons). Chaque déclinaison a un prix différent. Il faut donc que la quantité du produit se décompte quelque soit le format (ou déclinaison) choisie.

Merci,

A+
Vyloo

Link to comment
Share on other sites

Salut Besky,

Oui toutes mes déclinaisons ont des quantités identiques mais ça s'additionne toujours :-(

On est bien d'accord que ce module me permet de faire en sorte que la quantité soit liée au produit et non aux déclinaisons ? j'ai un doute :-/

A+

Vyloo

Link to comment
Share on other sites

Non cela permet juste de décompter les déclinaisons toutes ensemble.

En gros si tu a trois déclinaisons de 40 produits chacune.

Quand tu commande une déclinaisons, toutes tes déclinaisons sont décomptées d'un produit donc tu te retrouve avec 39 produits dans chacune des déclinaisons.

Je bosse sur un module qui permettra lui de faire en sorte d'utiliser uniquement le stock global ou bien le stock d'une déclinaison mais ça va prendre un peu de temps. En attendant ce module est pour ceux qui ont besoin rapidement de mettre ça en place.

Link to comment
Share on other sites

Bonsoir,

Je vais avoir besoin de quelques renseignements afin de continuer le développement du module. Bien entendu si je vous pose ces questions ici c'est que j'ai cherché avant sur notre amis google et sur le forum sans succès. Peut-être ai-je mal cherché, auquel cas je vous serais reconnaissant de m'indiquer les urls ou je peux avoir ces renseignements.

J'ai décidé au final de modifier grâce à mon module la tab "AdminAttributesGroups" dans laquelle je vais rajouter un champ "selectbox" qui permettra de choisir pour chaque groupe de déclinaisons, si on veut utiliser le stock global ou bien un stock propre à chaque déclinaison.

Je rajouterais donc un champ à la table "ps_attribute_group" pour indiquer laquelle des deux options est choisi pour chaque groupe de déclinaisons.

Voici les questions dont je n'arrive pas à trouver les réponses:

Premièrement j'aimerais modifier certaines fonctions présentes dans la classe "AttributeGoup.php" hors je souhaite bien entendu la modifier ou la supplanter par mon module à l'installation de celui-ci. Est-ce qu'il me suffit de placer la fonction modifiée dans mon module pour qu'elle supplante celle d'origine ou bien faut-il éditer ou remplacer directement la page php et si oui, comment ?

Deuxièmement, j'ai bien compris qu'il fallait grâce à un "replace()" modifier la valeur du champ "class_name" dans la table "ps_tab" pour faire en sorte que mon fichier modifié de la tab "AdminAttributesGroups" soit affiché à la place du fichier d'origine. Cependant, dois-je déplacer obligatoirement mon fichier dans le dossier "Admintab" et si oui, comment ? ou bien existe-t-il ou manière pour faire en sorte que la BDD aille chercher mon fichier dans le dossier de mon module ?

J'espère avoir été clair et que je ne vous embrouille pas trop, sinon dites le moi j'essaierais d'améliorer cela.

Soyons clair, je ne demande pas de solution toute faite mais simplement un petit coup de pouce de votre part car je n'ai pas réussi à trouver moi même ces réponses.

Merci par avance de votre aide qui je l'espère me sera précieuse. :)

Link to comment
Share on other sites

Bonjour,

Bon et bien je vais continuer à chercher en attendant qu'un développeur compatissant veuille bien répondre à ma question.

Si jamais ce que je demande est impossible à réaliser n'hésitez pas à le dire que je n'insiste pas trop longtemps.

Merci.

Link to comment
Share on other sites

Bon j'ai trouvé une piste pour copier/coller le fichier de mon module vers admin/tab:

if(!file_exists('../module/monmodule/AdminAttributesGroupsMonmodule.php'))
   copy('../modules/monmodule/AdminAttributesGroupsMonmodule.php', '../admin/tab/AdminAttributesGroupsMonmodule.php'); 



Qu'en pensez-vous ?

Merci.

Link to comment
Share on other sites

Bon pour l'installation et la désinstallation j'ai codé ça:

public function install()
{
 if(!parent::install()
   || $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
           SET `class_name` = `AdminAttributesGroupsGlobalQuantity`
           WHERE `id_tab` = 11 ';
       Db::getInstance()->Execute($sql);
   || if(!file_exists('../module/globalquantity/AdminAttributesGroupsGlobalQuantity.php'))
       copy('../modules/monmodule/AdminAttributesGroupsGlobalQuantity.php', '../admin/tab/AdminAttributesGroupsGlobalQuantity.php');
   return false;
 return true;
}

public function uninstall()
{
 if (!parent::uninstall()
   || $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
           SET `class_name` = `AdminAttributesGroups`
           WHERE `id_tab` = 11 ';
       Db::getInstance()->Execute($sql);
   || if(!file_exists('../admin/tab/AdminAttributesGroupsGlobalQuantity.php'))
       unlink('../admin/tab/AdminAttributesGroupsGlobalQuantity.php');)
    return false;
}



Pour info dans l'install j'ai pas spécifié de hook car à mon sens vu que mon module ne va agir qu'en arrière plan je ne vois pas pourquoi je devrais lui attribuer un hook d'affichage. Je me trompe peut-être ceci-dit.

Sans se moquer quelqu'un peut me dire ce que ça vaut s'il vous plais ?

Merci.

Link to comment
Share on other sites

Ca ne marche pas n'est pas ?


    || $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
           SET `class_name` = `AdminAttributesGroupsGlobalQuantity`
           WHERE `id_tab` = 11 ';
       Db::getInstance()->Execute($sql);



Déja ça c'est pas bon, tu mets des instructions dans un Test

Il faut mettre ton affectation $sql en dehors du test

$sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
           SET `class_name` = `AdminAttributesGroupsGlobalQuantity`
           WHERE `id_tab` = 11 ';



ça donne plutôt :

public function install()
{
 $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
           SET `class_name` = `AdminAttributesGroupsGlobalQuantity`
           WHERE `id_tab` = 11 ';

 if(!parent::install()
   || !Db::getInstance()->Execute($sql)        
   || ....
}



oups j'ai pas vu la suite : même punition... tu rajoute un if .
Pareil pour uninstall :(
Sorry mais en l'état ce n'est pas du tout du code valide :s

Link to comment
Share on other sites

Merci Broceliande,

je vais suivre tes indications.

Quand tu dis que ce n'est pas du tout du code valide tu parle de ma version ou même une fois que tu l'a corrigé ?

Je vais corrigé tout ça et essayer de faire mieux par la suite.

Merci encore de ton aide, j'en ai grand besoin apparemment ^^

Link to comment
Share on other sites

Voila j'ai donc corrigé tout ça.

J'ai décelé quelques erreurs auxquelles je n'avais pas fait gaffe comme "if(!file_exists..." dans la désinstallation au lieu de "if(file_exists..."

   public function install()
   {
       $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
               SET `class_name` = `AdminAttributesGroupsGlobalQuantity`
               WHERE `id_tab` = 11 ';

       if(!parent::install()
       || !Db::getInstance()->Execute($sql);
       || if(!file_exists('../admin/tab/AdminAttributesGroupsGlobalQuantity.php'))
           copy('../modules/monmodule/AdminAttributesGroupsGlobalQuantity.php', '../admin/tab/AdminAttributesGroupsGlobalQuantity.php');
       return false;
     return true;
   }

   public function uninstall()
   {
       $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
               SET `class_name` = `AdminAttributesGroups`
               WHERE `id_tab` = 11 ';

       if (!parent::uninstall()
       || !Db::getInstance()->Execute($sql);
       || if(file_exists('../admin/tab/AdminAttributesGroupsGlobalQuantity.php'))
           unlink('../admin/tab/AdminAttributesGroupsGlobalQuantity.php')
       return false;
   }



Voila j'espère que c'est mieux comme ça. Je testerais ça demain sur une version de test de PS. Si ça fonctionne je ferais de même avec les classes que je dois modifier, malheureusement cette méthode veut dire que la mise à jour sera très problématique mais n'existant à priori aucune méthode pour surcharger les classes sur la v1.3 je ne vois pas d'autre alternative :-(

Merci de votre aide :)

Link to comment
Share on other sites

rogntudju... :coolgrin:

Toujours du code non compatible avec une condition et des ; en prime , il en faut pas dans un test. tes paths sont faux.

Je salue ta volonté, crois moi, d'apprendre et réaliser, plutôt que d'attendre stoïquement comme certain que 'ça tombe'. Une telle énergie c'est rare et ça fait plaisir à voir.
Seulement besky à un moment il va falloir t'acheter un bouquin php ;) (je suis sûr qu'on en a tous acheté un un jour!), on peut pas reprendre toutes les lignes de code que tu postes.
Je t'assure que tu vas trouver un bon bouquin pas trop cher dans n'importe quel fn.c . Tu auras une bonne référence pour appuyer tes efforts. Et surtout le prends pas mal, ce n'est pas un jugement mais un conseil avisé.
Un bouquin de ce type ,ça se lit vite fait , d'abord, avant de commencer à coder, puis ça et on a ça sous la main quand on a un doute.

public function install()
   {
       $sql = 'UPDATE `' . _DB_PREFIX_ . 'tab` 
               SET `class_name` = `AdminAttributesGroupsGlobalQuantity`
               WHERE `id_tab` = 11 ';

      if(!parent::install() || !Db::getInstance()->Execute($sql)) return false;

      if(!file_exists('../admin/tab/AdminAttributesGroupsGlobalQuantity.php')) return false;
      if(!copy('/modules/monmodule/AdminAttributesGroupsGlobalQuantity.php', '/admin/tab/AdminAttributesGroupsGlobalQuantity.php') return false;
     return true;
   }



C'est un peu mieux , en tout cas ça ne devrait pas causer d'erreur.
Bon et encore les paths devraient plutôt partir de la constante _FILE_ :)

Link to comment
Share on other sites

Bon...

J'en avais marre d'avancer à l'aveugle sans savoir comment PS décrémentais ses quantités, j'ai donc entrepris de charcuter PS (désolé pour ses créateurs). À force de charcuter j'ai fini par comprendre à peu près comment fonctionne tout ça et j'ai réussi à faire à peu près ce que je voulais (mais alors la faut pas compter sur les mises à jour :-p ).

Maintenant que j'ai réussi comme ça, je vais affiner un peu le truc et par la suite je pourrais plus aisément faire un module pour faire ça proprement.

Je vous transmettrais la procédure pour modifier le cœur de PS afin de faire en sorte que lors d'une commande ce soit le stock global du produit qui soit décrémenté (décompté de 'nombre-de-produits-achetés'), mais avant ça il faut que je mette la procédure au propre, car pour l'instant c'est une vrai boucherie, j'ai certainement enlevé des choses qu'il ne fallait pas enlever, ce qui pourrait créer de graves problèmes à vos boutiques, donc n'insistez pas pour avoir la "procédure" tel qu'elle.

Un peu de patience donc je progresse doucement.

Cordialement,
Besky

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

Je rencontre aujourd'hui la même problématique que celle évoquée dans ce fil.
Dans mon cas, il s'agit d'une tentative d'adaptation de Prestashop en Billetterie.

Pour un spectacle donné, le prix d'un billet dépend de l'âge de l'acheteur (3 tranches d'âge).
Je souhaite essayer de vendre 150 places pour ce spectacle par Prestashop, peu importe la tranche d'âge dans laquelle les acheteurs se situeront.

J'ai donc créé un produit-spectacle, puis des déclinaisons de ce produit (autant que de tranches d'âge de tarification).
Avec le système actuel, je n'ai d'autre choix que de mettre une quantité de 50 pour chaque déclinaison.
Avec un système rêvé, il serait possible de mettre 150 places en global pour les 3 déclinaisons.

Voilà, c'était pour rajouter encore un argument de pertinence pour un module "même quantité pour déclinaisons".

Merci de m'avoir lu.

Link to comment
Share on other sites

  • 3 months later...

Bonjour

 

Moi aussi j'ai un problème lié à la quantité globale et la quantité des déclinaisons.

j'ai ajouté pour mes produits le tri décroissant par quantité en stock comme tri par défaut et ça marche bien mais le problème qui se pose pour certains articles qui sont commandé récemment.

lorsque un produit a un seul article en stock et le client commande ce dernier article => le stock passe a 0 (jusque là c'est logique) mais dans la liste en FO le produit reste en stock (stock épuisé n'est pas affichée), je vide le cahe navigateur, le fichier compile de smarty et j'actualise le produit toujours ça change rien.

voici un petit schéma descriptif pour ma liste en FO :par exemple j'ai une lise de 6 produits :4 produits épuisés et 2 en stock, je sélectionne le tri produit en stock et voilà le résultat :

-produit 1 ------->en stock

-produit 2 ------->épuisé

-produit 3 ------->épuisé

-produit 4 ------->en stock

-produit 5 ------->épuisé

-produit 6 ------->épuisé

et lorsque j'accède en BO a la fiche des produits 2 et 3 et sans rien modifier, juste je clique sur Enregistrer et la liste sera trié convenablement c a d les produits épuisés en bas de liste :1,4,2,3,5,6.

c a d la quantité globale du produit n'est pas mis a jour après avoir commander le dernier article en stock de la déclinaison sauf je revalide la fiche produit manuellement et croyez moi c'est vraiment fastidieux.

j'ai fait une requête sql directement sur la BDD

SELECT p.id_product,Sum(pa.`quantity`),p.`quantity`
 FROM `product` p, `product_attribute` pa
 WHERE p.`id_product` =123456789 AND pa.id_product =123456789

et j'ai comme résultat

id_product : 123456789

Sum(pa.`quantity`) : 0

quantity : 1

je me rend sur la fiche produit en BO et j'ai toutes les déclinaisons a 0 et la quantité globale a 0 aussi :o :o

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

  • 2 months later...
  • 2 months later...

bonjour,

 

J'ai également le même besoin sur une boutique que je suis en train de monter sur un presta 1.4.6.2 (à vrais dire elle est presque finie si ce n'est ce "léger" problème d'usage dont je viens de me rendre compte...).

 

Apres la lecture de différents topics où la question a été posée j'en arrive à me dire qu'il manque en fait une fonction dans la gestion des produits de presta, les déclinaisons jouent bien leur rôle, mais il faudrait en fait également avoir la possibilité d'ajouter des "Options" à un produit, ou peut être étendre la fonctionnalité de personnalisations des produits en pouvant éventuellement les rendre payantes

 

Dans mon cas ils s'agit de bijoux, l'utilisateur doit sur la page du produit pouvoir choisir son montage, fils de différentes couleurs au choix (gratuits) ou chaînes métal ou or (prix supplémentaire), donc pas de gestion particulière de stock pour ces éléments juste celle du bijoux, j'ai fait pas mal de recherche sur le forum mais n'ai rien trouvé qui permette à presta d'utiliser les déclinaisons tout en utilisant le stock du produit de base.

 

Quelqu'un aurait il trouvé une solution depuis ? (la question semble revenir de temps en temps depuis 2009 au moins) ou saurait s'il existe un plugin permettant de le faire ?

 

merci

Link to comment
Share on other sites

je viens de tomber sur ce patch pour la 1.4 (pas testé sur ma version encore) , cela résous peut être le problème :

 

http://forge.prestas...anel#issue-tabs

 

 

Mais après y avoir pas mal réfléchit je me dis que l'on fait peut être fausse route en cherchant à se baser sur le système des déclinaisons, même si ce dernier remplit "presque" tous les besoins demandés, dans mon cas par exemple si le prix de ma chaîne en or venait à changer il faudrait remodifier ce prix sur toute les produits proposant cette déclinaison, sur une grande quantité de produits cela peut devenir ingérable.

 

En fait je pense que le systeme d'accessoires de presta peut être une solution, mais cela va demander quelques ajustement sur le front car cette fonctionnalité ne répond pas non plus à l'attente : un accessoire si il apparaît sur un produit se comporte juste comme un lien vers un autre produit, si on le commande il s'ajoute au panier et n'est pas associé au produit depuis lequel il a été ajouté, si le visiteur commande plusieurs produits avec accessoire, on ne sais plus quel accessoire va avec quel produit.

 

 

j'ai donc pensé à ça comme modif (qui n'affecterais que le front du coup) :

 

 

dans l'admin (pas de modification de fichiers) :

 

- on crée des accessoires payants ou non dans une catégorie caché du site (catégorie OptionsProduits par ex) et on leur colle une quantité astronomique pour pas qu'elle se retrouve à 0.

 

- on associe dans l'admin les accessoires aux produits comme on le fait normalement

 

- toujours dans l'admin on ajoute aux produits concernés un champ personnalisé OptionRef (par exemple)

 

 

sur le front (modifications sur les fichiers de la fiche produits js/tpl )

 

- masquer le champ personnalisation OptionRef

 

- on désactive les affichages détail / ajout au panier des accessoires appartenants à la catégorie OptionsProduits (comme ça on conserve le système normal pour les accessoires normaux), et on les passes dans une liste

 

- créer une fonction permettant de sélectionner depuis cette liste un accessoire (modification de son css par js par ex ) et ajoute son prix au prix du produit affiché par presta (ou ajoute une ligne à la suite... par ex, voir vraiment changer le prix affiché mais là on risque de fausser le résultat affiché modifié par les taxes et autres systèmes de réductions ), si le visiteur change l'accessoire par un autre, le nouveau sera sélectionné à la place de l'autre et cette ligne se met à jour.

+ la référence (id du produit ? nom ?) à l'accessoire sélectionné est stocké dans une variable

 

- lorsque le visiteur veux commander le produit il clique sur achat, à ce moment l'accessoire sélectionné est également ajouté au panier, et la référence de cet accessoire est associé au produit en utilisant un champ personnalisation (comme ça l'admin saura quel produit va avec quel accessoire)

 

(modifications sur les fichiers du cart / cart ajax / panier )

- hacker le cart et le cart ajax pour qu'il n'affichent pas les accessoires dans là liste comme des produits séparrés mais sous le produit depuis lequel ils ont été ajoutés, empêcher leur suppression depuis le cart, faire en sorte que la suppression d'un produit de la liste supprime aussi l'accessoire référencé dans son champs personnalisé OptionRef

 

 

reste à voir comment attribuer un accessoire par défaut, ou gérer plusieurs options à la fois...

 

 

voila, si quelq'un à un avis sur cette approche je suis preneur, j'ai peur d'oublier quelque chose d'important, je vais essayer de m'y coller sur mon template et peut être si ça marche voir si je peux en faire un module plus tard (je j'essaie quand même de voir pour le patch mentionné au début).

Link to comment
Share on other sites

Bonjour,

Quelqu'un a-t-il testé ce patch sur la version 1.4.7 ? Pour ma part je l'ai testé, cela n'a pas fonctionné. Mais je ne sais pas si c'est à cause de ma version ou une mauvaise compréhension du mode d'emploi :rolleyes: (je suis nulle en anglais..!)

La team pourrait-elle m'aider svp :unsure:

Link to comment
Share on other sites

salut,

 

sur quelle version es-tu Canel ? j'ai peur que les dernières versions de presta ne soient pas compatible avec le patch, de mon côté j'ai fais des modifs sur mon admin et j'ai peur qu'il me les écrase si je test, j'ai regardé le contenu du fichier pour voir où sont appliqués les différentes modifications, je me dis que l'on doit peut être pouvoir les répercuter à la main si le patch ne passe pas et que le code n'a pas trop changé entre les différentes versions de presta, mon besoin sur la boutique que je suis en train de mettre en place a changé, du coup je n'ai pas approfondis la question, peut être plus tard si je trouve le temps.

 

 

finalement je n'ai plus a utiliser d'"options" payantes du coup je suis partis sur une utilisation un peu différente de l'idée que j'avais eu sur l'utilisation des accessoires. J'utilise un combo entre

- les attributs du produit ( j'en utilise un dans lequel l'administratuer peut enregistrer sur la fiche produit les différentes valeurs qui peuvent changer d'un produit à l'autre, et masque l'attribut sur la fiche produit lorsqu'il remonte, un js recuperre ces valeurs et les assigne ensuite à des boutons dans le template)

- et un champ personnalisé ( dans lequel j'assigne au clic sur ces bouton la valeur choisie par l'utilisateur parmis les différents chois de l'attribut ), la personalisation est ensuite envoyée au moment du clic sur le bouton d'achat ( je court-circuite l'obligation de cliquer sur "enregistrer", et donc de recharger la page, pour les personalisations en utilisant le code trouvé sur ce topic : http://www.prestasho...en-un-seul-clic )

 

tout ceci reste du bricolage basé sur une utilisation détournée des fonctionnalités de presta, j'espère voir apparaître dans une future version de presta une option pour pouvoir enfin gérrer des options payantes sur un produit donné...

Link to comment
Share on other sites

J'ai testé sur toutes les versions existantes après la 1.4.1 sans succès. J'ai vérifié à chaque fois les fichiers, le patch apparaît bien sur les fichiers concernés mais sans pour autant fonctionné. Les fichiers ont sans doute trop changé depuis la version 1.4.1...

Pour ma part j'ai voulu tout refaire dans cette version histoire d'avoir cette fonctionnalité mais finalement pas le courage ! J'ai donc désactivé la gestion des stocks pour plus de facilité. ça m'étonnerais que mes clients prennent 20 articles d'un coup !

Link to comment
Share on other sites

  • 4 weeks later...

Accessoirement, je viens de finir le module.

http://shop.web-scop...e-quantity.html

 

Tiens moi au courant :P

 

Bonjour,

 

je suis sur une version de prestashop 1.3.1.1. Et j'aurai besoin de ce module le plus rapidement possible ! C'est exactement ce que je recherchais. Je commençais à désespérer mais grâce à vous tous, vous m'avez redonné espoir ! merci.

 

Est il possible de me redonner un lien pour ce module de Julien ou me l'envoyer par mail si quelqu'un l'a encore ?

contact[at]pocomdesign.com

 

Je vous en remercie !

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

je suis sur une version de prestashop 1.3.1.1. Et j'aurai besoin de ce module le plus rapidement possible ! C'est exactement ce que je recherchais. Je commençais à désespérer mais grâce à vous tous, vous m'avez redonné espoir ! merci.

 

Est il possible de me redonner un lien pour ce module de Julien ou me l'envoyer par mail si quelqu'un l'a encore ?

contact[at]pocomdesign.com

 

Je vous en remercie !

 

Je recherche également ce module... est-ce que vous l'avez trouvé ?

 

David.

Link to comment
Share on other sites

  • 3 months later...

J'utilise la version 1.5 et la gestion globale m'intéresse fortement car je vends des objets uniques faits à la main pouvant avoir des accessoires fait sur mesure mais dont les déclinaisons sont nombreuses:

 

- J'ai 1 peinture faite à la main qui ne peut être reproduite, soit un stock de 1 peinture.

 

- Je propose l'option de faire un cadre sur mesure associé à ce seul produit pouvant avoir des attributs variés, donc un stock virtuel d'une certaine quantité de variantes (couleurs, formes, finitions).

ex: Peinture 1 avec cadre rond mouluré rouge mat, Peinture 1 avec cadre rectangulaire rectiligne vert brillant, etc...

 

Si je crée des déclinaisons, ce qui est très facile, je crée X produits de ma peinture unique ce qui indique un stock physique de X déclinaisons.

 

Je rappelle que je ne peux vendre que 1 peinture encadrée ou non.

 

Si un client commande cette peinture avec ou sans cadre, le stock de ma peinture et de toutes ses déclinaisons doit tomber à 0. Personne d'autre ne doit pouvoir commander le même produit ou une de ses déclinaisons.

 

Question: comment s'y prendre sans bidouiller à la mimine les ID_PRODUIT dans la base de données pour tous les produits?

Link to comment
Share on other sites

Bonjour,

 

Même problème pour moi

Une option désactivant la gestion des quantités pour les déclinaisons d'un groupe donné est un vrai manque dans prestashop.

 

Exemple : je vend une paire de boucles d'oreilles uniques donc stock = 1. Je propose à mes clients deux types d'accroches avec un surcout pour l'une d'elle. Mais si je créé deux déclinaisons mon stock est de 2. Je risque donc de vendre un produit que je n'ai pas. Les sytèmes d'accroches ne sont pas des articles à vendre indépendemment d'une paire de boucle d'oreille.

 

Si quelqu'un à une solution je suis sur prestashop 1.5 j'espérais que cette version apporte une solution mais vraissemblablement toujours pas.

 

Cordialement

Link to comment
Share on other sites

Le pire même est qu'un client risque d'acheter un article qui n'est en fait pas disponible du tout vu que le client ne sélectionne qu'une déclinaison à chaque fois, or on ne peut pas veiller 24/24 pour guetter l'acheteur et désactiver toutes les déclinaisons qui ne sont plus à vendre à l'instant précis où on reçoit la commande.

 

J'ai essayé de faire des packs mais ça alourdit le catalogue d'un produit contenant les déclinaisons qui ne devrait pas être visible (car non vendable seul)+ le produit qu'on veut vendre + évidemment le pack...

 

C'est usant de chercher un contournement pour une fonction qui devrait être simple à mettre en oeuvre. Ça me gâcherait presque le plaisir d 'utiliser Prestashop qui, au passage est plutôt bien fait, si on fait abstraction des bugs et du manque de certaines fonctions. :)

Link to comment
Share on other sites

Personne n'a eu l'idée d'implémenter un module d'options sur les produits qui n'influerait pas la quantité du produit d'origine par hasard? J'ai écrit une feature request, mais je pense que je peux m'asseoir dessus pour le moment.

 

Si quelqu'un veut gagner des sous pour un tel module, envoyez vos messages avec une solution qui fonctionne svp!

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...
  • 1 month later...

Bonjour à tous,

 

Il faut croire que décidément cette fonctionnalité intéresse bon nombre de personnes. Personnellement en modifiant le cœur de Presta sur une 1.3 j'avais réussi à régler le problème, cependant je ne conseil pas de faire cela car je suis justement en train de mettre à jour Presta en 1.5 après n'avoir pas mis à jour pendant 2 ans, autant dire que c'est galère...

 

Je constate que pour cette nouvelle mouture en 1.5, cette option qui parait pourtant cruciale pour certains n'est toujours pas présente, ni dans le cœur ni dans un module, que c'est décevant...

 

Avis aux développeurs, ce n'est qu'un détail à réaliser pour vous, mais pour nous c'est primordial de pouvoir décompter notre stock non pas en fonction de nos déclinaisons, mais en fonction de nos produits réels.

 

S'il vous plait... un petit geste ?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...