Jump to content

Gestion des quantités de manière globale et non par déclinaisons


Recommended Posts

Bonjour,

Après une recherche dans les forum, un sujet a été ouvert plusieurs fois faisant refléter un besoin commun : la gestion des produits de manière globale et non par déclinaisons.

Ce sujet a été révélé en 2010 : https://www.prestashop.com/forums/topic/41081-desactiver-la-gestion-des-quantites-avec-les-declinaisons/page-4

https://www.prestashop.com/forums/topic/19054-systeme-de-quantite-global/

 

Depuis toutes ces années a t-on évolué sur le sujet et comment répondez vous à ce besoin,

Le but de ce post est d'obtenir une réponse valable et non pas d'ouvrir une polémique sur l'utilité ou non du besoin comme ce fut le cas dans les posts précédents.

Merci à tous ceux qui pourraient participer à la clôture de ce post et par conséquence des autres posts sur le même sujet.

 

Link to comment
Share on other sites

Après des recherches supplémentaires, voici un début de solution pris sur un autre Post

N'hésitez pas à faire connaitre vos autres solutions / réponses !

 

Bonsoir les amis,

 

J'ai trouvé la solution (enfin.. elle n'est pas de moi mais je l'ai trouvé sur un forum anglais).

L'astuce, c'est de réduire la quantité de TOUTES les déclinaisons en meme temps lorsqu'un client passe commande.

Exemple:

J'ai 5 iphone que je peux vendre avec ou sans pochette.

 

Produit IPHONE

> Déclinaison 1 : AVEC pochette (quantité 5)

> Déclinaison 2 : SANS prochette (quantité 5)

Il faut donc que, lorsqu'un client commande 1 produit quelque soit la déclinaison, 1 soit retiré à toutes les déclinaisons (et il me restera donc bien 4 iphone).

Pour cela il faut modifier dans : classes/stock/StockAvailable.php , ces 3 lignes :

$stock_available = new StockAvailable($id_stock_available);
$stock_available->quantity = $stock_available->quantity + $delta_quantity;
$stock_available->update();

Il faut les remplacer par :

        if ($id_product_attribute != 0)

        {

            $ids_product_attribute = array();

            foreach (Product::getProductAttributesIds($id_product) as $id_product_attribute)

                $ids_product_attribute[] = $id_product_attribute['id_product_attribute'];



            foreach ($ids_product_attribute as $id_product_attribute)

            {

                $id_stock_available = StockAvailable::getStockAvailableIdByProductId($id_product, $id_product_attribute, $id_shop);        

                $stock_available
= new StockAvailable($id_stock_available);

                $stock_available->quantity = $stock_available->quantity + $delta_quantity;

                $stock_available->update();

            }

        }

        else

        {                        

            $stock_available
= new StockAvailable($id_stock_available);

            $stock_available->quantity = $stock_available->quantity + $delta_quantity;

            $stock_available->update();

        }

Et voila, ca a marché pour moi :)

 

Link to comment
Share on other sites

  • 1 month later...

Je relance le sujet qui n'a reçu aucune réponse.

Connaissez vous une solution pour avoir un mode de fonctionnement qui permettrait d'avoir pour les déclinaisons rouge, vert, bleu :

quantité globale = quantité déclinaison rouge = quantité déclinaison vert = quantité déclinaison bleu

?????

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...