Top 10 de los Problemas a que Cada Tienda Magento Enfrenta Inevitablemente. Parte 2

Para los desarrolladores, comerciantes experimentados y equipos de soporte…

Ya he revisado 5 primeros problemas desde la Lista del Top 10 de los Problemas de Cada Tienda Magento. Si estabais ocupados o de vez en cuando les perdisteis la semana pasada, es un buen momento para abrir la primera parte ahora mismo: hay muchas posibilidades de que enfrentasteis a estos problemas antes. Así que podéis comparar nuestras recomendaciones con vuestra experiencia. Cuando nada parecido os ha ocurrido a vosotros, no tomáis la situación sin problemas por sentado. El mejor modo de tratar con las dificultades potenciales es estar preparado para ellas.
Como el jefe del equipo de soporte en aheadWorks os aconsejo que estudiéis los casos mencionados a continuación y os comparéis con el conocimiento que nunca se desperdiciará. Cuando uno de estos retos se plantea, podéis hacer frente a él en un momento.



P6: Las extensiones que usan cron funcionan incorrectamente.
R6: El código que presento, muestra uno de los muchos disponibles métodos de protección contra el reinicio de una tarea en ejecución.

 const L_CACHE = 'aw_hdu_lock';
  const L_TIMEOUT = 300;
  
  public function runJobs() {
   if (self::checkLock()) {
     $this->processJobs();
     Mage::app()->removeCache(self::L_CACHE);
   }
  }
 
 public static function checkLock() {
   $_lastExecutionTime = Mage::app()->loadCache(self::L_CACHE);
   if (self::L_TIMEOUT > (time() - $_lastExecutionTime)) {
     return false;
   }
   Mage::app()->saveCache(time(),self::L_CACHE,array(),self::L_TIMEOUT);
   return true;
 }

P7: El código válido devuelve errores en lugar de funcionar sin problemas.
R7: Aquí muestro el problema con los métodos de la última versión de PHP, mientras que en el sitio web del cliente la versión anterior de PHP está instalado. A continuación A continuación señalo el código con tarde enlace estático (Kung Fu de la versión 5.3 de PHP, que no funciona en la version 5.2).

 abstract class AWAS_Model_Indexer_Abstract 
  {
    public function getIndexTableModel() {
     return new AWAS_Model_Zend_Db_Table(array(
       Zend_Db_Table_Abstract::PRIMARY => static::PRIMARY 
     ));
   }
  }
  class AWAS_Model_Indexer_Catalog extends AWAS_Model_Indexer_Abstract 
 {
   const PRIMARY = 'entity_id';
 
   protected function _fillData() {
     $table = $this->getIndexTableModel();
   }
 }

El siguiente código es el mismo, cambiado de utilizar los métodos familiares para las versiones de PHP antiguas.

 abstract class AWAS_Model_Indexer_Abstract 
  {
    abstract protected function _getPrimary();
    public function getIndexTableModel() {
      return new AWAS_Model_Zend_Db_Table(array(
        Zend_Db_Table_Abstract::PRIMARY => $this->_getPrimary()
      ));
    }
  }
 class AWAS_Model_Indexer_Catalog extends AWAS_Model_Indexer_Abstract 
 {
   const PRIMARY = 'entity_id';
   protected function _fillData() {
     $table = $this->getIndexTableModel();
   }
   protected function _getPrimary(){
     return self::PRIMARY;
   }
 } 

La línea final aquí: antes de realizar la personalización, comprobad las versiones de la tecnología en que vuestra tienda se basa. Sólo después de esto comenzad escribiendo el código que funciona con todas las versiones actuales.

 

P8: Habéis instalado la extensión, pero no podéis iniciar la sesión en el panel de administración.
R8: Durante la instalación de la extensión, la compilación fue activada. La imagen muestra lo que se puede hacer, utilizando un estándar arsenal de Magento.

 

Q9: You have customized the store, added new features, changed the template and theme styles. Few weeks later you saw that all changes stopped working. P9: Habéis personalizado la tienda, añadido nuevas características, modificado los estilos de la plantilla y del tema. Pocas semanas más tarde entendisteis que todos los cambios dejaron de funcionar.
R9: Este es el ejemplo de qué la costumbre-pack debe ser, cuando cada archivo con los cambios se duplica (.MODIFIED). Su versión original también se guarda como copia de seguridad (. ORIGINAL).

Copias de seguridad permiten seguir los cambios en cualquier momento, es decir, lo que fue hecho. Duplicados contienen toda la información en caso de actualicéis la extensión y quitéis los cambios sin querer.

 

P10: Para los desarrolladores solamente. Un cliente configura la tarea para vosotros, pero se niega a dar los accesos necesarios.
R10: La siguiente imagen muestra la lista de carpetas, a la que necesitáis el acceso en la mayoría de los casos. Recomiendo a discutir la necesidad de accesos con el cliente antes de continuar con la tarea. Definid las carpetas especiales para ser revelado en lugar de exigir el pleno acceso a todo.



Hombre prevenido vale por dos. Espero que el conocimiento de estos diez problemas y sus soluciones os ayudarán a operar vuestra tienda Magento. Estoy absolutamente seguro de que vais a encontrar o ya habéis descubierto las formas más elegantes para tratar con estos casos. ¡Si es así, nos haced un favor y compartid vuestros hallazgos de huelga en los comentarios!

No Comments

Leave a Comment

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked