Estoy tratando de averiguar cuántas veces se ordenó un producto en las últimas dos semanas. Hasta ahora tengo un bucle para obtener los productos.
foreach($productCollection as $product){
}
Supongo que debería poder obtener los detalles del pedido con esto colocado dentro del bucle
$order_items = Mage::getResourceModel('sales/order_item_collection')
No estoy seguro de cómo filtrar esto. Sé que debe filtrarse por ID de producto y también el pedido debe haberse realizado en las últimas 2 semanas.
¿Cómo debería ser la sintaxis para esta consulta, por favor?

Respuestas:
Comencemos pensando en el SQL, no en Magento (llegaremos allí más adelante). Lo escribiría como tal (ignorando las zonas horarias por simplicidad):
Esa consulta funciona (probé). Entonces, ¿cómo haríamos para escribir esta consulta en Magento?
sales_flat_order_item: Magento tiene una colección especial de recursos para esta tabla; podemos hacer uso de eso.SUMen una de las columnasWHEREtiene unaBETWEENcláusula: probablemente podamos usarlaZend_Db_Exprpara generar nuestro marco de tiempo de 2 semanas.GROUPVeamos si no podemos armarlo, entonces, con una llamada rápida
resetpara asegurarnos de que solo obtengamos las columnas que definimos, y nada más:Un simple eco de
$query->getSelect()nos muestra que la consulta está formateada bastante bien:Otras Consideraciones:
En el futuro, es posible que desee filtrar este informe en función del estado del pedido (unirse a otra tabla) o puede asegurarse de que las zonas horarias sean precisas (en este momento está informando en base a GMT).
Unirse es simple:
Pero agregar zonas horarias puede ser complicado. Busque
Mage_Core_Model_Datealgunos métodos que conviertan las marcas de tiempo hacia y desde GMT. También mire la colección de informes de ventas.¡Espero que ayude! La mejor de las suertes.
fuente
$queryestaba!