Как правило это делают для удобочитаемости номера заказа, ведь SFSDRGSTG гораздо сложнее назвать и запомнить нежели номер 0000000001, к примеру. Тем более, что этот  способ очень простой, что позволяет не исправлять десятки файлов, с переменной $order->reference на $order->id.

Почему я делаю не через override? 

да, потому что в prestashop 1.7 оверрайды можно делать только для классов, которые не используют пространства имен. Т.е. вы можете применить к таким классам как (Address.php, Product.php)

пруфы здесь: доки престашопа

в версии 1.6 всё это достаточно просто сделать через override папку.

Итак, что нам требуется сделать: 

В файле /classes/order.php ищем функцию:

public static function generateReference()
{
    return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
}

И меняем на:


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);
 
}

формат имени заказа будет: 000000001 и не надо везде править код.

Убрать дублирующиtся поля ID и Название заказа в панели управления, в меню заказы можно в

/controllers/admin/AdminOrdersController.php закоментировав код


/*
            'reference' => array(
                'title' => $this->trans('Reference', array(), 'Admin.Global')
            ),
*/



вот и всё

з.ы. данное решение подходит и для prestashop 1.6

Написал модуль отзывов для магазина.

  • Версия для Prestashop 1.6
  • Отдельная страница, можно добавить в меню
  • Отдельная страница в Админ-панели.
  • Рейтинг (от 0 до 5).
  • Возможность правки полей в админ-панели.
  • Всё оч просто, но при этом доступно.