Czy istnieje sposób sprawdzenia, czy zamówienie zostało złożone za pośrednictwem frontend strony internetowej lub wprowadzone przez panel administracyjny?Różnicowanie backend a frontend Zakupy w Magento
Odpowiedz
Domyślnie Magento przechowuje tylko remote_ip
w tabeli sales_flat_order
o nakazanie ma miejsce przez klienta (podczas gdy kolejność admina ma wartość NULL).
Więc spróbuj tego:
if(!empty($order->getRemoteIp()){
//place online
}
else{
// place by admin
}
Zobacz odpowiedź Programmatically differentiate between admin & customer-placed orders
Każde zamówienie ma store_id
, po wprowadzeniu przez adminaction będzie to 0 (dla "sklepu administratora") lub zero.
if ($order->getStoreId()) {
// was placed via frontend
}
Nie używaj getStore()
jako że nie zawsze zwróci sklepu obiektu w SIO niezawodnie.
Nie działa z najnowszymi wersjami Magento. (Patrz komentarz)
clockworkgeek jest prawidłowe. Dodam jeszcze jeden sposób, który jest w większości pomocny dla użytkowników administracyjnych, którzy nie są programistami. Jeśli patrzysz na zamówienie na ekranie administracyjnym (Administracja -> Sprzedaż -> Zamówienia), będzie ono miało pole "Umieszczono z IP", jeśli zamówienie zostało utworzone z frontendu, ale jeśli zostało to zrobione na ekranach administracyjnych administratora, to nie będzie tam. – shaune
@dek - To miła wskazówka, wcześniej o tym nie wiedziałam. – clockworkgeek
Nie działa z najnowszymi wersjami Magento. Musisz wybrać identyfikator sklepu przed utworzeniem zamówienia w ramach zaplecza administracyjnego. Tak więc store_id zawsze będzie miał wartość inną niż 0. –
Można sprawdzić wartość is_super_mode
(Mam tylko sprawdzić na cytat: $quote->getIsSuperMode()
)
Gdzie znalazłeś to pole? Nie mogę go znaleźć dla Magento 1.7 – Alex
- 1. Żądanie Magento - Frontend lub Backend?
- 2. url_for w backend na frontend - Symfony
- 3. Magento cron w konfiguracji backend
- 4. Backend i frontend dla aplikacji - Codeigniter
- 5. Oddzielny frontend i backend z frameworkiem Yii
- 6. dzielenie szablon między frontend i backend (administratora lub adminhtml) w Magento
- 7. Różnica między frontend/backend i słuchaj w haproxy
- 8. Magento: generowanie URL akcji backend (z kluczem)
- 9. Różnicowanie czasu w pandach
- 10. Numeryczne różnicowanie listy w Mathematica
- 11. odsprzęgnięty frontend i backend z Django, pakietem internetowym, reactjs, routerem reagowania
- 12. Czy mogę obsługiwać frontend Angular2 i backend Golanga na jednym serwerze?
- 13. Magento skin_js w page.xml
- 14. Ścieżka skóry w Magento?
- 15. Różnica między przesłanianiem a przepisywaniem w magento
- 16. Zastąpić WooCommerce Frontend JavaScript
- 17. Szyny: różnicowanie przemieszczania z produkcji
- 18. Node.js i Express.js Różnicowanie czcionek
- 19. Lokalizacja head.phtml w Magento
- 20. Jak łączyć frontend Angular-Cli z backendem Spring-boot?
- 21. Sonda zdarzeń interfejsu użytkownika Google Drive Frontend
- 22. Jak przerwać sesję w Magento?
- 23. open source Koszyk na zakupy PHP LIBRARY?
- 24. Backend AngularJS i PHP
- 25. Facebook Integracja Backend
- 26. Przedłużanie koszyka produktów Magento
- 27. kubernetes niezdrowe ingress backend
- 28. Różnicowanie aliasu i prawdziwych typów podczas kompilacji?
- 29. Backend niestandardowego uwierzytelniania. Django
- 30. jak zrobić symboliczne różnicowanie na uchwycie funkcji?
Dzięki za miłe haki +1 ode mnie @RS –
Próbuję sobie wyobrazić, że jeśli magento został zainstalowany na hoście w chmurze, zamówienie złożone przez klienta lub administratora będzie miało zdalny adres IP . Poprawiono mnie – burntblark