Jump to content

[Darmowy Moduł] Numeryczny Indeks Zamówienia


Daresh

Recommended Posts

  • 2 months later...

Daresh, czym Twój moduł różni się w jakiś znaczący sposób od pierwotnego modułu "order reference change" (https://www.prestashop.com/forums/topic/433999-free-module-order-reference-change-module/)? Z tego co pamiętam pierwotny moduł był niedopracowany - zdaje się w mailach nie był aktualizowany numer zamówienia na zgodny z numeracją modułu (widniał standardowy symbol zamówienia typu XGBZYLS... zamiast liczbowego), był problem z symbolem zamówienia na fakturach, być może jeszcze gdzieś. Czy Twój moduł aktualizuje numer zamówienia wszędzie tam, gdzie to być powinno? Czy poza zmianą "this module changes the `reference` column in `orders` table from VARCHAR(9) to VARCHAR(32)" instalacja/deinstalacja Twojego modułu nie ingeruje w standardowy core presty, można bezproblemowo wyłączyć moduł, jeżeli zajdzie taka potrzeba? Czy instalacja modułu nadpisuje plik overrides/classes/Order.php, czy jeżeli posiadamy własny, już zmodyfikowany Order.php, to trzeba go zaktualizować ręcznie? Czy moduł jest zgodny z PS 1.6.1.5 ? To tak kilka pytań na początek :)

 

p.s. Czy tak mało osób korzysta z tego rodzaju modułów, że w sumie jest niewiele pobrań? Zmiana nazewnictwa/numeracji przez team Prestashop był dość kontrowersyjny - bynajmniej mnie trudno sobie wyobrazić, że sklepy w komunikacji z klientem używają tych literowych symboli ...

Link to comment
Share on other sites

Pobrań jest niewiele bo podmieniałem plik, wcześniej było ich ponad 200.

 

Moduł nadpisuje funkcję generującą referencję więc jest pozbawiony wszystkich wad wspomnianego wyżej modułu. Zmiana referencji następuje tam, gdzie rzeczywiście jest ona generowana, a nie po fakcie.

 

Moduł jest bardzo prosty, w zasadzie jest to override jednej funkcji, więc możesz śmiało go zmodyfikować sobie ręcznie i dostosować jeżeli pojawia się konflikt.

 

Dopóki w Preście będzie metoda generująca referencję i będą działały override'y to ten moduł będzie zgodny.

Link to comment
Share on other sites

Pobrań jest niewiele bo podmieniałem plik, wcześniej było ich ponad 200.

 

Moduł nadpisuje funkcję generującą referencję więc jest pozbawiony wszystkich wad wspomnianego wyżej modułu. Zmiana referencji następuje tam, gdzie rzeczywiście jest ona generowana, a nie po fakcie.

 

Moduł jest bardzo prosty, w zasadzie jest to override jednej funkcji, więc możesz śmiało go zmodyfikować sobie ręcznie i dostosować jeżeli pojawia się konflikt.

 

Dopóki w Preście będzie metoda generująca referencję i będą działały override'y to ten moduł będzie zgodny.

Daresh, dzięki za błyskawiczną odpowiedź. 200 pobrań to w sumie niewiele przy globalnej liczbie instalacji PrestaShop - czy wszyscy się przestawili na symbole zamiast numeru zamówienia? Skoro piszesz, że moduł jest pozbawiony wad, to wpierw rozpocznę testy od Twojego modułu :)

 

p.s. Vekia - czy aktualizujesz dział "Darmowe moduły Prestashop"? Czemu nie ma tam tego modułu Daresha i np. "Paragon Czy Faktura (Działający I Dostosowany Dla Wersji 1.6)"? Czy te moduły nie przeszły pozytywnie weryfikacji? Ostatnia aktualizacja działu 3 lata temu...

Edited by aro (see edit history)
Link to comment
Share on other sites

  • 8 months later...
  • 2 months later...
  • 2 years later...
  • 3 months later...

Hej Daresh!
Moduł nadal działa z najnowszym wydaniem PS 1.7.x? Widzę, że nie było aktualizacji od dawien dawna.

Tak z ciekawości - czy obecna tendencja jest taka, że sklepy używają tej standardowej "mieszanki" losowych znaków i nie korzysta się z czytelnej, cyfrowej numeracji zamówień w prestashop? Gdziekolwiek bym coś nie zamawiał, to w każdym sklepie, czy polskim, czy zagranicznym jest cyfrowa numeracja - trudno zrozumieć, o co chodziło autorom PS wprowadzając tą "dobrą zmianę" :)

Link to comment
Share on other sites

  • 2 months later...
On 12/4/2019 at 1:02 PM, aro said:

trudno zrozumieć, o co chodziło autorom PS

Referencja tworzona jest przed zapisem zamówienia do bazy. Stworzenie i jej zapis nie są więc funkcją atomową, a zatem jeśli nie dodamy np. losowości to zamówienia złożone w tym samym czasie dostaną tą samą referencję. Czy ten moduł jest na to odporny? Widziałem inne rozwiązania w necie i przy nich ten problem był wiele razy zgłaszany. Ja zrobię własnego overrida, gdzie jeden znak będzie losowy.

Link to comment
Share on other sites

  • 1 month later...

Moduł działa do czasu przejścia na Przelewy24. Zamówienie zapisuje się w bazie z statusem "Oczekiwanie na płatność Przelewy24", natomiast klient nie jest przekierowywany do dalszych etapów, co w konsekwencji uniemożliwia zrobienie transakcji. Ładowanie strony zatrzymuje się na +-30%. Jak rozwiązać ten problem?

Link to comment
Share on other sites

Przepraszam za zamieszanie. Wydłużył się czas ładowania, ale ostatecznie udało się przejść do Przelewy24, więc jest ok.

Moduł poprawnie tworzy numery referencyjne zamówień, które zostały dodane przez Prestashop. Pojawił się jednak inny problem. Zamówienia, które trafiają z zewnątrz (w tym przypadku zamówienia z Allegro za pośrednictwem Baselinker) dostają standardowe numery referencyjne (nie są objęte przez Pana moduł). 

W jaki sposób rozszerzyć działanie Pana modułu, aby działał on na wszystkich zamówieniach - także tych, które nie przechodzą przez klasyczny checkout?image.thumb.png.9276729cc4229d8f2925cb0cd2138708.png

Link to comment
Share on other sites

Chyba można tak powiedzieć. Wgrałem na FTP plik konfiguracyjny od Baselinker, który łączy się z bazą SQL. Uzupełniłem dane, włącznie z "hasłem komunikacyjnym", które skopiowałem będąc zalogowanym w Baselinkerze. Wysyłam w załączeniu wspomniany plik. Sądzę, że w nim należy zmodyfikować jakiś fragment, ale nie wiem który. Będę ogromnie wdzięczny za Pana pomoc. 

baselinker.php

Link to comment
Share on other sites

Czyli tak jak myślałem, Baselinker nie jest połączony prez API presty tylko przez plik. Sugeruję zmienić sposób integracji na API Presty, w tym jednak nie pomogę. A najlepiej zapytać wcześniej Baselinkera czy przejście na integrację przez API spowoduje że indeksy zamówień będą takie jak w preście (napisać, że jest modyfikacja funkcji generującej indeks).

Link to comment
Share on other sites

  • 4 months later...

Czy Prestashop dalej "brnie" w symboliczny numer zamówienia zamiast numeryczny? Robię wiele zakupów w sklepach internetowych i nie przypominam sobie, aby w którymś z nich numer zamówienia był symboliczny, jak w preście. Naprawdę nie rozumiem, dlaczego Prestashop wprowadziła taką zmianę, jaki to ma cel?

Daresh - Twoja wersja jest cały czas kompatybilna z nowymi wydaniami?

Link to comment
Share on other sites

  • 8 months later...
5 minutes ago, Daresh said:

U mnie 0 problemów na 1.7.7.3 ;)

Sorry, cache pomógł. Jest ok. Gdy zaktualizowałem preste z 1.7.7.0 do 1.7.7.3 moduł jakby przestał działać. Jak nagle wyłączyłem i włączyłem to pojawił się problem z obsługą. Przeczyściłem cache, włączyłem i już jest ok :)

Link to comment
Share on other sites

  • 7 months later...
6 hours ago, aro said:

Ja cały czas nie mogę pojąć, dlaczego Prestashop brnie z tym idiotycznym sposobem numeracji zamówień. To nie ma żadnego uzasadnienia, jedynie stwarzanie na siłę problemu.

O czym konkretnie mówisz? Jeśli o numeracji typu XYZABC to zobacz mój poradnik na ten temat tam trochę wyjaśniam.

Link to comment
Share on other sites

13 godzin temu, endriu107 napisał:

O czym konkretnie mówisz? Jeśli o numeracji typu XYZABC to zobacz mój poradnik na ten temat tam trochę wyjaśniam.

Który poradnik? Jeśli masz na myśli ukrywanie informacji dla konkurencji, to na pewno to nie jest argument, taki był od początku przedstawiany. Robię zakupy w wielu dużych sklepach w Polsce, zresztą Wy na pewno też. I nie spotkałem się jeszcze z ani jednym, żeby używał numeracji podobnej do prestashop (po co sobie utrudniać życie).

p.s. Niemniej doceniam, że pomagasz i pokazujesz, jak zmienić numerację zamówienia.

Edited by aro (see edit history)
Link to comment
Share on other sites

endriu107, czy mógłbyś mi napisać w którym miejscu w Twoim kodzie dodać numer od którego mają numerować się kolejne zamówienia?

        if (!Module::isEnabled('gmnumeric')) {

            return parent::generateReference();

        }

        $isRandom = Configuration::get('GMNUMERIC_RANDOM');

        $prefix = Configuration::get('GMNUMERIC_PREFIX');

        $prefixLength = strlen($prefix);

        $restLength = 9 - $prefixLength;

        if ($isRandom) {

            $reference = Tools::passwdGen($restLength, 'NUMERIC');

        } else {

            $query = 'SELECT `AUTO_INCREMENT`

                     FROM INFORMATION_SCHEMA.TABLES

                 WHERE TABLE_SCHEMA = \''._DB_NAME_.'\'

                 AND TABLE_NAME = \''._DB_PREFIX_.'orders\'';

            $nextOrderId = (int) Db::getInstance()->getValue($query);

            $zeros = Configuration::get('GMNUMERIC_ZEROS');

            if ($zeros == 'on') {

                $reference = sprintf('%0'.$restLength.'d', $nextOrderId);

            } else {

                $reference = $nextOrderId;

            }

Link to comment
Share on other sites

  • 1 month later...
Dnia 10.12.2021 o 3:16 PM, Basikmix napisał:

endriu107, czy mógłbyś mi napisać w którym miejscu w Twoim kodzie dodać numer od którego mają numerować się kolejne zamówienia?

        if (!Module::isEnabled('gmnumeric')) {

            return parent::generateReference();

        }

        $isRandom = Configuration::get('GMNUMERIC_RANDOM');

        $prefix = Configuration::get('GMNUMERIC_PREFIX');

        $prefixLength = strlen($prefix);

        $restLength = 9 - $prefixLength;

        if ($isRandom) {

            $reference = Tools::passwdGen($restLength, 'NUMERIC');

        } else {

            $query = 'SELECT `AUTO_INCREMENT`

                     FROM INFORMATION_SCHEMA.TABLES

                 WHERE TABLE_SCHEMA = \''._DB_NAME_.'\'

                 AND TABLE_NAME = \''._DB_PREFIX_.'orders\'';

            $nextOrderId = (int) Db::getInstance()->getValue($query);

            $zeros = Configuration::get('GMNUMERIC_ZEROS');

            if ($zeros == 'on') {

                $reference = sprintf('%0'.$restLength.'d', $nextOrderId);

            } else {

                $reference = $nextOrderId;

            }

Udało się ustawić indywidualny numer zamówienia, od którego startujesz?

Link to comment
Share on other sites

2 godziny temu, Basikmix napisał:

Też tak pomyślałam, ale póki co walczę z innymi rzeczami. 

Pozdrawiam

Basia

Basia, zaloguj się do bazy danych i wykonaj komendę:

ALTER TABLE `ps_orders` AUTO_INCREMENT = 300;

ps_orders - nazwa tabeli
300 - tu podaj swoją liczbę, od której chcesz ustawić kolejny numer zamówienia, 300 to tylko przykład

Link to comment
Share on other sites

14 minutes ago, aro said:

Basia, zaloguj się do bazy danych i wykonaj komendę:

ALTER TABLE `ps_orders` AUTO_INCREMENT = 300;

ps_orders - nazwa tabeli
300 - tu podaj swoją liczbę, od której chcesz ustawić kolejny numer zamówienia, 300 to tylko przykład

Dziękuje bardzo. Działa :)

Link to comment
Share on other sites

  • 1 year later...
  • 5 months later...
  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...