Trabajar con Colecciones en Magento


Si miramos nuevamente el ejemplo de código anterior, podemos notar que no sólo hemos instanciado un modelo de producto, sino que también hemos llamado al método getCollection(). El método getCollection() es parte de la clase Mage_Core_Model_Abstract, lo que significa que cada modelo único dentro de Magento puede llamar a este método.

Todas las colecciones heredan de Varien_Data_Collection.

Una colección en Magento básicamente es un modelo que contiene otros modelos. Así que, en lugar de utilizar una matriz para mantener una colección de productos, podríamos utilizar una colección de productos en su lugar. Las colecciones no sólo proporcionan una estructura de datos conveniente para los modelos de agrupación sino que también proporcionan métodos especiales que podemos utilizar para manipular y trabajar con la colección de entidades.

Algunos de los métodos de recolección más útiles son:

  • addAttributeToSelect : Para agregar un atributo a entidades de una colección, se puede utilizar * como comodín para agregar todos los atributos disponibles.
  • addFieldToFilter : Para agregar un filtro de un atributo a una colección, esta función se utiliza en los modelos regulares, no en modelos EAV.
  • addAttributeToFilter :  Este método se utiliza para filtrar una colección de entidades EAV.
  • addAttributeToSort : Este método se utiliza para agregar un atributo de criterio de ordenación.
  • addStoreFilter : Este método se utiliza para almacenar un filtro de disponibilidad; que incluye el producto de la disponibilidad.
  • addWebsiteFilter : Este método se utiliza para añadir un filtro de sitio web a una colección.
  • addCategoryFilter : Este método se utiliza para especificar un filtro de categoría para una colección de productos.
  • addUrlRewrite : Este método se utiliza para agregar datos de reescrituras de URL a un producto.
  • setOrder : Este método se utiliza para establecer el orden de clasificación de una colección.

Estas son sólo algunas colecciones de métodos disponibles; cada colección implementa métodos únicos y diferentes, dependiendo del tipo de entidad a la que correspondan. Por ejemplo, la colección Mage_Customer_Model_Resource_Customer_Collection tiene un método único llamado groupByEmail(), que tiene el nombre que correctamente implica y agrupa a las entidades dentro de una colección por correo electrónico.

Como en los ejemplos anteriores, vamos a seguir trabajando con los modelos de productos, y en este caso, la colección de productos.

Con el fin de ilustrar mejor cómo podemos utilizar la colección, vamos a trabajar en los siguientes escenarios de productos comunes:

  • Obtener una colección de productos sólo de una categoría específica.
  • Recibir nuevos productos desde una fecha X.
  • Obtener los productos más vendidos.
  • Filtrar una colección de productos por la visibilidad.
  • Filtrar productos sin imagen.
  • Agregar varios criterios de ordenación.

Añadir nuevo comentario

CAPTCHA
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.
4 + 2 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.