2014-05-09 6 views
3

Nous rencontrons des problèmes pour obtenir un magasin Magento afin d'appliquer les règles de prix catalogue. C'est un assez grand magasin (2 magasins, 30000 produits), et nous essayons d'appliquer une réduction globale à la plupart des produits dans le magasin.Magento - Impossible d'appliquer les règles de prix du catalogue

Nous pouvons mettre en place la règle de prix, mais quand nous allons l'appliquer, il tourne juste pendant une heure ou plus, puis se bloque, sans appliquer de prix. En théorie, c'est parce qu'il essaie d'écrire autant d'enregistrements dans la base de données et qu'il finit par expirer, mais peu importe les limites de temps que nous avons définies au niveau du serveur et de PHP, elles ne se terminent jamais.

Je ne savais pas si nous pouvions faire cela différemment pour le rendre plus efficace?

+0

Je suis le même problème avec magento 1.7.0.2 - le résultat est fenêtre vide. Error.log dit - PHP Erreur fatale: La taille de la mémoire autorisée de 2902458368 octets épuisés (essayé d'allouer 262144 octets). Est-il vraiment possible que 3 Go de RAM ne soit pas suffisant? (33000 produits, 1 magasins voir) –

Répondre

2

Ci-dessous est l'approche que nous appliquons pour le grand catalogue lors de l'enregistrement de la règle de prix catalogue.

J'ai créé un script pour appliquer une règle de catalogue, exécuté avec une ligne de commande. Et créez également un travail cron pour exécuter ce script pendant la nuit.

Il suffit de créer un fichier php sur la racine de votre magento et placé au-dessous du code dans ce fichier

try { 
     Mage::getModel('catalogrule/rule')->applyAll(); 
     Mage::app()->removeCache('catalog_rules_dirty'); 
     echo Mage::helper('catalogrule')->__('The rules have been applied.'); 
    } catch (Exception $e) { 
     echo Mage::helper('catalogrule')->__('Unable to apply rules.'); 
     print_r($e); 
    } 

Et courir avec la ligne de commande ou de créer cron job pour ce script. Cela s'appliquera à toutes les règles du catalogue,

+0

Merci, je vais essayer et vous revenir - comme une note à quelqu'un d'autre qui lit ceci, vous devrez appeler require "app/Mage.php"; tirer dans la classe Mage. –

+0

cela fonctionne-t-il? –

0

J'ai trouvé une solution à cela en m'assurant que l'utilisateur de la base de données a les privilèges nécessaires pour créer des tables dans la base de données magento. L'application de règles de prix semble créer des tables temporaires que mon utilisateur de base de données n'a pas été autorisé à faire.

Les paramètres sont situés dans app/etc/local.xml

Hope this sauve le jour de someones :)

-MPu

Questions connexes