Stock en lista de p...
Avisos
Vaciar todo

Stock en lista de productos  

 
César
 César
Usuario eminente

Hola equipo, mi versión de prestashop es la 1.6.0.14, estoy actualizando el stock de productos mediante un archivo csv.
Cada producto se compone de una sola combinación, es decir, no hay diferentes combinaciones por cada producto, sino una sola (la combinación se utiliza para tener ciertos atributos).
Cuando actualizo el stock mediante el archivo csv, solo actualiza la cantidad en la vista CATALOGO->PRODUCTOS, pero cuando entro a un producto específico el stock no se ha actualizado, esto supongo que se debe por contener aunque sea una sola combinación,
Como actualizar combinaciones usando un csv es una odisea y realmente el stock que me importa es el que se visualiza en la vista CATALOGO->PRODUCTOS (me interesa ese stock porque es el que se puede modificar mediante el csv productos) ¿Se puede obtener mediante PHP dicho stock para mostrarlo?

El stock solo lo utilizo para mostrar al usuario:
- 0 --> No disponible
- 0 a 100 --> Disponible en taller
- 100 a 200 --> A partir de 48 horas
- 200 a 300 --> A partir de 2 semanas

Cuando un usuario entra en un producto individual, con este código me funciona perfecto:
Archivo --> product.tpl
Fecha aproximada de montaje:
{if $product->quantity == 0}{l s='No disponible temporalmente'}{/if}
{if $product->quantity >0 && $product->quantity quantity > 100 && $product->quantity quantity > 200 && $product->quantity product-list.tpl
Fecha aproximada de montaje:
{if $product.quantity == 0}{l s='No disponible temporalmente'}{/if}
{if $product.quantity >0 && $product.quantity 100 && $product.quantity 200 && $product.quantity <=300}{l s='A partir de 2 semanas'}{/if}

En este caso no me vale porque $product.quantity extrae el stock de la combinación... el cual no se actualiza con el csv, y ahí tengo el lío :blush:
Necesito extraer el stock de la vista individual, pero $product->quantity solo funciona en product.tpl y no en product-list.tpl

He indagado pero no encuentro nada que funcione.
Mirando la base de datos, en la tabla ps_stock_available encuentro el mismo producto duplicado, uno con el stock que me interesa y el otro con el stock que NO se modifica por ser una combinación.

Podéis ver el problema visitando un resultado de búsqueda:
https://www.labestiadelneumatico.com/search?controller=search&search_query=s__9/anchura_-205/altura_-55/diametro_-16/fabricante-dayton&orderby=price&orderway=asc&submit_search=#s-9/anchura_-205/fabricante-dayton

El primer producto aparece como A partir de 48 horas (error), pero si entráis en su ficha individual aparece como Disponible en Taller (correcto).

Espero que alguien me pueda ayudar a obtener el stock que me interesa en la vista del product-list.tpl

Gracias por la atención.

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 30/01/2019 8:12 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola César.

.- Accede a parámetros avanzados -> importar CSV.
.- En la columna de la derecha verás una opción para descargar un archivo de ejemplo de combinaciones, descarga el archivo.

Las columnas obligatorias de rellenar para poder hacer una importación son: Product ID, Attribute y Value.

Product ID* añades el ID del producto al que quieres añadir combinaciones
Attribute (Name:Type:Position)* establecemos el atributo " Nombre:Tipo:Posición "
.- Name: nombre del atributo (si el atributo ya está creado ve a “Catálogo > Atributos y características” para ver su nombre).
.- Tipo: aquí estableceremos la tipología del atributo, que pueden ser: color, select o radio
Por ejemplo para un atributo de color y talla " Talla:select:1,Color:color:2 "

Impact on Price: Aquí estableceremos el impacto en el precio de venta de la variación de producto.
Es la variación con respecto al precio base que hayas puesto al producto. Es decir, que si en el impacto en el precio pones 20 € y el precio base que hemos configurado al subir el producto es de 50 €, el precio de venta de la variación de producto que estamos creando será de 70 €.

Quantity: Aquí estableceremos el stock de la variación que estamos creando. Es decir, pondremos el número de unidades disponibles de esta combinación de producto.

Con estos pasos tendrás creado el archivo CSV con los datos de los productos variables para poder ser importado.

Espero que esta información te sirva para lo que estas buscando, de no ser así por favor indícalo para que podamos seguir ayudándote.

Un saludo

ResponderCitar
Respondido : 30/01/2019 12:06 pm

Cursos Gratuitos WordPress

César
 César
Usuario eminente

Hola Pepe, gracias por la ayuda prestada.

La opción de importar combinaciones ya la había barajado, pero crear a mano un archivo csv de más de 6.000 referencias... es una locura, lo cual tendré que hacer si no hay otra forma de hacerlo 🙁

Con respecto a mostrar dicho stock mediante php en el archivo product-list.tpl, ¿hay alguna forma?
- ¿Puedo generar alguna consulta a la base de datos desde dicho archivo, guardarlo en una variable y poder usar sus valores?

Nuevamente, gracias Pepe.

ResponderCitar
Respondido : 30/01/2019 6:43 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Con respecto a mostrar el stock, tendrías que recuperarlo por programación, revisa este código de referencia:
https://stackoverflow.com/questions/27810695/how-to-display-product-quantity-in-prestashop

Aquí la discusión en for de PrestaShop
https://www.prestashop.com/forums/topic/158702-add-in-stock-quantity-to-product-list-of-default-theme/

Saludos.

ResponderCitar
Respondido : 30/01/2019 9:10 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

César
 César
Usuario eminente

Hola Jhon,

Gracias por su ayuda, en ambas discusiones, que vienen de la misma, es para mostrar la cantidad de stock del producto con combinaciones, que es exactamente como lo tengo yo, por lo tanto no me vale.

He pensado que quizás podría crear una variable global que recoja el stock del producto sin combinaciones y luego utilizarla en el archivo product-list.tpl

¿Podrías orientarme en qué archivo tengo que crearla para poder utilizarla después?

Un saludo.

ResponderCitar
Respondido : 31/01/2019 5:10 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Según lo que comentas, entiendo que quieres acumular el stock de todas las combinaciones para mostrarlo en la lista. Eso es precisamente lo que hace el código que esta en el enlace:
https://stackoverflow.com/questions/27810695/how-to-display-product-quantity-in-prestashop

Si no es esto detalla un poco más.

Saludos.

ResponderCitar
Respondido : 31/01/2019 6:39 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

César
 César
Usuario eminente

Hola de nuevo Jhon,

No quiero mostrar todo el stock de las combinaciones.
Solo tengo una combinación por producto.

Quiero mostrar el stock general:
- Stock general (id 21008): 100 unidades
- Stock combinación (id 21008): 200 unidades

Quiero mostrar las "100 unidades"

Cuando actualizo el stock mediante csv se actualiza el stock general, por eso necesito ese.

Gracias por la atención

ResponderCitar
Respondido : 01/02/2019 5:21 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

No logro comprender bien como lo tienes, por lo que envías lo que tienes es inconsistente

Tienes un stock de combinación de 200 y un general de 100 para el mismo producto?

Lo lógico es que si tienes sólo una combinación al menos debería ser el mismo en ambos.
Podrías detallar un poco más porqué lo tienes así?, lo correcto sería que corrijas el stock de la combinación que es el que finalmente se usa siempre en el código.

Saludos.

ResponderCitar
Respondido : 01/02/2019 5:50 pm

César
 César
Usuario eminente

Eso es lo primero que pensé, que había incongruencia en los datos.

Si desde el backoffice actualizo la cantida de un producto determinado por ejemplo a 200 unidades, cuando salgo a la vista de productos el stock aparece en 200, hasta ahí correcto, pero cuando actualizo el stock del producto a 100 unidades mediante un archivo csv, el stock en la vista productos en el backoffice aparece 100, pero si entro en su ficha y me voy al apartado "cantidades" ahí sigue apareciendo 200.

En la imágenes adjuntadas en el primer mensaje se detalla.

Muchas gracias por el interés en ayudarme

ResponderCitar
Respondido : 01/02/2019 7:20 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Puedes evitar tener stock por combinaciones, realiza esto con un producto y elimina el stock de las combinaciones y sólo quédate con la combinación general, esto sería más consistente ya que al parecer tienes un problema con los datos que ya tienes.

Saludos.

ResponderCitar
Respondido : 01/02/2019 9:16 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

César
 César
Usuario eminente

He probado a eliminar el stock de la combinación, pero no se puede, salta un mensaje con "Valor indefinido" (adjunto imagen), si intento guardar me la cantidad de unidades que había (200).

He probado a dejar el stock en 0 unidades, pero al guardar me deja el stock general también en 0.
Después he actualizado el stock mediante csv, quedando en el general en 100 unidades y en el de la combinación en 0, pero entonces cuando el usuario visualiza los productos desde los resultados de búsqueda, ese producto no aparece por tener el stock en 0.

Este es el resumen:
- Cuando un usuario visualiza la lista de productos, el stock que se muestra es el de la combinanción.
- Cuando un usuario visualiza un producto en concreto, el stock que se muestra es el general.

Desde mi punto de vista, un error de la plataforma prestashop.

¿Se te ocurre alguna idea Jhon?

ResponderCitar
Respondido : 01/02/2019 9:51 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Cesar.

Creo que no nos estamos entendiendo.

¿ lo que quieres es mostrar el total de productos que tiene un producto ?
.- Accede a Preferencias -> Productos

En el bloque " Página de producto " veras que tienes una opción " Mostrar las cantidades disponibles "

Un saludo

ResponderCitar
Respondido : 02/02/2019 2:47 pm

Cursos Gratuitos WordPress

César
 César
Usuario eminente

No, no nos estamos entendiendo. Lo vuelvo a explicar.

Tengo una SOLA combinación para cada producto (porque necesito atributos).
Yo pongo una cantidad de stock para un producto en "200" unidades.
Cuando actualizo dicha cantidad mediante un archivo CSV, por ejemplo en "100" unidades, solo se aplican los cambios en esta vista:

Cuando vuelvo a entrar en el producto, el stock sigue estando en "200" unidades, aquí no se ha actualizado:

Se supone que cuando hay una SOLA combinación el stock debe ser el mismo y mediante CSV debería poder administrarlo.
Esta incongruencia de datos origina el siguiente problema:
Cabe resaltar que el stock solo se utiliza para controlar los mensajes mostrados (fecha de montaje) y no para controlar el stock de los productos (suena raro pero es así).

- Cuando un usuario visualiza el producto individualmente:
Mediante PHP ($product->quantity) en el archivo product.tpl rescato el stock para mostrar un mensaje, el stock que rescato es el de "100" unidades (Disponible en Taller).

- Cuando un usuario visualiza el producto en los resultados de búsqueda:
Mediante PHP ($product.quantity) (nótese que la variable que se usa es diferente) en el archivo product-list.tpl rescato el stock para mostrar el mensaje, pero en este caso el stock que recupero es el de "200" unidades (A partir de 48 horas)

Por eso, la fecha de montaje es diferente para un mismo producto, según se vea en los resultados de búsqueda o en la ficha del producto individualmente.
He aquí, mi gran problema 🙁

Por eso preguntaba, si hay alguna manera de poder obtener mediante PHP el stock de las "100" unidades también en la vista de los resultados de búsqueda (archivo product-list.tpl), y así poder mostrar el mismo mensaje sin incongruencias (la fecha de montaje sería la misma reflejada tanto en el resultado de búsqueda como en la ficha del producto).

En mensajes anteriores adjunté una imagen de la BBDD, de la tabla ps_stock_available donde aparece el mismo producto (misma ID) por duplicado, uno de ellos con las 100 unidades y justo debajo el otro con las 200 unidades.

Se diferencian solo en una cosa (a parte del stock :whistle: ), en este valor:
- El producto con 100 unidades -> id_product_attribute=0
- El producto con 200 unidades -> id_product_attribute=15694

Así que, he construido esta sencilla consulta que extrae el stock que me interesa:
SELECT id_product, quantity
FROM ps_stock_available
WHERE id_product_attribute=0
ORDER BY id_product

Esto me devuelve todos los productos con el stock que se modifica mediante el CSV (stock sin combinación), el cual es el que me interesa para mostrar el mensaje correctamente.

Se me ocurrió que podría crear una variable global y rescatar dicho stock de la BBDD, y así poder utilizarla en el archivo product-list.tpl que es donde tengo la incongruencia.

Espero que nos hayamos entendido, y si pudierais orientarme en dónde tengo que crear la variable global, os lo agradecería muchísimo, llevo arrastrando este problema por un tiempo.

Un saludo, y gracias por la atención.

ResponderCitar
Respondido : 05/02/2019 4:10 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Cesar:

En esta entrada tienes todas las constantes de defiens y variables que se utilizan en prestashop:
-> https://blog.floriancourgey.com/2018/04/constants-and-variables-for-prestashop/

En el foro no damos soporte para programación, si quieres puedes ponerte en contacto con algún colaborador para que te indiquen la manera de implementarlo:

-> https://www.webempresa.com/directorio-colaboradores.html

Un saludo

ResponderCitar
Respondido : 05/02/2019 2:05 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress