Press "Enter" to skip to content

Numery zamówień w formie liczb a nie jako losowe znaki – Presta Shop 1.6.x

Admin 7

Domyślnie Presta Shop nadaje numerom zamówień dość kuriozalną formę. Jest to losowy ciąg 9 liter pisanych capsem typu:

FZEEWLRFQ
KSUMSUJSH

itp.

Jest to o tyle dziwne, że każde zamówienie ma istotnie swój unikalny numer na liście i dlaczego z niego nie skorzystać? Widać to w zakładce:

Zamówienia -> Zamówienia

W pierwszej kolumnie.

Na szczęście możemy to stosunkowo łatwo zmienić bez konieczności kupowania płatnych modułów, które to realizują.

1. Tworzymy plik nadpisywania tworzenia numeru zamówienia

Tworzymy plik w lokalizacji:

override/classes/order/Order.php

O zawartości:

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

2. Nadpisywania w Presta Shop

Upewniamy się, że na sklepie są włączone nadpisywania:

Zaawansowane -> Wydajność -> (sekcja) Tryb debugowania -> Wyłącz wszystkie nadpisywania -> NIE

3. Usuwamy plik cache

Logujemy się na serwer i kasujemy plik:

cache/class_index.php

(zostanie on wygenerowany automatycznie od nowa)

Gotowe 🙂 Daj znać czy Ci to pomogło.

  1. PJD PJD

    Witam!
    A jak skrócić standardowo obecny ciąg znaków w zamówieniu?

    • Admin Admin

      Zostawić ten co jest czy skrócić numeryczny? Bo jeśli skrócić numeryczny, to w linijce gdzie jest return str_pad zamień 9 na pożądaną cyfrę

      • PJD PJD

        Chodzi o skrócenie standardowego dla presty ciągu alfabetycznego zamówienia.

  2. Paweł Paweł

    Witam, a w jaki sposób można zrobić nr zamówień w formacie NUMER_ZAMÓWIENIA/ROK tak, aby był on np 123456789/2020 i w kolejnym roku zamienić na 123456789/2021?

  3. divoc divoc

    Dziękuję, bardzo cenne rozwiązanie. Działa na 1.7.

  4. Witam
    Tworzymy plik w lokalizacji:

    override/classes/order/Order.php CZYLI GDZIE TO WPISAC

    • Admin Admin

      @Klaudia utwórz folder override/classes/order/ i tam umieść ten plik PHP. Pytanie czy Twoja wersja sklepu to 1.6 ? Dla 1.7 raczej to nie zadziała 🙁

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
W jaki sposób zmienić kolejność produktów w danej kategorii? Z pozoru…