Guillaume B. Posted May 23, 2014 Share Posted May 23, 2014 Bonjour à tous !Voici mon soucis en 1.5.2.0On imagine qu'un client sélectionne la totalité de mon stock d'un article (super, il a envie de tout me prendre !) et sélectionne le mode de règlement par chèque ... et n’envoie pas le chèque ! Bah, en attendant mon produit était affiché en "stock 0" et j'ai certainement loupé plein de ventes...Ma question est donc la suivante :Peut-on faire en sorte que le stock soit décrémenté au moment de la validation du règlement, et non pas au moment de la prise de commande ? Je pense qu'il doit simplement y avoir un bout de code PHP à commenter, si quelqu'un peut me venir en aide, ça serait génial !D'avance merci !Cordialement, Guillaume. Link to comment Share on other sites More sharing options...
Guillaume B. Posted May 27, 2014 Author Share Posted May 27, 2014 Un petit up, personne pour me venir en aide ? :x Link to comment Share on other sites More sharing options...
Guillaume B. Posted May 28, 2014 Author Share Posted May 28, 2014 J'avance tout doucement mais là je susi bloqué...* Apparemment la gestion des stocks au moment d'une commande se passe à la ligne 517 du fichier /classes/PaymentModule.php : // Hook validate orderHook::exec('actionValidateOrder', array( 'cart' => $this->context->cart, 'order' => $order, 'customer' => $this->context->customer, 'currency' => $this->context->currency, 'orderStatus' => $order_status )); foreach ($this->context->cart->getProducts() as $product) if ($order_status->logable) ProductSale::addProductSale((int)$product['id_product'], (int)$product['cart_quantity']); if (Configuration::get('PS_STOCK_MANAGEMENT') && $order_detail->getStockState()) { $history = new OrderHistory(); $history->id_order = (int)$order->id; $history->changeIdOrderState(Configuration::get('PS_OS_OUTOFSTOCK'), $order, true); Mais à partir de là je commence à être perdu pour trouver l'endroit où ça décrémente le stock pour les chèques :x:x Un bon samaritain se promènerait-il ici ?! Help ! Link to comment Share on other sites More sharing options...
Guillaume B. Posted May 30, 2014 Author Share Posted May 30, 2014 Je piétine, je piétine... Je pense finalement que ça se passe plutôt au niveau de OrderHistory.php, vers ligne 113 (le "-(int)$product['product_quantity']" ): if ($new_os->logable && !$old_os->logable) { ProductSale::addProductSale($product['product_id'], $product['product_quantity']); // @since 1.5.0 - Stock Management if (!Pack::isPack($product['product_id']) && ($old_os->id == Configuration::get('PS_OS_ERROR') || $old_os->id == Configuration::get('PS_OS_CANCELED')) && !StockAvailable::dependsOnStock($product['id_product'], (int)$order->id_shop)) StockAvailable::updateQuantity($product['product_id'], $product['product_attribute_id'], -(int)$product['product_quantity'], $order->id_shop); } Je pense que je dois ajouter une condition sur le mode de paiement... Vraiment personne ne pourrait me venir en aide ? :x Link to comment Share on other sites More sharing options...
lupyo Posted August 4, 2014 Share Posted August 4, 2014 UP. As-tu trouvé une solution ? 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