Problème de mise à jour de stock suite à remboursement / annulation de commande
-
Hello,
Depuis que je suis passé sur Phenix Suite (actuellement 1.6.2.42) je remarque que lorsque j'annule une commande d'1 produit le stock est réassorti de 3 produits.
Pour info je suis en multiboutique.
Pour illustrer avec la dernière commande traitée (ce jour) : le stock était à -1 car la personne a commandé un produit hors-stock. Le client se rétracte, je passe donc le statut à "remboursé", tout est ok et dès que j'ai passé le statut à "annulé" alors le stock du produit et en l'occurence de cette déclinaison est passé à 3 !
Ce souci est récurrent et m'oblige ensuite à corriger manuellement le nombre de produits avec la bonne quantité en BO...
Je ne sais pas si c'est lié à mon nouvel environnement et/ou si certains d'entre vous ont déjà vécu ce souci ?
Si besoin je pourrai envoyer des captures d'écran d'une commande que je viens de traiter ainsi mais plutôt en privé si cela ne dérange pas...
Merci encore
-
@ilmag
Attention les statuts Remboursé et Annulé remettent tous les 2 les produits en stock (ça a toujours été le fonctionnement de Prestashop)
Une fois remboursée, ne modifiez plus la commande. -
@eolia Hello, merci pour ce retour.
Cependant pour re-situer, rien ne bouge quand je passe à Remboursé donc le stock est resté à -1 (commande hors stock à l'origine avec un niveau à 0) et passage à 3 lors du passage à Annulé. Cela fait un gap de 4 unités pour 1 seul produit commandé, ça me paraît bcp... -
J'ai 2 questions:
- Version de PhenixSuite ?
- Vous avez directement passé le statut en "Remboursé" ou vous avez utilisé les boutons de retour/remboursement ?
-
@eolia
Bonjour Eolia,- Je suis sous la version 1.6.2.42
- J'ai passé le statut directement en "Remboursé" via le menu déroulant (la quantité n'a pas bougé en restant à -1) puis directement en "Annulé" (la quantité est passée de -1 à 3)
MERCI !

-
Ok, faites l'essai avec la fonction de remboursement plutôt
-
@eolia J'ai crée une commande fictive (paiement par chèque), j'ai essayé en utilisant le bouton "Remboursement partiel" (le seul disponible).
Plus bas j'ai mis la quantité à rembourser mais d'ailleurs je n'ai même pas de bouton pour valider ce remboursement...
Ici on parle donc d'un remboursement avant même l'expédition...
merci
-
Le bouton est en bas à gauche une fois que vous avez rempli la raison normalement.
-
@eolia ok du coup voici le résultat (la quantité n'a pas bougé), maintenant j'utilise le menu déroulant pour passer à "remboursé" puis "annulé" pour tester ? merci

-
Vous n'aviez pas ce bouton ?

-
@eolia non à priori je ne l'avais pas, je viens de recréer une commande et voici la capture...

-
Ce n'est pas logique car ce bouton devrait être là si la quantité de produits retournables est supérieure à 0.
{assign var="remainingRefunds" value=Order::getRemainingRefunds($order)} {if $remainingRefunds && Order::getRemainingReturns($order)} <a id="desc-order-standard_refund" class="btn btn-default" href="#start_products"> <i class="icon-exchange"></i> {if $order->hasBeenShipped()} {l s='Return products'} {elseif $order->hasBeenPaid()} {l s='Standard refund'} {else} {l s='Cancel products'} {/if} </a> {/if}/** * Get remaining refunds for an order * @param $order object * * @return int Remaining possible refunds */ public static function getRemainingRefunds($order) { return (int)max(0, Db::getInstance()->getValue(' SELECT SUM(`product_quantity`) - SUM(`product_quantity_refunded`) FROM `'._DB_PREFIX_.'order_detail` od INNER JOIN `'._DB_PREFIX_.'product` p ON(p.`id_product` = od.`product_id`) WHERE od.`id_order` = '.(int)$order->id )); }