Post by pablich » Tue Apr 15, 2014 4:36 am

Hola Gente, como va?

Estoy intentado modificar la vista de mis productos cuando se entra a una categoría o cuando se realiza una búsqueda.
En mi base de datos tengo cargado los productos:
Por ejemplo:
Name: Lapicera x unidad
Model: 045951899x1

Name: Lapicera x 9 unidades
Model: 045951899x9

Los dos productos son exactamente iguales, solo cambia la cantidad. Y en el código solo cambia el final, x1 o x9 dependiendo la cantidad.

Lo que quiero es agrupar estos casos de la siguiente forma:
combo.jpg

combo.jpg (15.9 KiB) Viewed 836 times

Estoy intentado localizar la consulta a la base de datos, para modificara y ver si puedo hacer que agrupe los resultados cuando los primeros 10 números del model son iguales.
Alguien sabe donde se encuentra esta consulta?
Según estuve viendo esta en public function getTotalProducts($data = array()) de catalog/model/catalog/product.php es correcto esto?
Alguna idea de como puedo hacerlo? Desde ya muchas gracias!

New member

Posts

Joined
Thu Feb 13, 2014 12:26 am

Post by cofran » Tue Apr 15, 2014 11:10 am

Y porque no lo haces con las opciones del producto, ejemplo el producto es el lápiz y las opciones son 1 unidad 9 unidades etc, de ultima si todos tus modelos utilizan el mismo patrón "código_x_unidad" podes concatenar las opciones del producto (unidades) a ese código... se me ocurre ami hacerlo así me parece menos complicado.

Para los resultados del buscador:
catalog/controller/product/search.php
catalog/model/catalog/product.php

No lo he probado pero debería ser por acá:

Code: Select all

$sql .= " GROUP BY p.product_id";
Por ejemplo al controller del search, cuando llama a la función getProducts($data) al array ese del $data pasale por ejemplo un valor cualquiera, ejemplo:

Code: Select all

'ordenar_modelo' => TRUE;
y en el model (para no romperlo porque la función getProducts la ultiliza el sistema para otras cosas), donde esta el código:

Code: Select all

$sql .= " GROUP BY p.product_id";
ponele un condicional, por ejemplo:

Code: Select all

if ( ($data['ordenar_modelo']) ) {
$sql .= " GROUP BY p.product_id, p.model";
} else {
$sql .= " GROUP BY p.product_id";
}
Vuelvo a repetir, lo estoy pensando no he probado nada de todo eso pero es más o menos por donde deberías ir.

Saludos!

User avatar
Active Member

Posts

Joined
Thu Oct 01, 2009 7:37 am
Location - Córdoba, Argentina

Post by pablich » Wed Apr 16, 2014 2:42 am

cofran wrote:Y porque no lo haces con las opciones del producto, ejemplo el producto es el lápiz y las opciones son 1 unidad 9 unidades etc, de ultima si todos tus modelos utilizan el mismo patrón "código_x_unidad" podes concatenar las opciones del producto (unidades) a ese código... se me ocurre ami hacerlo así me parece menos complicado.

Para los resultados del buscador:
catalog/controller/product/search.php
catalog/model/catalog/product.php

No lo he probado pero debería ser por acá:

Code: Select all

$sql .= " GROUP BY p.product_id";
Por ejemplo al controller del search, cuando llama a la función getProducts($data) al array ese del $data pasale por ejemplo un valor cualquiera, ejemplo:

Code: Select all

'ordenar_modelo' => TRUE;
y en el model (para no romperlo porque la función getProducts la ultiliza el sistema para otras cosas), donde esta el código:

Code: Select all

$sql .= " GROUP BY p.product_id";
ponele un condicional, por ejemplo:

Code: Select all

if ( ($data['ordenar_modelo']) ) {
$sql .= " GROUP BY p.product_id, p.model";
} else {
$sql .= " GROUP BY p.product_id";
}
Vuelvo a repetir, lo estoy pensando no he probado nada de todo eso pero es más o menos por donde deberías ir.

Saludos!
Gracias Fran por la ayuda nuevamente, voy a ver si me sale agrupar la consulta para poder mostrarla después en el ciclo foreach.

New member

Posts

Joined
Thu Feb 13, 2014 12:26 am
Who is online

Users browsing this forum: No registered users and 8 guests