Jump to content

Bug fiche produit, stock et désindexation....


Recommended Posts

Salut à vous tous,

Sur une boutique d'un de mes clients, un bug surprenant est apparu.

Dans la fiche produit déjà créé, il y a la possibilité de modifier, ajuster le stock de ce produit.

Cependant, lorsque mon client essaye de modifier les quantités, rien ne s'enregistre.

Sauf si on va directement dans la gestion du stock, la sa fonctionne...

De plus, que ce soit du a une commande ou a une modification de produit, celui-ci est directement désindexé...

 

C'est a rien comprendre.....

Avez-vous vu ou connu ce bug?

Si oui, comment avez-vous réglé ce blem?

 

Voici en mode debug :

image.thumb.png.f389005b19879a5c103391d528bb87bb.png

Infos :

Ps : 1.7.8.7

 

Serveur : Linux #1 SMP Debian 4.9.210-1+deb9u1~deb8u1 (2020-06-09) x86_64

Version du logiciel serveur : Apache

Version de PHP : 7.4.30

Limite de mémoire : 1024M

Temps maximal d'exécution : 640

Taille max. pour envoi de fichiers : 120M

 

Merci le amis...

Link to comment
Share on other sites

Bonjour,

Le site fut mis à jour ou un module n'est pas codé comme il faut en tout cas votre souci provient de la surcharge de la classe Cart.php pour la méthode qui est définie maintenant ainsi :

    public function getPackageShippingCost(
        $id_carrier = null,
        $use_tax = true,
        Country $default_country = null,
        $product_list = null,
        $id_zone = null,
        bool $keepOrderPrices = false
    ) {

Vous devez donc modifier l'override pour y ajouter l'élément manquant, à savoir

bool $keepOrderPrices = false

 

Link to comment
Share on other sites

il y a 11 minutes, Mediacom87 a dit :

Bonjour,

Le site fut mis à jour ou un module n'est pas codé comme il faut en tout cas votre souci provient de la surcharge de la classe Cart.php pour la méthode qui est définie maintenant ainsi :

    public function getPackageShippingCost(
        $id_carrier = null,
        $use_tax = true,
        Country $default_country = null,
        $product_list = null,
        $id_zone = null,
        bool $keepOrderPrices = false
    ) {

Vous devez donc modifier l'override pour y ajouter l'élément manquant, à savoir

bool $keepOrderPrices = false

 

Salut et merci du coup de pouce...

Voici ce que j'ai dans l'overide :

<?php
class Cart extends CartCore
{
    /*
    * module: freedeliverymanager
    * date: 2021-10-28 12:18:28
    * version: 1.6.21
    */
    public function getPackageShippingCost(
        $id_carrier = null,
        $use_tax = true,
        Country $default_country = null,
        $product_list = null,
        $id_zone = null
		
    ) {
        $freedeliverymanager = Module::getInstanceByName('freedeliverymanager');
        if (!$freedeliverymanager || !$freedeliverymanager->active) {
            return parent::getPackageShippingCost(
                $id_carrier,
                $use_tax,
                $default_country,
                $product_list,
                $id_zone
            );
        } else {
            $free_shipping_price = $freedeliverymanager->getFreeShippingPrice(
                $this,
                $id_carrier,
                $use_tax,
                $default_country,
                $product_list,
                $id_zone
            );
            if ($free_shipping_price < 0) {
                return parent::getPackageShippingCost(
                    $id_carrier,
                    $use_tax,
                    $default_country,
                    $product_list,
                    $id_zone
                );
            }
            return $free_shipping_price;
        }
    }
    
    

Si je modifie comme tu dis, c'est la cata.....

 

 

Link to comment
Share on other sites

<?php
class Cart extends CartCore
{
    /*
    * module: freedeliverymanager
    * date: 2021-10-28 12:18:28
    * version: 1.6.21
    */
    public function getPackageShippingCost(
        $id_carrier = null,
        $use_tax = true,
        Country $default_country = null,
        $product_list = null,
        $id_zone = null,
        bool $keepOrderPrices = false
    ) {
        $freedeliverymanager = Module::getInstanceByName('freedeliverymanager');
        if (!$freedeliverymanager || !$freedeliverymanager->active) {
            return parent::getPackageShippingCost(
                $id_carrier,
                $use_tax,
                $default_country,
                $product_list,
                $id_zone,
                $keepOrderPrices
            );
        } else {
            $free_shipping_price = $freedeliverymanager->getFreeShippingPrice(
                $this,
                $id_carrier,
                $use_tax,
                $default_country,
                $product_list,
                $id_zone
            );
            if ($free_shipping_price < 0) {
                return parent::getPackageShippingCost(
                    $id_carrier,
                    $use_tax,
                    $default_country,
                    $product_list,
                    $id_zone,
                    $keepOrderPrices
                );
            }
            return $free_shipping_price;
        }
    }
    
    

 

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

Si jamais ton problème ne vient pas de là, j'ai déjà eu le soucis sur une mise à jour Presta.

Dans ma base de données, toutes les clés d'incrémentation s'étaient mises à 0, donc aucun auto-increment ne fonctionnait.

Vérifie peut-être ta base on sait jamais.

Link to comment
Share on other sites

il y a 34 minutes, Shonen a dit :

Si jamais ton problème ne vient pas de là, j'ai déjà eu le soucis sur une mise à jour Presta.

Dans ma base de données, toutes les clés d'incrémentation s'étaient mises à 0, donc aucun auto-increment ne fonctionnait.

Vérifie peut-être ta base on sait jamais.

Aucune chance que ce soit cela, le message retourné par le mode debug identifie clairement le problème et explique pourquoi.

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...