Chcę utworzyć stronę logowania, która używa przypisanego numeru klienta zamiast jego adresu e-mail. Sposób, w jaki konfigurowana jest moja firma, na oddzielnej platformie eComms, uzyskują dostęp do konta za pomocą numeru klienta, ponieważ są wieloma menedżerami kont dla jednego konta. Tworzę dla nich konta, a następnie przypisuję numer klienta, którego następnie używają do logowania, za pomocą hasła.
Każda pomoc byłaby bardzo mile widziana.
magento-1.9
customer
login
Alex WG
źródło
źródło
Odpowiedzi:
Możliwe jest zaimplementowanie podstawowej logiki przy niewielkim niestandardowym kodzie:
Napisz obserwatora
controller_predispatch_customer_account_loginPost
, sprawdź, czy wysłany adres e-mail (username
) nie wygląda jak adres e-mail. W takim przypadku wyszukaj klienta według numeru klienta i zastąp pole nazwy użytkownika w danych POST rzeczywistym adresem e-mail znalezionego klienta.Przykładowy kod obserwatora:
Następnie
controller_postdispatch_customer_account_loginPost
wprowadź adres e-mail w sesji z powrotem na numer klienta, jeśli jest ustawiony. W przeciwnym razie komunikaty o błędach przy nieudanych logowaniach będą zawierać adres e-mail zamiast numeru.Przykładowy kod obserwatora:
Inne rzeczy do rozważenia:
increment_id
numeru klienta, który możesz włączyć w konfiguracji systemu, w obszarze Konfiguracja klienta> Utwórz nowe opcje konta> Wygeneruj przyjazny dla klienta identyfikator klientaźródło
Dlaczego tylko liczby ...
https://github.com/diglin/Diglin_Username
Dzięki temu rozszerzeniu możesz logować się przy użyciu nazw użytkowników. Oczywiście można bez trudu zablokować te „nazwy użytkowników” do „numerów kont”.
źródło