Jump to content

Une erreur inattendue s'est produite. [PrestaShopDatabaseException code 0] : Duplicate entry '227-1182-0-0' for key 'mod327_stock_available.product_sqlstock'


cedric.s

Recommended Posts

Bonjour à tous j ai problème que je n arrive pas résoudre il m est impossible de changer l état d une commande et de la passé en expédié .

Une erreur inattendue s'est produite. [PrestaShopDatabaseException code 0] : Duplicate entry '227-1182-0-0' for key 'mod327_stock_available.product_sqlstock'

INSERT INTO `mod327_stock_available` (`id_product`, `id_product_attribute`, `id_shop`, `id_shop_group`, `quantity`, `depends_on_stock`, `out_of_stock`, `location`) VALUES ('227', '1182', '0', '0', '0', '0', '0', '')

Je suis sur 1.7.8.10 je m arrache un peu les cheveux ....

parfois en changeant de boutique c est un site multi boutique cela marche une fois sur 10 mais impossible de comprendre pourquoi. 

Si un âme charitable connait ce problème .... merci

.

Link to comment
Share on other sites

j ai que ca quand j active le debug 

Une erreur inattendue s'est produite. [PrestaShopDatabaseException code 0] : Duplicate entry '231-1221-0-0' for key 'mod327_stock_available.product_sqlstock'
 

INSERT INTO `mod327_stock_available` (`id_product`, `id_product_attribute`, `id_shop`, `id_shop_group`, `quantity`, `depends_on_stock`, `out_of_stock`, `location`) VALUES ('231', '1221', '0', '0', '0', '0', '0', '')

rien de plus je ne sas pas trop quoi en faire , je test en désactivant module par module? 
Merci à vous en tout cas 

Link to comment
Share on other sites

Bonjour, 

L'ID Shop n'est pas nécessaire pour le stock, car quoi qu'il arrive, un produit en stock ne concerne pas forcément une boutique (la table stock_available contient les deux, une ligne sans ID Shop et une ligne avec). En tout cas, c'est ce que j'ai pu observer en créant mes modules d'update stock agissant directement sur la table stock_available.

Le problème c'est plutôt pourquoi un INSERT est produit lors du changement d'état d'une commande. Un changement d'état ne peut pas créer une ligne de stock, seulement la faire évoluer (UPDATE). S'il y'a un INSERT INTO, c'est qu'une partie du code demande l'ajout de cette ligne. 

Et non, le mode debug ne désactive pas les surcharges systématiquement, il faut regarder en dessous et activer l'option "désactiver les surcharges". 

 

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

il y a 5 minutes, AfterGlow93 a dit :

L'ID Shop n'est pas nécessaire pour le stock, car quoi qu'il arrive, un produit en stock ne concerne pas forcément une boutique (la table stock_available contient les deux, une ligne sans ID Shop et une ligne avec). En tout cas, c'est ce que j'ai pu observer en créant mes modules d'update stock agissant directement sur la table stock_available.

Tout dépend du paramètre share_stock lorsque vous créez des multiboutiques.

Dans tous les cas id_shop est toujours rempli (par défaut avec l'id_shop par défaut, à 0 si le stock est partagé pour un groupe de boutiques, ou l'ID du shop si aucun partage)

                if($id_shop === null) {
                    $shop_group = Shop::getContextShopGroup();
                }
                else {
                    $shop_group = new ShopGroup((int)Shop::getGroupFromShop((int)$id_shop));
                }

                // If quantities are shared between shops of the group
                if($shop_group->share_stock) {
                    $stock_available->id_shop = 0;
                    $stock_available->id_shop_group = (int)$shop_group->id;
                }
                else {
                    $stock_available->id_shop = (int)$id_shop;
                    $stock_available->id_shop_group = 0;
                }
                if(!$stock_available->add())
                    return false;

 

Link to comment
Share on other sites

  • 4 weeks later...

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