Jump to content

[SOLUCIONADO] Estado erróneo para ordenes con productos fuera de stock


Recommended Posts

Buenas

Desde hace unos días ofrecemos en nuestra tienda la posibilidad de comprar un producto aunque esté fuera de stock (avisamos de cuando estará disponible).

El caso es que cuando un cliente hace una compra con uno de estos productos el estado del pedido pasa a "En reparto" en vez de a "Pago aceptado" sea cual sea el sistema de pago.

Esto supone un pequeño inconveniente de gestión y no encuentro ninguna opción que me permita configurar esto debidamente.

¿Alguna idea?

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

Ve a la clase PaymentModulo.php (recuerda hacer un override), linea 560 encontrarás esto:

                    if (Configuration::get('PS_STOCK_MANAGEMENT') &&
                            ($order_detail->getStockState() ||
                            $order_detail->product_quantity_in_stock < 0)) {
                        $history = new OrderHistory();
                        $history->id_order = (int) $order->id;
                        $history->changeIdOrderState(Configuration::get($order->hasBeenPaid() ? 'PS_OS_OUTOFSTOCK_PAID' : 'PS_OS_OUTOFSTOCK_UNPAID'), $order, true);
                        $history->addWithemail();
                    }

 

Cámbialo por esto:

                  /*  if (Configuration::get('PS_STOCK_MANAGEMENT') &&
                            ($order_detail->getStockState() ||
                            $order_detail->product_quantity_in_stock < 0)) {
                        $history = new OrderHistory();
                        $history->id_order = (int) $order->id;
                        $history->changeIdOrderState(Configuration::get($order->hasBeenPaid() ? 'PS_OS_OUTOFSTOCK_PAID' : 'PS_OS_OUTOFSTOCK_UNPAID'), $order, true);
                        $history->addWithemail();
                    }*/

 

 

 

Link to comment
Share on other sites

Es curioso

en mi carpeta override > classes > PaymentModule.php tenía un código ligeramente distinto

 

if (Configuration::get('PS_STOCK_MANAGEMENT') && ($order_detail->getStockState() || $order_detail->product_quantity_in_stock <= 0)) {
                        $history = new OrderHistory();
                        $history->id_order = (int)$order->id;
                        $history->changeIdOrderState(Configuration::get($order->valid ? 'PS_OS_OUTOFSTOCK_PAID' : 'PS_OS_OUTOFSTOCK_UNPAID'), $order, true);
                        $history->addWithemail();

 Cambia en la cuarta linea "$order->valid ? 'PS_OS_OUTOFSTOCK_PAID" cambia hasBeenPaid() por valid

 

He comentado los dos bloques de los dos archivos "PaymentModule.php" el de la carpeta classes y el de la carpeta override.

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...