Jump to content

Numer zamówienia w Prestashop


mentalspot

Recommended Posts

pola reference, o ile w przypadku ID wszystko jest jasne, o tyle pole reference jest bezsensu, przynajmniej z mojego punktu widzenia. Pole wprowadziło więcej zamieszania, niż korzyści. Losowy ciąg znaków jako forma identyfikacji zamówienia? Nie wiem kto to wymyślił...

Link to comment
Share on other sites

właśnie przez to mam problem, gdzieś na jakimś forum z 3/4 miesięcy temu przeczytałem, że to ma być nowy numer zamówienia tak sobie ustawiłem i teraz to jest mylące... to też mi wyskauje w podsumoaniu zamówienia jak już klient dostaje info co ma zapłącić. Jak mogę to zmienić ?

Link to comment
Share on other sites

Są dwa sposoby 1 to edycja kilku miejsc w szablonie zeby zamist tego kodu wyświetlal nr zamówienia ($order->reference na $order->id pewnie nie zadziała bo pisze z pamieci trzeba by to spawdzic). Druga możliwośc to edycja funkcji (generateReference) odpowiedzialnej za wygenerowanie tego ciagu znaków. Żeby generowała taki sam ciag jak nr zamówienia.

 

W sumie mam to przerobic dla klieta w najbliższym czasie ale jeszcze nie skoczyłem ustalać jak ma wyglądać ten ciag myślalem o czymś w styly YMMDDXXXX (rok,miesiac,dzien,nr zamowienia w dniu).

 

 

P.S według mnie wprowadzili to pole po to żeby nie operować na nr zamowień z systemu. I urtudnić konkurencji sprawdzanie ile zamówień jest w sklepie

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

a nawiązując do tematyki związanej z przydatnością tego pola, widzisz jakikolwiek sens w istnieniu tego całego reference w takiej formie, w jakiej jest on standardowo? pojąć nie mogę o co developerom presty chodziło ;)

Link to comment
Share on other sites

Jedyny pomysł jaki mam to ten który opisałem. Klientą na oscommerce specjalnie robiłem nr losowe zamówień żeby konkurencja nie mogła podejrzeć ile mają zamówień, innego pomysłu nie mam. Przy okazji nie wyobrażam sobie klientów przepisujących bezsensowny ciąg 9 liter przy dokonaniu przelewu, jak niektórzy potrafią sie pomylić przy samym prostym liczbowym numerze

Link to comment
Share on other sites

Są dwa sposoby 1 to edycja kilku miejsc w szablonie zeby zamist tego kodu wyświetlal nr zamówienia ($order->reference na $order->id pewnie nie zadziała bo pisze z pamieci trzeba by to spawdzic). Druga możliwośc to edycja funkcji (generateReference) odpowiedzialnej za wygenerowanie tego ciagu znaków. Żeby generowała taki sam ciag jak nr zamówienia.

 

ok spróbuję i dam znać czy dałem radę

Link to comment
Share on other sites

Zakładając ze reference jest generowane na chwilke przed zapisaniem nr zamowienia do bazy a sklep ma male obciazenie i zamowienia nie sa składane w tępie 1na sekunde to spokojnie mozna by override na funkcji ktora go generuje i pobrac w niej maksymalny nr zamowienia i dodac +1. Wtedy na 99.99% zawsze byla by zgodnosc id i reference

Link to comment
Share on other sites

w szablonie order-confirmation mam np.:

<br />

{if $is_guest}

<p>{l s='Your order ID is:'} <span class="bold">{$id_order_formatted}</span> . {l s='Your order ID has been sent to you via e-mail.'}</p>

<a href="{$link->getPageLink('guest-tracking', true, NULL, "id_order={$reference_order}&email={$email}")}" title="{l s='Follow my order'}"><img src="{$img_dir}icon/order.gif" alt="{l s='Follow my order'}" class="icon" /></a>

<a href="{$link->getPageLink('guest-tracking', true, NULL, "id_order={$reference_order}&email={$email}")}" title="{l s='Follow my order'}">{l s='Follow my order'}</a>

{else}

<a href="{$link->getPageLink('history', true)}" title="{l s='Back to orders'}"><img src="{$img_dir}icon/order.gif" alt="{l s='Back to orders'}" class="icon" /></a>

<a href="{$link->getPageLink('history', true)}" title="{l s='Back to orders'}">{l s='Back to orders'}</a>

{/if}

Link to comment
Share on other sites

Problemem nie jest to, że PrestaShop tworzy numer zamówienia w ten sposób, a to że polska paczka posiada maile tak stare, że aż wstyd jest to wypuszczać. W nowych używa się już nowego numeru zamówienia, oraz np. zmiennej {color} której nie uświadczysz w polskich mailach.

 

Mam wrażenie, że dopóki znów społeczność nie stworzy własnej polskiej paczki to zarówno tłumaczenie jak i takie sprawy jak maile czy ustawienia właściwe dla naszego kraju będą po prostu fatalnie przygotowane.

 

Sam korzystam z nakładki, która zmienia losowy ciąg znaków na 8 losowych cyfr co jest łatwiejsze w ewentualnym kontakcie z klientem i potrzebą wymiany tego numeru pomiędzy klientem, a obsługą sklepu.

Link to comment
Share on other sites

Jeżeli w PrestaShop 1.5.4.x wymyślono, że numer/identyfikator zamówienia to losowy ciąg znaków, to przynajmniej powinno się dać wybór tworzenia takiego identyfikatora starą metodą lub nową. Problem jest w tym, że jeżeli posiadamy np. 2 sklepy lub więcej i w jednym numerujemy zamówienia np. od "1", a w drugim np od "100.000" to zawsze mamy możliwość kontrolowania, żeby numery się nie pokryły - chodzi tutaj o rejestrowanie tych zamówień np w odrębnym systemie księgowym. To tylko przykład. W przypadku, gdy identyfikatorem zamówienia jest losowy ciąg znaków, to teoretycznie może się zdarzyć, że identyfikatory będą takie same w kilku sklepach. Osobiście chyba nie spotkałem się ze sklepem w Polsce, który zamiast numeracji stosuje losowe identyfikatory literalne - to jest nieczytelne i trudne do zapamiętania. I najważniejsze - przy małych sklepach, gdzie wystarczy 4-5 pól na przydzielenie numeru zamówienia zdecydowanie wygodniejszym rozwiązaniem jest numeracja liczbowa. Nie wiem, czy jest sens przejmować się konkurencją, która będzie nam sprawdzać ilość zamówień - czy to coś zmieni, jeżeli poznają tą liczbę? Nie sądzę.

Link to comment
Share on other sites

Aro, no to co za problem napisać sobie numer z jakimś prefixem? Proszę bardzo, przykładzik:

 

<?php
class Order extends OrderCore {
public static function generateReference()
{
 return strtoupper('abc_'.Tools::passwdGen(8, 'NUMERIC'));
}
}

 

Wrzucamy do /override/classes/order/ jako Order.php

Link to comment
Share on other sites

Witajcie, jak to jest, że 1.5 raz przydziela numer zamówienia jako np. ZJSGYH756UI a np w mailach do klientów jest już 035 ?

 

Cześć

Sam się nad tym zastanawiałem. Właśnie przekopałem się przez wszystkie e-maile z polskiego i angielskiego tłumaczenia. Porównując je, widać jak na dłoni, że przedstawianie klientowi numeru zamówienia w e-mailach jako 053 to archaizm lub niedopatrzenie. Wprowadza tylko zamęt i komplikacje, we wszystkich e-mailach angielskich zamówienia identyfikowane są losowym numerem QWERTYU.

Zmodyfikowałem pod tym kontem wszystkie polskie maile i można je pobrać tutaj http://www.prestashop.com/forums/index.php?/topic/255450-darmowe-szablony-wiadomosci-e-mail-dla-prestashop-1541/ lub https://github.com/PiotrKaczor/PrestaShop-polskie-e-maile Tylko jeden e-mail, który jest wysyłany do obsługi sklepu, odbiega od tej konwencji. Mianowicie powiadomienie pracowników o nowym zamówieniu (z modułu mailalerts) używa stylu 000053.

  • Like 1
Link to comment
Share on other sites

szczerze mówiąc to chyba lepiej by było pozostać przy ID zamówienia jako liczbie ;)

z wielu względów, np. łatwiej odnaleźć zamówienie w sklepie, klientowi łatwiej posługiwać się numerem niż jakimś losowym ciągiem znaków... stąd moje zdanie na ten temat, zamęt jeżeli już, to wprowadza ten nowy sposób oznaczania zamówień ;)

Link to comment
Share on other sites

Tylko jak klient w wersji 1.5.4.1 wchodzi w historię swoich zamówień to ma tam właśnie ten losowy identyfikator, więc w e-mailach też go powinien mieć. Albo i tu i tu jako numer, ale to już kwestia zmian w Core, może w następnej wersji PrestaTeam wybierze inne rozwiązanie. W 1.5.4.1 defaultowo klientowi prezentowany jest QWERTTYU, a cyfra jest używana na przykład przy generowaniu linków do tego zamówienia. Ja w swoim sklepie mam włączone zakupy gości i losowy identyfikator bardzo fajnie pozwala na podgląd statusu zamówienia bez logowania.

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

szczerze mówiąc to chyba lepiej by było pozostać przy ID zamówienia jako liczbie ;)

z wielu względów, np. łatwiej odnaleźć zamówienie w sklepie, klientowi łatwiej posługiwać się numerem niż jakimś losowym ciągiem znaków... stąd moje zdanie na ten temat, zamęt jeżeli już, to wprowadza ten nowy sposób oznaczania zamówień ;)

 

Vekia, a co na to team PrestaShop? Tylko nam Polakom nie podoba się nowy sposób generowania ID? Nie wierzę. Na powrót do poprzedniego stylu w kolejnych wersjach pewnie nie ma co liczyć, skoro aktualny stan został zaakceptowany z jakiegoś powodu i wdrożony. Może trzeba przeprowadzić międzynarodowe "referendum" - ankietę, ażeby wpłynąć na przywrócenie starego/dobrego numerowania?

Link to comment
Share on other sites

nie wiem, jak dotąd nie przypominam sobie aby ten wątek był poruszany na międzynarodowym forum, może warto by go poruszyć. Chodź wątpię w to aby nasze niezadowolenie coś zmieniło ;)

 

tak jeszcze dopowiem, że sporo zamawiam w internecie, często od największych typu agito, morele,

wszędzie, absolutnie wszędzie numer zamówienia to liczba... ten sposób po prostu ułatwia życie, klientom, pewnie i ludziom na magazynie którzy przygotowują paczki, support też ma łatwiej w kontakcie z klientem ...

Link to comment
Share on other sites

  • 5 weeks later...

Vekia co do tego pola widziałem kiedyś rozwiazanie do przetwrzania zamówień w sposób masowy tam tego typu wartości sa specjalnie zamieniane zeby prosciej było weryfikować w kodach kreskowych żeby zachować ciagłość przez programy do automatycznej obsługi zamówień dokladnie rzecz ujmujać w fiacie coś takigo maja.

Ale czemu w prescie coś takiego moze ktoś obsługuje takie wolumeny zamówień ale mówilibyśmy o liczbach setek zamówień na dzień ciekawe sowja droga jakie serwy by musiały to obsłużyć :)

Link to comment
Share on other sites

tczaude nie jestem w stanie ogarnąć jak losowy ciąg znaków ma w wpłynąć na poprawę pracy, już nie mówiąc o performance (szczególnie przy dużych, ogromnych bazach danych), weź teraz połącz kilka baz po reference przy milionach rekordów - pozdrawiam :D

 

jeszcze nie ten lvl jak dla mnie, aby widzieć pozytywne aspekty takich zmian, skoro duże korporacje takie rozwiązania mają, coś w tym musi być ;) tylko co...

Link to comment
Share on other sites

W przypadku przetwarzania nazwijmy to taśmowego w przypadku kolejnych kodów w 2D sa za małe zmiany w przypadku losowości kody różnia się bardziej znacząco.

A połaczenie kilku baz jest bez sensu.

W miejscu gdzie to widziałem w pracy jest kolo 10 stanowisk skanujacych jedzie pierwszy odczyt takiego kodu odczytuje w jakimś cache i potem wysyła systeme co najlepsze plikowym w świat jakieś niemieckie rozwiazanie którego nazwy nie potrafie powtórzyć.

Ideologia w tym jest ale jak widziałem jak to pracuje w powyższym wykonaniu to wolałbym chyba zatrudnić dodatkowe 10% personelu.

Wiesz dodatkowo chodzi o ochrone informacji np. musiałem robić oprogramowanie które za pomoca czytnika 2D odczytujesz login pracownika zamiast czytelności kodu powiedzmy pesel lub dowód osobisty skończyło sie na MD5 zeby inny pracownik nie mógł tego przeczytać telefonem komórkowym na hali...

Wiec przypuszczam ze znalazł sie taki wymóg od kogoś i zamiast pisać modół to wprowadzili dodatkowe pole do tabeli. Ale do końca sie nie dowiemy

Link to comment
Share on other sites

  • 3 weeks later...

Odświeżę temat. W jaki sposób zamieniacie losowy ciąg znaków na liczbowy numer zamówienia? A może już się przyzwyczailiście do nowego sposobu? Znalazłem darmowy moduł bez konieczności "grzebania" w core, ale nie testowałem:

http://www.prestashop.com/forums/topic/218257-module-change-order-reference-using-order-id-andor-cart-id/

 

Temat chyba wciąż aktualny, ale nie widzę u nas (polskie forum) kompletnego rozwiązania.

Link to comment
Share on other sites

  • 3 weeks later...

Podepnę się pod temat i powiem że zainstalowałem u siebie ten moduł do którego link który był podany już wcześniej:
https://www.dropbox....odrefchange.zip
 

Rozwiązanie megaproste. Teraz zamówienia w moim sklepie mają kolejny numer zamiast losowych literek.

Moja presta to 1.5.5.0

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

  • 2 weeks later...
  • 1 month later...

Witam,

Nowy jestem. Mam wgrany ten moduł na 1.5.5. i generalnie działa ale z jednym zastrzeżeniem. Wszystko jest OK. gdy mam do czynienia ze sprzedażą pojedynczego modelu, w sensie że nie ma wersji. Gdy pojawiają się wersje (np. kolorystyczne), zaczyna się problem, polegający na tym iż nie można zakończyć procesu sprzedaży, gdyż wyskakuje komunikat iż "Ta metoda płatności nie jest dostępna". Żeby było ciekawiej, sama sprzedaż w sklepie jest rejestrowana (z numerem losowym), produkt znika z koszyka ale klient nie dostaje informacji że proces sprzedaży się powiódł. Czy spotkaliście się z czymś takim? Firma która modyfikuje mi sklep, twierdzi że to problem z core sklepu i trzeba tam pogrzebać (w każdym razie oni też widzą że taki problem występuje). Pomożecie?

Link to comment
Share on other sites

No tak. Jak pisałem w przypadku "pojedynczych" modeli działa, ale przy modelach z wersjami pada w sposób powyżej opisany. W tzw. międzyczasie, przetestowałem moduł od X13, i tutaj kolejny problem. W ogóle nie chce się wgrać. A u nich, nich nie ma problemu, działa, także na modelach z wersjami. Tak więc podejrzewam że jest jakiś problem w moim sklepie. Mało tego, oryginalny "holenderski" moduł który ułomnie ale działał, też nie chce się wgrać na nowo (odinstalowałem go).

 

Następujący(e) moduł(y) nie został(y) prawidłowo zainstalowane:

  • - modrefchange :
    Nie można zainstalować nakładki: Class OrderPaymentOverrideOriginal does not exist
    Error while installing module class
Link to comment
Share on other sites

  • 1 month later...

Od wydania PS 1.5.x minęło już trochę czasu. Jak sądzę wielu z Was (a może już nie) korzysta ze starego sposobu numerowania zamówień (liczbowe), co jest bardziej przydatne przy kontakcie z klientem i identyfikacji zamówienia.

 

Pytanie:

Który aktualnie moduł jest do tego najlepszy i jakie szablony email należy do niego wykorzystać, aby konsekwentnie używać i w sklepie i w mailach numeru zamówienia zamiast symbolu? Bez grzebania w core...

Czy jest w pełnie działający moduł dla PS 1.5.6.1?

 

Obecnie korzystam z PS 1.4.10 i jakoś nie mogę sobie wyobrazić upgrade do 1.5.x bez zachowania aktualnego systemu identyfikacji zamówień. Symbole w PS1.5 są niefajne :(

Link to comment
Share on other sites

ten moduł jest ok, działa ok bez powodowania problemów.

 

mało tego, nie trzeba grzebać przy nim w core, maile będą się wysyłać z poprawnym numerem zamówienia. W przypadku maili sprawa wygląda tak, że ID zamówienia (reference) jest pobierane z bazy, moduł powoduje że do bazy trafia numer, nie ciąg znaków, więc wszystko będzie ok :)

Link to comment
Share on other sites

ten moduł jest ok, działa ok bez powodowania problemów.

 

mało tego, nie trzeba grzebać przy nim w core, maile będą się wysyłać z poprawnym numerem zamówienia. W przypadku maili sprawa wygląda tak, że ID zamówienia (reference) jest pobierane z bazy, moduł powoduje że do bazy trafia numer, nie ciąg znaków, więc wszystko będzie ok :)

 

To świetnie. Nie ma modułu w temacie:

http://www.prestashop.com/forums/topic/258847-darmowe-moduly-prestashop-aktualizacja-1882013/

Wrzucisz?

Link to comment
Share on other sites

  • 6 months later...
  • 4 weeks later...

U mnie nie działa na 1.6.0.8 . Komuś działa? mógłby wrzucić wersje która działa pod 1.6?

 

Instaluje się normalnie, konfiguruje wszystko ale dalej reference dostaje ciąg znaków...

 

EDIT:

Działa już :) wystarczyło usunać pliczek /cache/class_index.php i śmiga aż miło ;)

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

  • 1 month later...
  • 3 months later...

Jeśli chodzi o cache to nie wiem bo ja nic takiego nie widze a sam nie usuwałem nic. Może chodzi o usunięcie cache presty a robi poparzez usunięcie zawartości dwóch folderów (compile i cache) w folderze cache/smarty. a poniżej moja konfiguracja:

 

55wnPBg.png

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...
  • 2 weeks later...

Witam, odświeżę trochę temat. Mam problem z tym modułem. Pobrałem najnowszą wersję z tego tematu na forum ang. https://www.prestashop.com/forums/topic/218257-module-change-order-reference-using-order-id-andor-cart-id/ tam pierwszy post. Przy instalacji wywala błąd, w załączniku plik. Wersja sklepu 1.6.0.9. Co prawda w tym temacie też mają problem taki jak ja, ale nie ma konkretnej odpowiedzi rozwiązującej problem. Chaiałem powrócić też do poprzedniej wersji modułu, co wcześniej instalował się bez problemów, teraz jest ten sam bład co przy nowej wersji. Druga sprawa to co kolega wyżej napisał, jeśli chodzi o numer zamówienia w panelu administracyjnym widnieje liczbowy np: 0055 i taki jest wysyłany w mailach do Klienta, ale nadal jest generowany kod np: GAHHJFG i wysyłany w mailu o nowym zamówieniu do obsługi sklepu. Czyli w tym module mailalerts - new order. Czy ktoś uporał się z tym drugim problemem, pomijając że teraz nawet moduł się nie chce zainstlować. Ewentualnie, czy jest inny moduł działający lub jakieś rozwiązanie co by zmieniało numer zamówienia z ciągu losowych znaków na liczbowy. Z góry dziękuję za pomoc. Pozdrawiam.

post-951185-0-24787300-1425732433_thumb.png

Link to comment
Share on other sites

  • 8 months later...
  • 2 months later...

Witam,

 

Zainstalowałem moduł i u mnie wszystko działa ale niestety w mailach potwierdzających zamówienie tych przychodzących do mnie czyli do admina, nadal pojawiają się numeracja z literami. Dokładnie chodzi mi o moduł mail alerts, plik new order.

 

W polu "szczegóły zamówienia" mam napis:

Zamówienie: NNKLDDQGJ Złożone w 2016-02-08

A chciałbym w tym miejscu mieć ten zwykły numer.

Czy ktoś orientuje się jak to zmienić?

 

Dodatkowo chciałbym z tytułu maila usunąć tę numerację, teraz wygląda to tak:

[NAZWA SKLEPU] Nowe zamówienie: #21 -NNKLDDQGJ

A chciałbym żeby wyglądało tak:

[NAZWA SKLEPU] Nowe zamówienie: #21

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

Polecam swój darmowy moduł:

https://www.prestashop.com/forums/topic/495065-free-module-numeric-order-reference/

 

Opisywany wyżej moduł ma tą wadę, że działa trochę po fakcie, stąd mogą brać się rozbieżności, bo wygenerowany indeks jest zmieniany później.

 

Dlatego najlepiej po prostu zrobić nadpisanie bezpośrednio w miejscu, w którym indeks jest tworzony.

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

  • 3 months later...

Witam, pytanie do przezdzięk:

Czy to jest zmiana w classach zamiast modułu ? na stałe do zmiany ? 
 

<?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);
}
}
Link to comment
Share on other sites

  • 1 month later...

 

Witam, pytanie do przezdzięk:

Czy to jest zmiana w classach zamiast modułu ? na stałe do zmiany ? 

 

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

Potwierdzam, działa. Prestashop 1.6.1.6. Trzeba wkleić kod do pliku Order.php w ścieżce override/classes/order/Order.php

Następnie trzeba usunąć plik class_index.php w ścieżce cache/class_index.php

Generuje normalny numer, który widnieje wszędzie (w mailach, potwierdzeniu, w panelu administratora oraz w śledzeniu zamówienia). Na swoje potrzeby skróciłem z 9 do 6 cyfr, czyli dałem:

return str_pad((int)$last_id + 1, 6, '000000', STR_PAD_LEFT);
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Podrzucam link z opisem, krok po kroku:

http://www.komijo.pl/zmiana-indeksu-zamowienia/


A na skróty to, w głównym katalogu sklepu /override/classes/order/Order.php umieść kod:

 
<?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);
 }
}
usuń plik /cache/class_index.php i gotowe :P
Edited by Jedrzej z Komijo (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 9 months later...

 

Podrzucam link z opisem, krok po kroku:

 

http://www.komijo.pl/zmiana-indeksu-zamowienia/

 

 

A na skróty to, w głównym katalogu sklepu /override/classes/order/Order.php umieść kod:

 
<?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);
 }
}
usuń plik /cache/class_index.php i gotowe :P

 

Zastosowałem to w Prestashop 1.6.0.14 i działa elegancko ;) - zamówienia składane po tej zmianie mają już reference taki jak ID, jeszcze przydałoby się, żeby w historii starszych zamówień klienta na liście zamienić ten diabelski reference numerem ID 

Link to comment
Share on other sites

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...