Error Price specification not found for currency ""


prestashop-error-price-specification-not-found-for-currency

¿Recientemente has actualizado o migrado tu tienda PrestaShop?

¿Los vendedores del sitio no pueden acceder a las órdenes y aparece el siguiente error?

Price specification not found for currency ""

Si estás por acá podemos asumir que este es tu caso, pero no te desesperes, la solución es bastante sencilla.

Para empezar, necesitas tener acceso al servidor donde está alojada la tienda PrestaShop, y para esto tienes 2 alternativas:

  1. Acceso por Administrador Visual (cPanel, entre otros)
    1. Para ello, ya en el menú de administración, debemos buscar la opción de phpMyAdmin.
    2. Localizamos la base de datos de la tienda PrestaShop
    3. Buscamos la tabla _orders
    4. Buscamos si en la columna id_currency hay valores en 0
    5. Al comprobar afirmativamente lo anterior, proceda a ejecutar la siguiente consulta: UPDATE ps_orders VALUES id_currency = 1 WHERE id_currency = 0 (recuerda cambiar ps por el prefijo que le fue asignado a la base de datos de la tienda)
    6. Ya con este correctivo, debería todo funcionar correctamente de nuevo.
  2. Acceso por consola (SSH)
    1. Ingrese vía SSH al servidor donde está alojada la tienda PrestaShop.
    2. introduzca el siguiente comando: mysql --host=localhost --user=usuariomysql --password=******** db123456789 (en host generalmente se coloca localhost si el servidor es local, si es un servidor remoto, colocar la URL o la IP; en user se coloca el usuario para ingresar y en password la contraseña; al final se coloca el nombre de la base de datos)
    3. Al ser exitoso el ingreso a la base de datos, ejecutar la siguiente consulta: SELECT id FROM ps_orders WHERE id_currency = 0
    4. Al verificar que hay varios registros devueltos en la consulta, ejecutamos la siguiente consulta: UPDATE ps_orders VALUES id_currency = 1 WHERE id_currency = 0 (recuerda cambiar ps por el prefijo que le fue asignado a la base de datos de la tienda)
    5. Abre una pestaña en el navegador con la página de la tienda PrestaShop, ingresa como Vendedor y verifica que se haya resuelto el problema.
    6. Al comprobar que todo funciona correctamente, vuelve a la consola y ejecuta el comando exit para salir de MySQL
    7. Luego vuelve a ingresar el comando exit para salir y cerrar la consola SSH.
    8. Listo, problema resuelto.

Esto ocurre ya que al momento en que PrestaShop busca las ordenes, dichas ordenes tienen en su id_currency un valor que no coincide con ninguna moneda registrada, y genera el error que te ha llevado hasta acá. Al colocarle un ID válido, es decir, un ID de una moneda registrada y configurada en tu PrestaShop, el error desaparece, es decir, no necesariamente debes colocarle el valor 1 a id_currency en ps_orders, sino el valor que más te convenga.

En caso de que tu tienda PrestaShop maneje varias monedas, debes cuidar de colocarle el ID correcto a la orden para no generar problemas en un futuro.

Espero que esta entrada te haya ayudado a resolver tu problema.