Hola,
Tengo en un producto las siguientes cifras en estado inmediato de existencias:
Fisicoo=0
Usable=4
Real: -1
La verdad es que no se como ha sido posible llegar a ello. De otra parte cuando intento modificar el estado del pedido último correspondiente me da error.
El sistema no tiene ninguna devolución de ese producto.
Pasé la gestión de stock a avanzada+ manual y el problema subsiste.
Imagino que he de cambiar los números en la propia base de datos de forma manual y escribir algo como 1-1-1 ó 0-0-0 para recuperar la situación.
¿Sabeis en que tablas es donde figuran estos tres estados?. ¿Alguna otra forma de corregir la situación?
Un saludo
URL del sitio: Contenido solo visible a usuarios registrados
Hola Ana.
¿ Que es exactamente lo que quieres modificar del pedido o te pasa cuando quieres cambiar el estado ?
¿ Se realizo alguna devolución o eliminaste algun producto del pedido ?
La tabla que maneja el estado de las ordenes es order_state
Si puedes nos adjuntas una captura con lo que intentas realizar y el aviso que te aparece para que lo revisemos.
Un Saludo
Hola,
Lo que intento es tan solo cambiar el estado del pedido de En preparación a Enviado.
El mensaje que me da es:
=========================================================================================
[PrestaShopException]
Property Stock->physical_quantity is not valid
at line 909 in file classes/ObjectModel.php
904. }
905.
906. $message = $this->validateField($field, $this->$field);
907. if ($message !== true) {
908. if ($die) {
909. throw new PrestaShopException($message);
910. }
911. return $error_return ? $message : false;
912. }
913. }
914.
ObjectModelCore->validateFields - [line 246 - classes/ObjectModel.php]
ObjectModelCore->getFields - [line 652 - classes/ObjectModel.php]
ObjectModelCore->update - [line 101 - classes/stock/Stock.php] - [1 Arguments]
StockCore->update - [line 1170 - classes/stock/StockManager.php]
StockManagerCore->removeProductQuantityApplyingCump - [line 335 - classes/stock/StockManager.php] - [6 Arguments]
StockManagerCore->removeProduct - [line 239 - classes/order/OrderHistory.php] - [9 Arguments]
OrderHistoryCore->changeIdOrderState - [line 531 - controllers/admin/AdminOrdersController.php] - [3 Arguments]
AdminOrdersControllerCore->postProcess - [line 178 - classes/controller/Controller.php]
ControllerCore->run - [line 367 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 58 - admin/index.php]
======================================================================================
Yo entiendo que no cuadra el stock físico con lo demás, lo que es cierto conforme comenté en mi mensaje anterior y por eso pensé en cambiar en la base de datos.
¿Que opinais?.
Un saludo
Hola Ana.
ok, Intenta cambiar el valor en la base de datos, la tabla es (_stock_available)
Busca el campo relacionado con el identificador del producto, si está duplicado - elimina uno de ellos y, a continuación, añade el valor de stock correcto.
Un saludo
Hola Pepe,
Para mi sorpresa y por mas que lo miro no aparece nada e ps_stock_available con la ID de producto y por supuesto menos con la ID de atributo. El ID de producto es 16 y el ID de atributo es 60 pero no encuentro esa cadena en la tabla. Es cierto que en este momento, en el estado inmediato de existencias, no queda existencia fisica ni real....pero si disponible???
En la ps_stock si aparece pero atributo 0.
Lo curioso es que puedo aumentar y reducir stock con gestión de existencias aunque siempre con el desajuste de físico y disponible, como comenté antes.
¿En que tablas está el físico, el disponible y el real?
Un saludo
Hola Ana.
El stock se almacena en ps_stock_available, de normal ese error aparece cuando hay un producto duplicado, tienes que buscar el campo relacionado con la identificación del producto.
Un Saludo
Hola,
Contesté a esta respuesta y envié un fichero conteniendo la tabla exportada y ordenada por ID. Parece que se quedó en el camino mi respuesta o se perdió. Indicaba que el código de producto es 16 según el backoffice y que yo no lo veo en la tabla.
Os llegó por casualidad?. Aquí reenvío el fichero de nuevo.
Un saludo
Hola,
Contesté a esta respuesta y envié un fichero conteniendo la tabla exportada y ordenada por ID. Parece que se quedó en el camino mi respuesta o se perdió. Indicaba que el código de producto es 16 según el backoffice y que yo no lo veo en la tabla.
Os llegó por casualidad?. Aquí reenvío el fichero de nuevo.
Un saludo
Hola Ana.
No podemos ver esos archivos ya que son sql y hay que importarlos a una BD.
Puedes realizar una búsqueda del producto por si nombre en la BD.
Palabras o valores a buscar (comodín: "%"):Añades el nombre del producto
Dentro de las tablas: selecciona todas la tablas y pulsa en continuar, te mostrara todas las tablas donde esta añadido ese producto, las editas y modificas el valor del stock.
Si ves que sigues con problemas para encontrarlo, manda un ticket a soporte para ver si pueden acceder a tu BD y realizar la modificación.
Un saludo
Gracias de nuevo Pepe,
Lo encontré con las indicaciones dadas
usando el ID de producto. Al intentar ver cual es el campo me ha surgido la duda sobre el significado de las cabeceras.
Quantity
depend on stock
out of stock
¿Conocéis la descripción de esas cabeceras?
Adjunto captura de pantalla.
Un saludo
HOla
Básicamente el campo que puedes evaluar cambiar es el de quantity, los otros dos campos son campos de configuración, lo puedes comprobar ya que tienen el tipo de dato tynyint(1), por ejemplo para out_of_stock:
0 = rechazar órdenes
1 = aceptar órdenes
2 = por defecto: aceptar órdenes como se define en las preferencias de productos
Según lo que se comenta en:
https://www.prestashop.com/forums/topic/369541-d%C3%A9finition-de-colonne-depends-on-stock/
Saludos.
Hola de nuevo,
Gracias y entendido.
Al comprobar el stock veo que es 0 pero me sigue apareciendo en el estado inmediato de existencias:
Fisico=O
Usable=-4
Real=0
Supongo que el 4 de disponible vendrá de algún cálculo o estará almacenado en alguna otra tabla .
¿Podeis indicarme?.
Un saludo
Hola Ana. buenos Días.
Por favor indícame el nombre del producto o una captura del producto y revisaremos haber si lo encontramos.
Un saludo
Hola Pepe,
Gracias de nuevo.
El producto ya lo encontré, y tiene código 16 y código de atributo 60. El producto no lo tengo activo ya al haberse terminado las existencias y quedar fuera de su estacionalidad.
Lo que intento averiguar, como reflejé en mi anterior respuesta es la razón por la que en el estado inmediato de existencias aparece :
Fisico=O
Usable=-4
Real=0
En la base de datos en la tabla que me dijiste aparece como 0. Imagino que el usable viene de un cálculo al igual que el real. Parece difícil entender como se puede haber llegado a un Usable de 4 sin stock físico y sin devoluciones. ¿Las devoluciones que no se incorporasen al stock físico podrían crear esta situación?
Lo que intento es comprender el problema para saber como reaccionar en la próxima ocasión que pueda suceder algo similar.
¿Necesitas que exporte alguna tabla de la base de datos para verla en Excel?
Un saludo
Hola Ana.
¿Las devoluciones que no se incorporasen al stock físico podrían crear esta situación?
Si no se incorporan al stock cuando se realiza una devolución es posible que esos productos se queden como reserva.
Revisa esta documentación donde se explica todo el tema del stock:
http://doc.prestashop.com/pages/viewpage.action?pageId=29655391
Un saludo