Jump to content

Recommended Posts

Bonjour à tous,

 

J'ai établie une gestion des stocks avec un petit script PHP qui me permet directement de faire des Update de mes quantités de produits dans ma Base de donnée.

 

Le script s’exécute bien, et inscrit les bonnes valeurs dans le champs Quantité de ma table "Product".

Le soucis étant que ces quantités, qui apparaissent dans mon "Back-office" de Prestashop, ne correspondent pas avec celles de ma BDD.

Et encore moins en 'Front-Office".

Initialement celle de ma BDD sont bonnes.

Comme-ci le site ne consultait plus la base, ou du moins ne se rafraîchissait plus.

 

Je n'utilise qu'une seule base de donnée, donc impossibilité pour Prestashop d'en utiliser une autre..

On dirait qu'il n'y a aucune correspondance entre ma BDD et Ma boutique.

Le soucis étant qu'un produit avec une quantité à 0, ne s'affiche pas sur le site, ou est marqué "En rupture".

Alors que justement mon script de gestion des stocks permet de mettre à jour mon stock de façon permanente, puisque je l'ai automatisé, et planifié en taches Quotidiennes.

 

J'ai appelé le Service Technique Prestashop, qui m'a conseillé de venir faire un tour sur le forum, parce qu'il savais pas trop quoi me dire..

Donc si quelqu'un avais déjà rencontré le soucis, ou aurait une piste pour un débuguage (Chose que je ne sais pas faire..), merci de me faire signe.

 

Bonne journée!

Link to comment
Share on other sites

Bonjour,

 

Le problème peut éventuellement venir d'une interaction entre la zone que vous modifiez dans la BDD, et une autre zone de la BDD que Prestashop modifie en temps normal, mais que votre script ne modifie pas; vu que cette éventuelle relation entre les deux zones n'est pas connue, et non explicitée par Prestashop.

 

Nous avons déjà constaté qu'une mise à jour directe de zone dans la BDD Prestashop peut entrainer un comportement inattendu du logiciel Prestashop en Frontend ou Backend ...

 

Nous vous suggérons donc de demander à PrestaShop si une modification directe de la zone Quantité ne doit pas être accompagnée d'une mise à jour d'autres zones (du style "statut" ou autre de la zone).

 

Michel

Link to comment
Share on other sites

Bonsoir à tous,

merci à vous d'avoir pris du temps pour me répondre.

 

Alors erotikat , j'y ai jeté un coup, d'oeil, j'ai fix le Bug comme il est indiqué en changeant le fichier classes/Product.php

https://github.com/PrestaShop/PrestaShop/commit/24273960cc341e4745d65bd999daad91becdd016

 

Mais ça n'a toujours pas d'impact, mes quantités n'ont toujours pas bougés..

 

Alors je ne vois pas d'ou vient le problème. J'ai pensé que Certaines méthodes de la classe Db prennent un argument $use_cache, et que si on les met à false, ça devrait être bon.

Et bien non..

 

mdegueldre, c'est vrai que la BDD peut rendre instable prestashop en Back/front office, mais bon, je n'agis que sur 2 champs, à savoir 'Quantity' from Product' & 'Quantity from product_attribute' ..

Remplacer une donnée dans une table, c'est complètement normal, et heureusement vu le traffic qui s'établit entre la BDD et le Software!

 

Donc voila , je continue de chercher.. Je vous tiendrai au courant si j'en sais plus.. ;)

Link to comment
Share on other sites

  • 4 weeks later...

Bonjour,

 

J'ai travaille également sur des scripts PHP qui mettent automatiquement l'ensemble de l'inventaire des produits de PrestaShop.

 

Comme l'indique PrestaCoach, Prestashop enregistre certaines données dans plus d'une table. Par exemple pour la quantité d'un produit si la gestion des stock avancé n'est pas activé. La quantité est enregistré dans la table "product" et également dans la table "stock_available"

 

Pour mettre à jour la quantité, est-que vous utilisez la méthode "setQuantity" de la classe "StockAvailable"?

 

ex: StockAvailable::setQuantity ($id_product, $id_product_attribute, $quantity, $id_shop)

 

Moi ça fonctionne bien avec cette méthode.

 

Roger

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