Jump to content

Mise à jour du stock par une tâche cron


Recommended Posts

Bonjour,

Nous avons une boutique en 1.5, et avons développé un module qui permet de synchroniser le stock de notre fournisseur avec le nôtre. Ce module fonctionne plutôt bien et met à jour le stock à chaque consultation du produit.

 

 

En plus de ce système de mise à jour ponctuelle, nous souhaitons également effectuer une mise à jour globale, c'est à dire de tous les produits de notre catalogue (+15000 ref). Pour ce faire et pour ne pas ralentir le serveur, nous avons programmé une tâche cron pour qui exécute une fois par jour un script php qui mettra à jour autant de produits présents dans la base de données.

 

Ce fichier est placé dans un répertoire nommé /cron à la racine du site. Lorsque nous exécutons le script manuellement,

Nous avons une erreur : "Fatal error" et en activant la console de debuggage, prestashop me retourne non pas une erreur mais un array contenant sans doute des paramètres Prestashop. Malheureusement je n'ai pas copié le contenu car il est très lourd.

 

En examinant le code du script, je constate que le problème venait de la fonction :

StockAvailable::setQuantity((int)$product['id_product'], 0, (int)$qty_available);

 

et pareil pour : 

StockAvailable::updateQuantity((int)$product['id_product'], 0, (int)$qty_available);

 

Et pourtant celle-ci fonctionne (peut être parce qu'il s'agit d'une lecture et non d'une écriture de données) :

StockAvailable::getQuantityAvailableByProduct((int)$product['id_product']);

 

Ce sont des fonctions dont j'ai l'habitude de manipuler. Je les ai d'ailleurs utilisés dans le module de mise à jour ponctuelle.

 

Est-ce que le fait d'utiliser ces fonctions dans un autre répertoire que celui d'un module ou contrôleur poserait un problème ? Merci d'avance pour votre aide.

 

Stéphane.

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

Bonsoir

Avez-vous commencé par inclure le ou les fichiers nécessaires au fonctionnement de ce script ?

Si les classes ne sont pas instanciées correctement, le script ne peut fonctionner.

 

Mais si le message d'erreur est long, ce sont les 1ères lignes qui renvoient l'origine du problème.

Link to comment
Share on other sites

Bonjour Eolia et merci pour votre réponse. Je pense avoir fait le nécessaire sauf si me trompe, j'ai inclus cette ligne comme j'ai l'habitude de faire en début de fichier :

require_once(dirname(__FILE__).'/../config/config.inc.php');

 

Dans le cas contraire, pense que prestashop m'aurait retourné une erreur du type "Fatal error: Class 'StockAvailable' not found in /homepages/..."

 

Manquerait-il autre chose ?

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

  • 1 year later...

Bonjour

 

j ai idem un scipt de mise à jour produits par cron ( hors admin prestashop)  .. tout fonctionne bien .. les stocks sont mis a jour parfaitement.. le soucis est que pour le module ebay , amazon etc.. ne sont pris en compte seulement les changement de stock  effectués depuis l admin prestashop .

 

Aprés info il s agirait d un hock prestashop qui est activé aprés chaque mise a jour sur prestashop ..

 

Quelqu un peut il m expliquer le fonctionnement , m'apporter une solution pour activer ce hock ..

 

Cordialement

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