Jump to content

Ayuda con modificación consulta SQL


Code-Plus

Recommended Posts

Buenas,

 

Me gustaría saber si alguien me puede ayudar con las consultas SQL, quiero modificar las consultas para que sólo aparezcan los productos en stock, también para los conteos; y aclaro, no quiero desactivarlos, sino que la consulta select no los seleccione.

 

Lo quiero cambiar para:

 

-Listado de productos (categorías).

-Mod. Novedades.

-Mod. Productos destacados.

-Mod. mejores ventas.

-Mod. de búsqueda.

 

Info:

-Versión 1.5.4.1

-Mod. Existencias activado.

-Uso el tema por defecto, pero modificado (aunque no afecta para este asunto).

 

Gracias de antemano, un saludo.

Link to comment
Share on other sites

Ejemplo, mira lo que nos comenta Enrique Gomez para el listado de productos por categorías, aquí: http://www.prestashop.com/forums/topic/262470-solucionado-como-ocultar-productos-sin-stock/?do=findComment&comment=1313833

 


En la clase Category.php hay un método public function getProducts(.....
 
donde hay una consulta SQL para mostrar los productos por categoría
 
 
En la línea 640 si donde pone .' GROUP BY product_shop.id_product'; lo cambias y pones .' AND stock.quantity >0 GROUP BY product_shop.id_product';
 
Estarás filtrando los que tienen stock
 
 
Yo creo que te funcionará, ya dirás.
 
Recuerda que los cambios hechos en el "Core" de PS se pierden al actualizar.
 
 
Saludos
Edited by Sergio Ruiz (see edit history)
Link to comment
Share on other sites

Ejemplo, mira lo que nos comenta Enrique Gomez para el listado de productos por categorías, aquí: http://www.prestashop.com/forums/topic/262470-solucionado-como-ocultar-productos-sin-stock/?do=findComment&comment=1313833

 

Buenas Sergio, gracias por contestar. Esa parte la tengo modificada, es fácil, pero no encuentro la función que cuenta los productos, es decir:

-Por un lado, sólo selecciona los productos en stock.

-Por otro, la función que cuenta (que es a la primera que llama para comprobar si existe algo en la tabla) es distinta, por tanto, en la fila superior del listado de categorías aparece, por ejemplo, 32 productos, y el listado contiene (el modificado) 5 productos; además de formatear la página según el número, por tanto formatea para 32 con sus respectivos números de paso de página siguiente.

 

Además, esa modificación sólo sirve si no usas el mod. de existencias, si le usas, el stock se almacena en otra tabla, por tanto hay que cruzar la consulta con otra tabla distinta.

 

De todas formas gracias por contestar, un saludo.

Link to comment
Share on other sites

El modulo de novedades, trabaja con la función:

 

Trabaja con la función:

getNewProducts

que encontraras en la clase:

/classes/Product.php

---

 

El modulo de productos destacados, trabaja con la función:

getProducts

de la clase

/classes/Category.php

---

 

El módulo de mejores ventas trabaja con la función:

getBestSalesLight

que encontraras en la clase:

/classes/ProductSale.php

--

 

El modulo de busqueda trabaja con la función:

find

de la clase

/classes/Search.php

etc...

 

¿Hasta esas funciones has llegado, o quieres saber como modificas las consultas sql de esas funciones?

Link to comment
Share on other sites

¿Y por qué quieres hacerlo desde la consulta SQL?

 

Te sería más fácil filtrar los resultados en el template, sobre todo para futuras actualizaciones.

 

Sería tan fácil como añadir un {if $product.qtty > 0}…{/if} en los .tpl afectados.

Link to comment
Share on other sites

¿Y por qué quieres hacerlo desde la consulta SQL?

 

Te sería más fácil filtrar los resultados en el template, sobre todo para futuras actualizaciones.

 

Sería tan fácil como añadir un {if $product.qtty > 0}…{/if} en los .tpl afectados.

 

Es una opción tambien, pero lo comento a modo personal por que lo tengo analizado que esa condicional en esos casos en el tpl es peligrosa y conlleva una carga excesiva de recursos, porque no estas parando la ejecución de la consulta, estas cortando simplemente la impresión en el tpl.

 

Con pocos productos te vale, pero con una cantidad de productos grandes se nota a efectos internos.

Link to comment
Share on other sites

Además, ahora tengo una pequeña confusión, la versión 1.5 tiene incluido el ocultamiento de stock? La opción se encuentra en: Preferencias > Productos > Op. ¿Mostrar productos no disponibles en la página de producto?

 

Está opción es para que no muestre los productos sin stock, sólo en los listados de categorías?

 

Si es así, no es necesario modificar el getProducts, cierto?

 

Gracias, un saludo.

Link to comment
Share on other sites

El problema de modificar el tpl, es que como la consulta original se hace completa, se formatea la página para todos esos productos, y queda muy feo.

 

Por ejemplo, una consulta de productos nuevos resulta 55 productos, pero en realidad sólo 2 son con stock, modificando el tpl, te prepara la página para mostrar 55 productos en vez de 2; y las diferencias son considerables.

 

Además, desde la consulta es mucho más limpio y profesional :P

 

Respecto a las actualizaciones, ya está díficil, ahora que casi acabe de ponerlo como quiero, salio la última; con la cantidad de modificaciones que he hecho y donde las he hecho; ya no me sirve un autoUpdate.

 

Un saludo!

Edited by imHOTTO (see edit history)
Link to comment
Share on other sites

Además, ahora tengo una pequeña confusión, la versión 1.5 tiene incluido el ocultamiento de stock? La opción se encuentra en: Preferencias > Productos > Op. ¿Mostrar productos no disponibles en la página de producto?

 

Está opción es para que no muestre los productos sin stock, sólo en los listados de categorías?

 

Si es así, no es necesario modificar el getProducts, cierto?

 

Gracias, un saludo.

Esa opción esta mal traducida, cuando ves la opción en ingles se llamada. (La opción, creo recordar que va mas por el tema de las combinaciones, vamos creo que no tiene que ver con el listado de productos si no me falla la memoria)

Display unavailable product attributes on the product page

Link to comment
Share on other sites

Sí es esa, es que por comodidad, solía usar la Guía de la versión 1.4; hasta que llegue a los cambios sustanciales...ahora sigo la Guía del 1.5

 

Aún así, la opción no me queda muy clara. Se supone que si tienes un producto de varios colores, si falta un  color no te muestra la opción de comprarlo. La duda es, y si faltan todos? en teoría el código no debería de mostrar ninguno.

Link to comment
Share on other sites

 

...esa condicional en esos casos en el tpl es peligrosa y conlleva una carga excesiva de recursos, porque no estas parando la ejecución de la consulta, estas cortando simplemente la impresión en el tpl.

 

Vaya! :(

 

Gracias por la aclaración

Link to comment
Share on other sites

Vaya! :(

 

Gracias por la aclaración

 

Vamos, pero lo que comento ocurre en ocasiones en las que se mueven mucho muchos productos, sino es asi, no me preocuparia, ya que en el tpl puedes hacer de todo prácticamente. (creo *)

Link to comment
Share on other sites

  • 3 weeks later...

Hola, Yo tambien tuve un caso un poco particular y al principio comence a usar la salida tpl para filtrar, luego me concenci que no tenia los recursos sufiente en codigo para todo el filtro. En mi caso mi fui al modulo seach de mi filtrador de productos y modifique la array que manda a la tpl. Ciertamente mi problema era que queria filtrar según ciertos atributos, pero se me complico con la consulta sql y tuve que emplear ese medio y todo me esta funcioando de maravillas. Suerte.

Link to comment
Share on other sites

Hola, Yo tambien tuve un caso un poco particular y al principio comence a usar la salida tpl para filtrar, luego me concenci que no tenia los recursos sufiente en codigo para todo el filtro. En mi caso mi fui al modulo seach de mi filtrador de productos y modifique la array que manda a la tpl. Ciertamente mi problema era que queria filtrar según ciertos atributos, pero se me complico con la consulta sql y tuve que emplear ese medio y todo me esta funcioando de maravillas. Suerte.

 

 

¿Modulo search de filtrador de productos? ¿Te refieres al modulo de busqueda rapida que lleva prestashop o al modulo de navegacion por facetas o a un modulo que has desarrollado desde cero? u ¿Te refieres al desplegable filtrador del listado de productos?

 

Seria positivo, si pudieras compartir tu aporte de forma completa con la Comunidad, así le serviría de ayuda para otros usuarios.

 

Saludos,

 

@imHOTTO como comente en el foro: http://www.prestashop.com/forums/topic/282730-comunicado-de-despedida-de-la-comunidad-por-parte-del-usuario-nadie/?view=findpost&p=1422288  me voy breve para siempre del foro, por lo que ya estoy en modo casi-desactivado, y en unos días en modo totalmente desactivado.

 

Saludos,

 

Saludos,

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...