Jump to content

Caso curioso. Deja vender sin stock ¿es un fallo?


Recommended Posts

Prestashop 1.6.0.9 plantilla por defecto. Instalado en local con xampp

 

Tenía dudas de qué pasa si 2 personas tienen el mismo producto en el carrito y lo quieren comprar. No sé cuando deja de aparecerle a uno de ellos o más bien en que momento de la compra desaparece del stock.

 

No desaparece cuando estas en el resumen, inicio sesión, dirección, elegir transporte, cuando aparece el resumen final y eliges forma de pago paso 5.pago. Tras esto hay una nueva pantalla para confirmar la compra ¿cuando confirmas el pago? ¿cuando en pago por tarjeta se acepta el pago?

 

Lo tengo configurado por defecto no vender sin stock y en el producto está con al configuración por defecto ( no vender).

 

HIce la siguiente comprobación.

Por un lado firefox con un usuaria A, por el otro ie con usuario B.

Los 2 eligen el mismo artículo, sólo hay 2 en stock de esa combinacion y cada uno de ellos eligen lo 2 que quedan. A los 2 les deja ir hasta el paso de confitrmar.

Como estoy de pruebas hay solo 2 formas de pago, contrarrembolso y tranferencia.

Los 2 eligen tranferencia.

Aparece la pagina de confirmacion de pedido.

Con las 2 pantallas de confirmacion en los 2 navegadores. confirmo en el usuario A la compra.

Espero 10 segundo y confirmo en el usuario B la compra.

A los 2 les deja comprar y sale el cartel de información para hacer transferencia

En  pedidos, el del usuario A aparece el estado de "A la espera de comprobacion de transferencia" Y el pedido del B aparece con el estado de "productos fuera de linea"

El stock de producto aparece con -2

También pasa lo mismo al elegir contrareembolso. Excepto porque curiosamente en la pantalla del articulo y aun habiendo de otra combinación, el botón de añadir al carro desaparece aun eligiendo la otra combibacion que hay stock

 

Y también he probado a que los usuarios A y B se queden en el "5. pago... resumen y forma de pago", Y solo uno eliga y confirma:

El usuario A elige forma de pago y en la soguiente pantalla lo confirma. Lo compra bien.

Y ahora el usuario B elige el pago y confirma, también le deja.

Si el usuario B esta en el tramite de la compra antes del "5. pago... resumen y forma de pago", al llegar ahí ya le avisa de la falta del artículo.

 

La conclusion es que si varios usuarios llegan con el artículo  al paso "5. pago... resumen y forma de pago" se los deja comprar a todos.

Podría darse la circunstancia de ser un producto muy vendible y en el mismo minuto tener a 2 o 3 usuarios. O que uno de ellos tenga la pantalla la "5. pago... resumen y forma de pago" durante 1 hora en la pantalla y lo acabe comprando cuando alguien en esa hora ya lo compró.

 

 

¿Qué solución tiene esto?

 

 

Gracias y espero haberlo explicado bien.

 

 

  • Like 1
Link to comment
Share on other sites

En el segundo mensaje tienes la respuesta exacta a la pregunta: https://www.prestashop.com/forums/topic/444744-permitir-ventas-de-productos-que-no-est%C3%A1n-en-el-inventario-no-funciona/

 

No es un fallo, lo que hayas seleccionado por defecto en "Preferencias" para la venta de productos sin stock es la opción que se auto-seleccionará cuando crees un producto, sin embargo en los productos ya creados si has elegido "permitir ventas cuando no haya stock" tendrás que modificarlos manualmente.

 

Un cordial saludo.

Link to comment
Share on other sites

Hola,

Gracias por la respuesta.

 

Pero creo que no es el caso.

 

Por defecto tengo no vender sin stock. Y en artículo se preselecciona por defecto (no vender sin stock). El artículo creado es nuevo y se creo con la opción general de no vender sin stock.

 

Prestashop no deja vender esos productos si no hay stock mientras no se de este caso concreto. El problema es que si 2, 5, 100 usuarios llegan al punto "5.pago" del carrito habiendo stock, les permitira la venta a todos si finalmente acaban la compra. Podemos decir que comprueba el stock en ese momento y el usuario todavía no ha elegido forma de pago ni ha confirmado. Al primero le  hace un pedido de "preparacion en curso" y a los demás un pedido de "producto fuera de línea", pero está pedido y pendiente de pago. Y lo digo pendiente porque he utilizado 2 formas de pago, contrareembolso y transferencia. No sé lo qué pasa con tarjeta de credito. En principio veo que lo cobrará sin problemas y tendremos que devolver el dinero a los demás usuarios y con su consiguiente cabreo. Pero que pasa si compra 5 cosas y es una de ellas, más problemas.

 

 

Un ejemplo añado al carrito un artículo, llego en el proceso de compra hasta el punto "5.pago". Ahí tengo que elegir la forma de pago pero no la elijo. Dejo esa pantalla 30 minutos en pantalla porque no estoy bien decidido. Cuando me decido eligo forma de pago y me lo deja comprar y quizá en esa medio hora se ha vendido y no hay stock.

O si tienes un producto sin mucho stock y muchos clientes detrás de el, quizá mientras eliges o no forma de pago y confirmas, más clientes han llegado al punto 5.pago y se lo dejarán comprar.

 

 

Acabo de hacerlo de nuevo, he aguntado en el usuario B con la pantalla 10 minutos después de que el usuario A lo comprase y me lo ha aceptado.

Repito si lo tengo en carrito o antes del punto "5.pago" no me deja me dice que no hay stock.

 

 

Un saludo

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

Dish, pues fíjate que ese caso nunca lo había cubierto, es posible que sea un fallo de prestashop mismo y por tanto puedes escribir un correo al soporte oficial para que lo verifiquen.

 

Tiene sentido que se compruebe el stock cuando se vaya a hacer el pago, debido a que antes de hacer el pago el producto está en el carrito pero "no está vendido todavía".

 

Un cordial saludo.

Link to comment
Share on other sites

Veo que nadie más comenta.

 

Añado que en la última versión 1.6.0.14 pasa lo mismo.

 

Si finalmente es un fallo se agradeceria que alguien lo subiera a los fallos de prestashop.

En los primeros mensajes se comenta como subir fallos y se dice también que como es en inlglés, si alguien tiene problemas, que los moderadores con una cuenta de la comunidad podrian subirlos.

Lo agradecería ya que mi inglés es limitado y con más problemas en terminos técnicos.

 

Gracias

  • Like 1
Link to comment
Share on other sites

Buenos días,

tengo el mismo problema.

Dos usuarios han seleccionado el último producto disponible practicamente en el mismo instante y les ha permitido la compra, por lo que ahora tendré que devolver el dinero a uno. Esto no debería permitirlo Prestashop, es un fallo muy grave. He revisado la configuración mil veces y está todo correcto, es bug muy grave. Debería bloquear los productos durante un tiempo y si el usuario no continua después de un tiempo determinado liberarlos. ¿Alguien sabe si este error ha sido resuelto? Si es un error con el tiempo que lleva Prestashop creo que estas tiendas on-line están destinadas a tiendas con muy poco volumen de accesos/usuarios.

Muchas gracias y muy decepcionado con Prestashop.

Saludos

Link to comment
Share on other sites

Pues de momento has dado con la solución Janagar. No sé si tendrá alguna incompatibilidad  y hasta cuando nos durará (en una próxima actualización)

Lo he probado en 1.6.0.14 y funciona.

El primero que confirme el pago es el que se lleva el artículo. El siguiente al confirmar le dice que no hay stock.

Pero tengo la duda de que pasa con los pagos con tarjeta y paypal. Como estoy de pruebas solo pruebo con transferencia bancaria. En este caso la selecciono, prestashop me da los datos de la cuenta para transferir y un botón de confirmar. Pero no sé qué pasa con otros pagos.

 

Si teneis pago con tarjeta o demás comprobarlo y decis qué pasa. Y ya que estamos cuales son los pasos. eliges tarjeta, paypal y se va a¿pasarela de pago del banco? luego ¿te devuelve a prestashop para confirmar? o al pagar con pasarela ya paga y no te devuelve a prestashop, en este caso ¿este parche comprueba el stock en ese momento?

Por favor Juangar compruba si tienes estos pagos y nos dices

 

Un saludo Janagar, muchisimas gracias por encontrarlo y por decirlo.

 

 

Por cierto, algún fallo más tiene https://www.prestashop.com/forums/topic/445467-a%C3%B1adir-un-desde-en-el-precio/

y alguna carencias básicas como facturas rectificativas para devoluciones. Todavía no sé como hacer las devoluciones. https://www.prestashop.com/forums/topic/444801-%C2%BF-es-tan-dificil-esto-devoluciones-reembolso/

Pero tiene muchas cosas y poco a poco va teniendo más y es gratis. Aunque cosas así con los años que lleva tenía que estar pulido.

En este caso concreto y viendo lo corto que es el codigo y "sencillo" no sé porque razón no está ya en la versión de prestashop. Quizá esto trae ¿algún error secundario?

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

Hola admina5,

 

yo utilizo el sistema de pago con tarjeta de Redsys y lamentablemente esta solución no funciona, he activado la forma de pago por tarjeta para ver cómo funcionaba añadiendo ese código y funciona genial. Voy a revisar y comparar el modulo bankwire con el de redsys para ver si puedo hacer que funcione.

El sistema de pago con tarteja mediante Redsys es muy sencillo, seleccionas el método de pago y automáticamente te lleva a la pasarela de pago. El pedido se registra en cuanto regresas del sistema de pago. Redsys tiene un modulo para Prestashop por lo que es muy facil instalarlo y es gratuito.

Bueno, voy a seguir trabajando en esto. Llevo 4 años con mi tienda on-line activada y es la primera vez que me pasa esto, que dos clientes seleccionen el último producto en un mismo breve periodo de tiempo. Son cosas muy básicas que Prestashop debería contemplar desde hace tiempo, si esto no se arregla en breve tendré que buscar otras plataformas más seguras pues ahora me toca contactar con uno de los clientes y decirles cualquier cosas menos que la plataforma no es de fiar.

Saludos

Link to comment
Share on other sites

Pues es una pena. Tenía pensado utilizar también el modulo de Redsys aunque por ahí hay un post diciendo que da algunos problemas

¿Y si les haces la consulta a ellos (Redsys) y les expones el caso? o en el post del modulo https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/

Pero dices que activas el pago con tarjeta y funciona, no entiendo muy bien esto.

Si sacas algo en claro te agreceria que lo comunicaras. Yo de momento estoy en pruebas por lo que no puedo probar al 100%. Cuando tenga tpv virtual y modulo redsys., haré más pruebas.

 

Entonces, entiendo que en concreto el modulo  de redsys  primero pagas y luego a la vuelta baja el stock y se registra el pedido. Pero a la vuelta ¿tienes que confirmar algo?

Es en el momento de pagar en la pasarela de pago cuando debería ver el stock y si hay aceptar el pago. O comprobar la tarjeta y lo de pagar, dejar pendiente el cargo al cliente para volver a prestashop, comprobar el stock y si hay hacer la operacion y finalmente ahora sí cobrarlo.

 

 

Pues sí es una buena faena, por eso postee el mensaje.

Pero sabes si prestashop sabe de este fallo??? alguien lo ha subido a su portal de errores???

 

Un saludo

Edited by admina5 (see edit history)
  • Like 1
Link to comment
Share on other sites

Pues es una pena. Tenía pensado utilizar también el modulo de Redsys aunque por ahí hay un post diciendo que da algunos problemas

¿Y si les haces la consulta a ellos (Redsys) y les expones el caso? o en el post del modulo https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/

Pero dices que activas el pago con tarjeta y funciona, no entiendo muy bien esto.

Si sacas algo en claro te agreceria que lo comunicaras. Yo de momento estoy en pruebas por lo que no puedo probar al 100%. Cuando tenga tpv virtual y modulo redsys., haré más pruebas.

 

Entonces, entiendo que en concreto el modulo  de redsys  primero pagas y luego a la vuelta baja el stock y se registra el pedido. Pero a la vuelta ¿tienes que confirmar algo?

Es en el momento de pagar en la pasarela de pago cuando debería ver el stock y si hay aceptar el pago. O comprobar la tarjeta y lo de pagar, dejar pendiente el cargo al cliente para volver a prestashop, comprobar el stock y si hay hacer la operacion y finalmente ahora sí cobrarlo.

 

 

Pues sí es una buena faena, por eso postee el mensaje.

Pero sabes si prestashop sabe de este fallo??? alguien lo ha subido a su portal de errores???

 

Un saludo

 

El problema es el que dices. PS hace la comprobación en el momento de crear el pedido. Para métodos de pago como transferencia o cheque no hay problema, porque no hay un pago online, pero Paypal y Redsys por ejemplo sí, porque se hace primero el pago y luego se genera el pedido. No sé si Paypal lo tiene controlado.

Link to comment
Share on other sites

Buenos días,

 

A mí me ha pasado hoy dos veces, y llevo ya 6 meses con la tienda online activa y nunca me había pasado. Utilizo la plataforma de pago CECA para los pagos con tarjeta. En ambos casos, el pedido que se ha realizado segundos antes se lleva el producto, y el que lo ha hecho unos segundos después me sale como pedido con "productos fuera de línea" y en el stock del producto, -1. Tengo todos los productos de mi tienda online con la opción seleccionada para que no puedan venderse si no hay stock. 

 

Esto me parece un fallo garrafal de Prestashop, para ser una plataforma de comercio electrónico tan extendida, tiene muchísimas carencias.

 

No me importaría postearlo como fallo, pero no sé dónde debe hacerse. ¿Alguien podría indicarme cómo?

 

Un saludo

Link to comment
Share on other sites

El problema es que normalmente los módulos no generan el pedido hasta que no se confirma/realiza el pago. En el caso de pedidos con pagos online (Redsys, CECA, Paypal, etc.) el usuario puede tardar unos minutos en finalizar el pago, y si en ese momento otro usuario está realizando el pago y es más rápido, se generará y reservará el producto para el pedido del 2º cliente.

 

La otra opción es generar el pedido como "Pendiente" en el momento en el que el cliente se va a la plataforma de pago. Pero y si el cliente no paga? El pedido quedará como "Pendiente" y el stock reservado. Se podría entonces programar un proceso que cada X tiempo cancelara los pedidos, pero durante ese tiempo el stock quedaría reservado y otro cliente no podría realizar la compra.

 

Se os ocurre otra cosa?

Link to comment
Share on other sites

Y no se puede una vez se de al botón de pagar y habiendo rellenado los datos de por ejemplo la tarjeta de credito. Como digo no se puede en ese instante, mirar stock y si lo hay reservarlo o simplemente bajar el stock, bloquearlo y realizar el pago. Si el pago se hace, hacer el pedido. Si el pago falla devolver el stock o liberarlo. Y si no hay stock en este primer proceso no hacer el pagoy  mandar al cliente a la página del resumen del carrito diciendo que ya no hay stock, que otra persona lo compro antes , justo lo que hace ese pequeño codigo que soluciona este problema en el pago por transferencia y contra reembolso.

O para no tener que hacerlo con todos los modulos, y que al cliente le parezca un cachondeo esto, justo en el último momento, hacer la reserva de stock y todo esto al seleccionar la forma de pago (no al ofrecerle las formas de pago). Si se confirma el pago hace pedido, sino se devuelve el stock. Si en 3 minutos  no se hace el pago se devuelve a la página de elegir el pago y se libera el stock. 3 minutos o lo que sea o que se detecte si se fué de  la página y nos ahorramos 3 minutos sin stock de un producto que podemos vender a otro.

 

Por otro lado quizá sería bueno ver como lo solucionan otros como Magento o woocommerce. ¿Cómo lo hacen ellos?

 

Pues sí, es un fallo feo, feo. Y que aparecerá mucho en tiendas que juegan con poco stock.  Justo lo que pensaba hacer. no esta la cosa como para tener 20 unidades de cada.

 

Un saludo

Link to comment
Share on other sites

Buenos días,

 

A mí me ha pasado hoy dos veces, y llevo ya 6 meses con la tienda online activa y nunca me había pasado. Utilizo la plataforma de pago CECA para los pagos con tarjeta. En ambos casos, el pedido que se ha realizado segundos antes se lleva el producto, y el que lo ha hecho unos segundos después me sale como pedido con "productos fuera de línea" y en el stock del producto, -1. Tengo todos los productos de mi tienda online con la opción seleccionada para que no puedan venderse si no hay stock. 

 

Esto me parece un fallo garrafal de Prestashop, para ser una plataforma de comercio electrónico tan extendida, tiene muchísimas carencias.

 

No me importaría postearlo como fallo, pero no sé dónde debe hacerse. ¿Alguien podría indicarme cómo?

 

Un saludo

Aquí  https://www.prestashop.com/forums/topic/213324-%C2%BFcomo-enviar-los-errores-detectados-a-prestashop-leer/

Link to comment
Share on other sites

Y no se puede una vez se de al botón de pagar y habiendo rellenado los datos de por ejemplo la tarjeta de credito. Como digo no se puede en ese instante, mirar stock y si lo hay reservarlo o simplemente bajar el stock, bloquearlo y realizar el pago. Si el pago se hace, hacer el pedido. Si el pago falla devolver el stock o liberarlo. Y si no hay stock en este primer proceso no hacer el pagoy  mandar al cliente a la página del resumen del carrito diciendo que ya no hay stock, que otra persona lo compro antes , justo lo que hace ese pequeño codigo que soluciona este problema en el pago por transferencia y contra reembolso.

O para no tener que hacerlo con todos los modulos, y que al cliente le parezca un cachondeo esto, justo en el último momento, hacer la reserva de stock y todo esto al seleccionar la forma de pago (no al ofrecerle las formas de pago). Si se confirma el pago hace pedido, sino se devuelve el stock. Si en 3 minutos  no se hace el pago se devuelve a la página de elegir el pago y se libera el stock. 3 minutos o lo que sea o que se detecte si se fué de  la página y nos ahorramos 3 minutos sin stock de un producto que podemos vender a otro.

 

Por otro lado quizá sería bueno ver como lo solucionan otros como Magento o woocommerce. ¿Cómo lo hacen ellos?

 

Pues sí, es un fallo feo, feo. Y que aparecerá mucho en tiendas que juegan con poco stock.  Justo lo que pensaba hacer. no esta la cosa como para tener 20 unidades de cada.

 

Un saludo

 

Redsys realiza el cobro y luego va a PrestaShop a generar el pedido. Lo que se podría hacer es realizar la devolución en caso de que no existiera stock.

 

Por otra parte está lo de crear el pedido como "Pendiente" en el momento de conectar con la plataforma de pago y cancelarlo pasado X minutos si no se ha recibido la confirmación. De esta manera tendrías el producto bloqueado durante X minutos y se pueden perder ventas. No es posible saber si el cliente ha cerrado la página.

 

El módulo de Redsys de Magento que conozco lo hace de esta 2ª forma, no sé como lo hace el oficial.

 

La verdad es que es un problema importante pero no parece que ocurra demasiado ya que apenas hay quejas, no sé si las tiendas no tienen tanta concurrencia o trabajan con más stock.

Link to comment
Share on other sites

Buenos días,

 

A mí me ha pasado hoy dos veces, y llevo ya 6 meses con la tienda online activa y nunca me había pasado. Utilizo la plataforma de pago CECA para los pagos con tarjeta. En ambos casos, el pedido que se ha realizado segundos antes se lleva el producto, y el que lo ha hecho unos segundos después me sale como pedido con "productos fuera de línea" y en el stock del producto, -1. Tengo todos los productos de mi tienda online con la opción seleccionada para que no puedan venderse si no hay stock. 

 

Esto me parece un fallo garrafal de Prestashop, para ser una plataforma de comercio electrónico tan extendida, tiene muchísimas carencias.

 

No me importaría postearlo como fallo, pero no sé dónde debe hacerse. ¿Alguien podría indicarme cómo?

 

Un saludo

 

Yo no lo considero un fallo de PrestaShop, si te fijas con sus módulos nativos no pasa (bankwire, cheque, cash on delivery). Pasa con los módulos de pago externos (me refiero a los que se tienen que conectar a otra plataforma de pago, ya que con sus módulos oficiales también pasa como PayPal), pero porque es el circuito que siguen.

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

Pues en realidad sí que pasa con sus modulos oficiales (vender sin stock) Lo único que lo arregla es esta solución del foro que no es oficial y que encontró Janagar https://www.prestashop.com/forums/topic/92883-selling-unique-items-how-to-enforce-quantity-check-during-ordering/

 

O sea que tiene dificil arreglo.

 

La solucion de la devolución no me gusta. Porque es devolucion de dinero ¿verdad?. Primero se cobra y luego devuelves con lo que representa eso, facturas y demás

 

Viendo esto, quizá es la segunda la solución pero qué pasa si pasados esos minutos el cliente le da al botón pagar. O pasados los minutos, la ventana del pago desaparece y redirecciona otra vez a la forma de pago, Esto último sería lo ideal.

Yo prefiero tener el stock bloqueado 2 minutos para ese cliente, que venderselo a otro sin stock. En todo caso cuando alguien llega ahí es para comprar sí o sí lo único que le puede pasar es que redsys (o quien sea) no le autorice el pago

 

Pero lo suyo seria algo externo a los modulos, algo como la solucion que comento al principo el post. Así funcionaria con todoos los modulos de pago.

 

Un saludo

Link to comment
Share on other sites

Añado a lo anterior que habría que hacer algo para que alguien mal intencionado no te tenga el stock bloqueado cada 2 por tres. Quiero decir que alguien te lo añada todo en el carrito y este todo el rato así con el pago elegido esperando a rellenar redsys ( o lo que sea) y que tenga algo automático que cada 3 minutos vuelva otra vez a seleccionar y te deje la página sin stock todo el rato.

 

Estoy viendo que el pendiente o reserva de stock durante minutos puede dar problemas. Lo mejor seria hacer esto de pendiente pero en el mismo instante del pago, como dije en el post de ayer. AL dar al mismo botón de pagar.

 

Otra opcion es dejar pendiente el pago. Es decir, el cliente introduce los datos, da a pagar, se comprueba que todo esta bien por parte de redsys y se devuelve a prestashop, que hay stock  estonces se hace el pedido y ahora si se hace el pago automático. Que no hay se devuelve al resumen y se le dice que no hay stock

 

Saludos

Link to comment
Share on other sites

  • 8 months later...
  • 11 months later...
  • 11 months later...
En 6/6/2015 a las 9:23 AM, janagar dijo:

Hola he seguido este link paso a paso y en mi caso no me funciona. Estoy con prestashop 1.6.1.12. El problema sigue vigente en esta versión. Bueno no se si habrá otra solución alternativa.  Gracias.

Link to comment
Share on other sites

  • 5 years later...

Hola, tenemos el mismo problema pero en Prestashop 1.7.8. Así que en pedidos con muchos productos en el carrito, permite comprar y que se quede el stock a -1 a pesar de tener activada la opción "no admitir pedidos sin stock". Es una chapuza tremenda y está generando muchos problemas a un cliente que continuamente tiene que estar pidiendo disculpas a los compradores.

Link to comment
Share on other sites

  • 3 weeks later...
On 7/11/2023 at 12:07 PM, neich78 said:

Hola, tenemos el mismo problema pero en Prestashop 1.7.8. Así que en pedidos con muchos productos en el carrito, permite comprar y que se quede el stock a -1 a pesar de tener activada la opción "no admitir pedidos sin stock". Es una chapuza tremenda y está generando muchos problemas a un cliente que continuamente tiene que estar pidiendo disculpas a los compradores.

¿Son pedidos que se producen a la vez y coinciden en la plataforma de pago?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...