· Publicado por Sergio Baixauli en: Magento
Etiquetas: catalog rules, cron, magento, reglas de catálogo - 1.- Damos de alta un producto (con su precio)
- 2.- Creamos un regla ( Admin -> Promociones -> Reglas de precios del catálogo)
- 3.- Damos de alta una nueva regla. En nuestro caso, 20% de descuento para una categoría en concreto.
- 4.- Guardamos y aplicamos la regla.
- 5.- Comprobamos en el front que el precio está saliendo correctamente en la parte visible de la web.
¿Cuál es el problema? Bien, ahora vamos a modifcar el precio del producto. En teoría el nuevo precio también debería tener aplicado esta regla, pero en la práctica esto no ocurre. Se supone que el cron.php debería arreglar esto, pero la verdad es que esto no sucede, además, en el caso de hacerse habrá un intérvalo de tiempo donde el precio no será correcto. ¿Soluciones? La más rápida que he encontrado es esta: 1.- Creamos un cron en el sistema (por ejemplo que se ejecute cada 5 minutos). En el Blog de magento tenemos más detalles.
- */5 * * * * wget -q http://www.yoursite.com/absolute/path/to/magento/cron.php
2.- Editamos nuestro fichero cron.php situado en la raíz de nuestra instalación y lo dejamos así:
- ...
- try {
- Mage::getConfig()->init()->loadEventObservers('crontab');
- Mage::app()->addEventArea('crontab');
- Mage::dispatchEvent('default');
- $ob = Mage::getModel('catalogrule/observer'); //nueva línea
- $ob->dailyCatalogUpdate("*/5 * * * *"); //nueva línea
- } catch (Exception $e) {
- ...
Con esto conseguimos la actualización de las reglas del catálogo cada vez que se ejecuta el cron. Ahora nos encontramos con otro problema. Este no tiene nada que ver con el anterior pero en mi caso ha empezado a ocurrir a raíz de crear reglas para el catálogo. Cada vez que editamos un producto e intentamos guardarlo el proceso demora 30-40 segundos... ¿por qué ocurre esto? Por que al guardar el producto aplicada los descuentos creados en las reglas del catálogo y esto es un proceso muy pesado (si tenemos muchos productos). Por lo menos en la versión 1.3.2.4 ocurre. El error está reportado en este post, y por lo visto ocurre siempre. Esperemos que lo corrijan en la 1.4. La solución pasa por: 1.- Copiar este fichero app/code/core/Mage/Weee/Model/Mysql4/Tax.php y dejarlo en app/code/local/Mage/Weee/Model/Mysql4/Tax.php 2.- Si no estamos usando Weee, poner dentro del nuevo fichero la siguiente función:
- public function updateDiscountPercents()
- {
- //Ignore this function
- return;
- }
En el caso de estar usando Weee, la solución es más compleja, así que pasar por la fuente original para resolver vuestras dudas. Supongo que al final encontrarán una solución fácil
Compartir:








Loading... 


Twitter
Joshua #
15 de Marzo de 2010 a las 17:58