Jeżeli chcesz zmienić numerację zamówień z dziewięciu losowo wybranych dużych liter na kolejne cyfry. Wystarczy zmienić jedną funkcję wg. poniższego przykładu.
Poniższy rysunek pokazuje jak wygląda panel administratora po zmianie numeracji zamówień w PrestaShop z losowych znaków na cyfry.
Domyślnie do generowania numeru zamówienia jest używana funkcja generateReference(). W PrestaShop 1.7.6.8 znajduje się w pliku /clasess/order/Order.phppublic static function generateReference()
{
return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
}
Funkcja zwraca 9 losowych znaków nie będących cyframi. Żeby zamówienia były kolejnymi cyframi możemy zastosować poniższą funkcję która pobiera maksymalny ID z tabeli zamówień. Z uwagi, że wartość jest typu string żeby nie było problemów sortowaniem należy zastosować funkcję str_pad która doda zera na początku.
public static function generateReference()
{
$last = Db::getInstance()->getValue('SELECT MAX(id_order) FROM '._DB_PREFIX_.'orders');
return str_pad((int)$last + 1, 9, '000000000', STR_PAD_LEFT);
}
Po zmianie w mailu wysyłanym do klineta i panelu administratora numeracja będzie łatwa do przekazania w rozmowie telefonicznej.