Una consulta que hemos recibido recientemente en la oficina era de un cliente que había perdido su acceso a Drupal 6 con la cuenta de administrador. Había cambiado la clave y no recordaba la nueva. Restaurar password en Drupal 6 Para solucionar el problema en Drupal 6 es necesario acceder a la base de datos […]
Magento: Filtrar colección de productos
Colección con todos los productos en Magento Con la siguiente colección podemos obtener todos los productos de nuestra tienda Magento: $collection = Mage::getModel('catalog/product')->getCollection(); Colección de productos filtrada por atributo simple en Magento Si queremos filtrar la colección por un atributo simple (de texto, no dropdown o multiselect), como el nombre de un producto, el SKU, […]
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 […]
Magento: cambiar código de un atributo
El código de cualquier atributo en Magento es un valor de sólo lectura, y una vez establecido no es posible modificarlo… desde el administrador… Cambiar el código de un atributo en Magento es tan sencillo como ir a la base de datos y buscar el atributo en la tabla eav_attribute. Allí podemos cambiarlo con las […]
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 […]
iOS: Obtener una imagen del carrete
Cuando estamos creando una aplicación iOS para la que necesitamos obtener una foto del carrete de nuestro iPhone / iPad, tenemos que utilizar la clase: UIImagePickerController. Normalmente lo haremos de la siguiente forma en nuestro controlador: // Preparamos el image picker imgPicker = [[UIImagePickerController alloc] init]; [imgPicker setDelegate:self]; // Establecemos el origen de la imagen […]
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. […]
Eliminar de la cola de tareas del boletín de noticias de Magento
Magento es una plataforma de lo más completa, pero a veces falla en lo más básico, y esto es otra buena muestra de ello. Todos los que desarrollamos en Magento nos encontramos siempre con la cuestión de borrar los pedidos de prueba que se realizan durante el desarrollo de la tienda. Magento no permite borrar […]
Sobreescribir un fichero config.xml en la rama local
Un clásico de Magento es tener que realizar alguna modificación en los ficheros de configuración del Core (config.xml). La forma correcta de hacerlo, si nos fijamos en otras acciones similares de reescritura de ficheros, puede parecer que sería copiar el fichero a la rama local de la instalación. Sin embargo, al igual que ocurre con […]