Polskie wsparcie PrestaShop
PrestaShop => Konfiguracja => Wątek zaczęty przez: kerim_91 w Październik 11, 2015, 10:46:58 am
-
Witam.
Mam pytanie odnośnie dwóch spraw do poprawiania w sklepie, a mianowicie:
1. Szukanie zamówień po nazwie firmy
Chodzi dokładnie o to abym mógł znaleźć klientów i zamówienia na zapleczu po nazwie firmy. Nie wiem czy dobrze będzie dodać kolejne pole do wpisania w filtrowaniu czy (na tym zależałoby mi bardziej) aby oprócz imion i nazwisk dodać kolejne kolumny na liście np. nazwa firmy, nr NIP itd.
Jeśli będzie potrzeba mogę to zaprezentować na screenie.
2. Wyświetlenie komunikatu dla danej grupy kupujących
Mam w sklepie kilka grup kupujących i chciałbym aby po zalogowaniu danego użytkownika który jest zapisany do grupy "A" wyświetlił się komunikat np. o 10% rabacie. Myślę, że wystarczyłoby sprawdzić do jakiej grupy o jakim ID jest przypisany użytkownik i taki komunikat wyświetlić.
Wersja Presty to 1.5.3
Bardzo proszę o pomoc.
Pozdrawiam
-
od 1 modyfikacja kontrolera zamówień
od 2 tutaj pamiętam był moduł banner uploader pro - obsługujący wyświetlanie banerów dla grup lub prosta funkcja napisana w tpl pobierająca grupę klientów
-
@west a jak chcesz pobrać grupę klientów w tpl? Z tego co wiem to do smarty nie jest przekazywana taka zmienna.
-
@west a jak chcesz pobrać grupę klientów w tpl? Z tego co wiem to do smarty nie jest przekazywana taka zmienna.
dlaczego? przy polaczeniu z {if $logged} (jezeli nie jest zalogowany to z automatu mamay grupe 'visitor') jezlei uzytkownik jest zalogowany bez problemy wyciagniesz jego grupe.
-
Ja mam do tego moduł który pozwala mi wyciągnąć id danej grupy, w 1.6 nie sprawdzałem ale wydaje mi się że w 1.5 bez edycji żadnego kontrolera nie dało się wyciągnąć w smarty id danej grupy poza logged i guest.
-
A jeśli mogę wiedzieć to co musiałbym zmodyfikować w tym kontrolerze zamówień żeby otrzymać te dodatkowe kolumny w panelu sklepu? Uczę się PHP, ale na razie nie czuję się na tyle mocny żeby coś zmieniać.
Potrzebne mi jest to dość pilnie dla szybszej obsługi zamówień.
Bardzo proszę o pomoc.
-
Ja mam do tego moduł który pozwala mi wyciągnąć id danej grupy, w 1.6 nie sprawdzałem ale wydaje mi się że w 1.5 bez edycji żadnego kontrolera nie dało się wyciągnąć w smarty id danej grupy poza logged i guest.
a z $customer nie wyciagnie? przeciez gana grupa zapisana jest w jego tabeli, wiec zmienna tabelaryczna wyciagnie. pewny nie jestem, nawet za bardzo nie mam czasu sprawdzic ale wydaje mi sie, ze nie powinno byc problemu.
zostaje jeszcze tylko jedno pytanie, w ktorym miejscu ma to byc wyciagniete? bo wczesniej przewijal sie szablon (tpl) teraz czytam o "szybszej obsludze zamowien" czyli kontrolery....
@kerim_91 jak moglbysblizej opisac dokladnie co i kiedy i do czego potrzebna jest ta zmienna bo robi sie mentlik
-
a z $customer nie wyciagnie? przeciez gana grupa zapisana jest w jego tabeli, wiec zmienna tabelaryczna wyciagnie. pewny nie jestem, nawet za bardzo nie mam czasu sprawdzic ale wydaje mi sie, ze nie powinno byc problemu.
ja jestem pewny zarówno jest grupa jak i czy jest zalogowany czy nie
-
Ja nie jestem taki przekonany że da się np. w pliku product.tpl wyciągnąć cokolwiek po samym $customer ponieważ zwraca null, więc jestem ciekawy jak to można zrobić bez ingerencji w kontrolery.
-
Ja nie jestem taki przekonany że da się np. w pliku product.tpl wyciągnąć cokolwiek po samym $customer ponieważ zwraca null, więc jestem ciekawy jak to można zrobić bez ingerencji w kontrolery.
wlasnie dlatego prosilem i ponowie pytanie bo juz zostao "przysloniete"
@kerim_91 jak moglbysblizej opisac dokladnie co i kiedy i do czego potrzebna jest ta zmienna bo robi sie mentlik
-
karta produktu sama zmienna $cart
->id_customer = null
->id_guest = 0
podobnie z $product i nawet co dziwne $combinations
ale co najważniejsze mamy na karcie produktu zmienną $customerName - ciekawe co znaczy :)
to tak na szybko
-
No dobra ale która z tych zmiennych zwróci id grupy klienta? Z tego co widzę to żadna, jeśli ktoś chce mieć np. 8 grup i do każdej inną treść to przy pomocy tych zmiennych tego nie wykona. Być może czegoś ja nie rozumie, więc jeśli się mylę proszę mnie naprostować.
-
ale sie pielkicie... kombinujecie nie wiadomo co, a okaze sie, ze to ma byc jakas zmienna albo ogolnie np. w podsumowaniu zamowienia... no, tutaj to juz na pewno da sie wyciagnac grupe ;) a w koncu okaze sie, ze to ma byc tylko np w kontrolerze AdminOrder :D poczcekajmy na odpowiedz zainteresowanego do czego w ogole to potrzebuje.
PS. @endriu... jezlei nie da sie w karcie produktu wyciagnac grupy to jak np. na odczytac rabaty, wlaczone czy wylaczone moduly dla danej grupy... netto/brutto? chcial czy nie chcial musi byc ;) jak nie bezposrednio to gdzies w $smarty, $params czy innych globalnych ;) nie zapominajmy, ze nie wszystkie zmienne sa besporednie... niektore maja "nakladki" np. $customer['group'] ;)
-
Ja sie nie piekle jedynie jestem zaintrygowany że niby ot tak można to wyciągnąć, od dłuższego czasu robię to za pomocą modułu który jak sie okazuje może być totalnie bezużyteczny, stąd moja ciekawość jaka jest ta prosta funkcja. Nawet moje rozwiązanie wymusza wyciągnięcie id grupy z pętli, więc bez sensu żebym dodatkowo obciążał preste modułem :D
-
no ale jak widzisz na przykladzie jaki podalem... a skad dane moduly wiedza, ze dla danych grup maja sie (nie)wyswietlac? ze cena ma sie pokazac netto a nie brutto czy odwroenie, ze ma byc rabat... ktorym kontroler musi trzymac ta zmeinna od poczatku do konca ;) czy nie? gdzies musi siedziec i byc ciagle widoczna... nie zdziwielbym sie jakby siedziala w Tools :d
zawalony robota jestem zeby przedumpowac wszystkie zmienne, ale postaram sie jutro znalesc chwile i wyciagnac ta co odpowiada wlasnie za powyzsze ;)
-
Przepraszam ze wczoraj się nie odezwałem. Sporo pracy . . .
Już tłumacze o co dokładnie chodzi.
Załączyłem screeny, które myślę, że najlepiej obrazują "co autor ma na myśli", w końcu jeden obrazek wyraża więcej niż tysiąc słów :)
1. W panelu sklepu w Zamówieniach chodzi o dołożenie dodatkowych kolumn tak jak na screenie: e-mail, nazwa firmy, NIP lub inne jakie mogą w przyszłości pomóc. Myślę, że nie będzie to stanowiło problemu większego, aby później dodać inną kolumnę np. Płeć . Nie wiem czy w prosty sposób będzie wyglądała kwestia filtrowania tych danych w polach formularza.
2. Kwestia druga to informacja o przynależności do grupy. To obrazuje drugi screen. Chodzi aby po zalogowaniu klienta sprawdzić do której grupy należy i wyświetlić komunikat z z przyznanym rabatem dla tej grupy. np. grupa "A" - komunikat: Jesteś w grupie premium i masz 10% rabatu na wszystkie produkty.
"B" - 5 %
"C" - 3 %
Jeśli coś jeszcze będzie nie jasne proszę pytać.
Proszę pomoc w rozwiązaniu tych spraw.
-
1. kontroler ./admin/AdminOrdersController.php - kolumny musisz sobie dopisac w fukcji _construct, pamietajac tez, zeby tabele customers dodac do zapytania bazy danych.
2. tutaj kolejne pytanie, gdzie i w jakiej formie chcialbys wyswieltlic info? jako popup? staly tekst w ktoryms miejscu? a no i jeszcze jedno pytanie, skad ten tekst mialby byc pobierany, czy wartosc znizki dla grupy miala by byc tez pobierana z bazy?
-
co do 2., znalazlem chwile i przerzucilem kontroelry, posprawdzalem co i gdzie... no @endriu musze cie zmartwic :D zmienna grupy domyslnej klienta masz podana w contexie :D $this->context->customer->id_default_group no, jedynie co, tak bezposrednio to problem moze sie pokazac jak masz klietna w paru grupac ;) ale mysle, ze i to mozna spokojnie wyciagnac przez sam kontroelr Customer, bo ID klienta juz mamy :D
tak jak wskazane na drugim screenie to modul blockuserinfo. w kontrolerze modulu mozesz dodac dla fukcji hookDisplayTop {} nowa zmienna:
'customer_group_id' => $this->context->customer->id_default_group
i w samym szalbonie modulu juz ja odczyasz przez {$customer_group_id}, z tym, ze to tylko wartosc ID grupy glownej. teraz musialbys zagladnac w kontrolery grup kal po ID odczytac nazwe (jezlei potrzebujesz) jak i wartosc rabatu. ale jak juz masz ID to juz mozesz zdzialac cuda ;)
zagladnalem jeszcze w kontroler Group.php... nawet do samej wartosci obnizki nie trzeba grupy :D
public static function getReduction($id_customer = null) - tylko samo ID klienta a tego analogicznie jak id grupy wyciagasz jako zmienna z context ($this->context->customer->id) tyle ;) a dalej odnoszac sie do powyzszej klasy wyswietlasz wartosc przydzielonego rabatu
cociaz przy uzyciu tej samej klasy mozna wycagnac rabar tylko dla tej jednej (domyslnej) grupy przez public static function getReductionByIdGroup($id_group), no ale, jak pisalem wczensiej, jezeli klient bedzie w 2-3 grupach, w kazdej jakis rabat to pierwsza metoda otrzymamy sume tych rabatow, tutaj tylko jeden dla grupy.
-
Faktycznie z context da się wyciągnąć id grupy domyślnej, i resztę grup zapewne da się wyciągnąć tak jak napisałeś ale to już więcej zabawy niż to wartę skoro prosty moduł do tego można napisać w stosunkowo niedługim czasie.
Jeszce słowo do kolegi @kerim_91 mam nadzieje że nie działasz na tak starym szablon co na screenie.
-
Faktycznie z context da się wyciągnąć id grupy domyślnej, i resztę grup zapewne da się wyciągnąć tak jak napisałeś ale to już więcej zabawy niż to wartę skoro prosty moduł do tego można napisać w stosunkowo niedługim czasie..
bo nie zrozumialem.... ;) po co budowac caly modul, nawet jakby nie wiadomo jak byl prosty, jezlei cos jest dostepne od reki i jedna linijka zalatwiamy cala sprawe :D to takie troche wynalezienie kola na nowo :D
dlatego tez podalem od razu, co jak wiecie rzadko robie, dokladny kod do stawienia w takich sytuacjach.
a co do samego problemu tego watku, to tak jak pisalem, nawet nie ma co tymi grupami sobie glowy zawracac, jak mozna to uzyskac tez jedna fukcja wyciagniecia wszelkich rabatow dla klienta ;)