Una situación común al inicio de cada proyecto es crear el repositorio de código para el control de versiones. Normalmente los proyectos en los que trabajo son de tamaño medio o grande por lo que disponemos de un servidor VPS o dedicado en el que instalar el servidor GIT, pero si no es el caso, […]
Magento Integrity constraint violation FK_CAT_PRD_FLAT_1_ENTT_ID CAT_PRD_ENTT_ENTT_ID
El error Integrity constraint violation FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_ID se produce en ocasiones al reindexar el catálogo flat de productos y tiene que ver con algún error que se haya producido al importar o eliminar productos del catálogo y que ha hecho que alguna de las restricciones de tabla del catálogo flat no se cumpla. Magento no elimina […]
Magento: Modificar estado de un producto
Estado habilitado / inhabilitado en Magento Para modificar el estado de un producto en Magento (habilitado o deshabilitado), podemos hacerlo de la siguiente forma: $product = Mage::getModel('catalog/product')->load($id); $product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_DISABLED); $product->save(); Para habilitarlo, como se puede suponer, usaremos la constante Mage_Catalog_Model_Product_Status::STATUS_ENABLED. Estado es stock / fuera de stock en Magento También queremos poder cambiar el estado a […]
Error en Magento: Mage registry key “_singleton/core/resource” already exists
Hoy se ha producido un error en una de las tiendas Magento que gestionamos. Nunca lo habíamos visto hasta ahora, pero hemos estado investigando cómo solucionarlo y os dejamos aquí nuestras conclusiones: El problema se presentaba al intentar acceder a cualquier lugar de la tienda, tanto en el frontend como en el backend de Magento […]
Magento: Obtener productos simples de un configurable
Otro snippet muy utilizado en Magento es obtener la lista de productos simples correspondientes a un producto configurable. Una vez tenemos cargado el producto simple es muy sencillo: // Obtener productos simples para el configurable $productTypeIns = $product->getTypeInstance(true); $childIds = $productTypeIns->getChildrenIds($product->getId()); En el array $childIds obtenemos un array con todas las opciones configurables del producto […]
Magento: Colección de productos filtrados por marca
En Magento, para obtener una colección de productos de la tienda filtrados de una determinada forma, se utiliza habitualmente una consulta como la siguiente: // Todos los productos de una marca $collection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('name') ->addAttributeToSelect('manufacturer') ->addAttributeToFilter(array( array('attribute'=>'manufacturer', 'eq'=>$marca) )); El problema surge siempre con el valor que debe tomar la variable marca, ya que […]
Magento: Obtener opciones de un atributo
Un pequeño snippet para Magento que permite obtener todas las opciones de un determinado atributo tipo Dropdown o Multiselect. // Atributo del que deseamos obtener todas las opciones $attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'manufacturer'); // Obtenemos la colección de opciones $values = Mage::getResourceModel('eav/entity_attribute_option_collection') ->setAttributeFilter($attribute->getData('attribute_id')) ->setStoreFilter(0, false); // Recorremos la colección y la tratamos $lista = array(); foreach […]
Reset de permisos en Magento con chmod
Cuando movemos una instalación de Magento a otro hosting o cuando realizamos ciertas operaciones en el servidor Web, puede que empecemos a tener algunos problemas con nuestra tienda Magento, como por ejemplo: Errores tipo 5xx, que impiden que la tienda funcione correctamente. Imágenes que no se muestran en la tienda pero existen en el administrador. […]
Cambio en el feed RSS de Twitter y el problema con los plug-ins
Es posible acceder a los últimos tweets publicados en nuestra cuenta de Twitter, mediante un feed RSS, al que podemos acceder a través de la siguiente dirección: https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=[nombre-de-usuario] Esta dirección ha cambiado recientemente, ya que anteriormente era: http://twitter.com/statuses/user_timeline/[nombre-de-usuario].rss Durante unos meses han convivido ambas direcciones, pero desde hace unas semanas, esta última ha comenzado a […]
HTML en el formulario de contacto de Magento
El formato del email que se envía con el formulario de contacto de Mangento, es por defecto texto plano, sin ningún tipo de formato. En realidad es un email interno, que sólo llega a los administradores de la tienda, y normalmente no es necesario modificarlo, pero en caso de querer añadir HTML a la plantilla […]
Las imágenes de la descripción (wysiwyg) de un producto en Magento no se muestran
En varias tiendas Magento me he encontrado con este problema, en el que los administradores de la Web se quejan de que las imágenes que suben con el editor Wysiwyg, en la descripción de producto o en otros atributos personalizados, no se muestran al ver la página de producto en el frontend. Es algo común […]
Cambiar la posición del símbolo de moneda detrás de la cantidad en Magento
Una de las peticiones más comunes cuando se desarrollan tiendas online para empresas españolas es la de modificar la posición del símbolo de moneda, que por defecto aparece en Magento delante del importe: € 100,00. Para pasarlo detrás del importe sólo hay que ir al fichero: /lib/Zend/Locale/Data/es.xml y buscar las siguientes líneas: <currencyFormats> <currencyFormatLength> <currencyFormat> […]