cambiar referencia pedidos prestashop 1.7

Cambiar referencia de pedidos en Prestashop 1.7

Vamos a mostraros como cambiar la referencia de los pedidos en Prestashop 1.7 a una secuencia numérica acorde a la ID del pedido. 

En otras versiones hemos usado un módulo gratuito para cambiar la referencia de los pedidos pero parece que este módulo no funciona correctamente en las versiones más recientes de Prestashop.

El módulo del que hablamos era el que mencionan en el siguiente foro:

https://www.prestashop.com/forums/topic/433999-free-module-order-reference-change-module/

Si no os funciona os enseñaremos como cambiar la referencia de los pedidos prestashop sin usar ningún módulo, sino tocando un poco de código.

El primer paso es desinstalar el módulo ChangeRef si lo teníais instalado.

Y el siguiente paso consiste en modificar el archivo Order.php en la ruta;

httpdocs/classes/Order .php

descargamos este archivo, lo abrimos con nuestro editor y buscamos la palabra generateReference (línea 1685 aprox.)

Tenemos que cambiar;

public static function generateReference()
{
    return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
}
por
public static function generateReference()
{
    $last_id = Db::getInstance()->getValue('
        SELECT MAX(id_order)
        FROM '._DB_PREFIX_.'orders');
    return str_pad((int)$last_id + 1, 9, '000000000', STR_PAD_LEFT);
}

NOTA: Si teníais instalado el módulo ChangeRef tenemos que eliminar 3 archivos que creados por este módulo en:

  • override/classes/order/Order.php
  • override/classes/order/OrderInvoice.php
  • override/classes/order/OrderPayment.php

IMPORTANTE: Si en el futuro tenéis pensado actualizar a una nueva versión de Prestashop os aconsejamos, en lugar de la solución anterior, crear un el archivo Order.php en la ruta:

httpdocs/override/classes/order /Order.php

con el siguiente código:

Class Order extends OrderCore
{
}
public static function generateReference()
{
    $last_id = Db::getInstance()->getValue('
        SELECT MAX(id_order)
        FROM '._DB_PREFIX_.'orders');
    return str_pad((int)$last_id + 1, 9, '000000000', STR_PAD_LEFT);
}

Realizar un pedido de prueba y ver si os funciona. Os dejamos también el vídeo en inglés de donde nos hemos basado para crear este post.

Fuente: http://nemops.com/prestashop-replace-order-references-with-ids/#.W2mGVVUzaUl
Hosting

About the author: Franky Martin (ADMIN)

Leave a Reply

Your email address will not be published.

3 × dos =