Info Correction Problème De Stock Sur Toute Les Version De Peel Sauf "normalement La Derniere "

1 message dans ce sujet

Posté(e) · Signaler ce message

il y avait une erreur dans la gestion des stocks il nous a fallut un bon moment pour trouver d'ou celle ci venait 

 

cela venait de :

 

si 2 personne ou plus  passait des commande en même temps 

les personnes pouvaient commander plus de produit que vous en aviez en stock  et sa mettait votre stock complètement a l'envers 

 

 

mr boussin ma corriger cet erreur qui nous a embêter depuis la version  6

 

voici le correctif " pour la version 7 "

 

il suffit de rajouter ce qui est en gras :

 

dans modules-->stock advanced --> fonction.php

 

 

 

/**
 * Récupère la quantité disponible en stock dans la table peel_stocks_temp.
 * Si $use_only_temp==false, on vérifie aussi la quantité disponible dans les stocks réels
 * Si on ne précise pas $couleur_id ou $taille_id, on agrège les stocks pour toutes les variantes possibles
 *
 * @param integer $product_id
 * @param integer $couleur_id
 * @param integer $taille_id
 * @param boolean $use_only_temp
 * @return
 */
function get_stock_temp($product_id, $couleur_id = null, $taille_id = null, $use_only_temp = false) {
    if (!is_stock_advanced_module_active()) {
        return false;
    }
    if (!empty($GLOBALS['site_parameters']['timemax'])) {
        // La gestion des stocks temporaires est activée
        $sql = "SELECT SUM(stock) AS stock
            FROM peel_stocks_temp
            WHERE produit_id = '" . intval($product_id) . "'" . ($couleur_id !== null ? " AND couleur_id = '" . intval($couleur_id) . "'" : '') . "" . ($taille_id !== null ? " AND taille_id = '" . intval($taille_id) . "'" : '') . "";
        $query = query($sql);
        $obj = fetch_object($query);
    }
    if (!empty($obj) && $obj->stock !== null) {
           // La gestion des stocks temporaires est activée ET on a trouvé un stock temporaire
        $stock_temp = $obj->stock;
        if (!$use_only_temp) {
            // On vérifie avec la valeur de stock réel (utile dans le cas où $GLOBALS['site_parameters']['timemax'] est faible)
            $stock_temp = min($stock_temp, get_stock($product_id, $couleur_id, $taille_id));
        }

    } elseif (!$use_only_temp) {
        // On n'a pas trouvé de valeur de stock temporaire, et on s'autorise à prendre la valeur de stock réel
        $stock_temp = get_stock($product_id, $couleur_id, $taille_id);
    } else {
        $stock_temp = false;
    }
    return $stock_temp;
}
 

 

 

 

 

 

 

 

Par ailleurs, à la fin de change_line_data() dans class/caddie.php vous pouvez rajouter :

 



        if($this->quantite[$numero_ligne]<$quantite && (defined('IN_STEP1') || defined('IN_STEP2') || defined('IN_STEP3'))) {
            // Redirection en cas de problème de stock au dernier moment lors de la commande => on redirige vers la page de caddie
            redirect_and_die($GLOBALS['wwwroot'] . "/achat/caddie_affichage.php");
        }

 

Et ça redirigera vers le caddie si un stock vient à disparaître juste avant le paiement.
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping