Có cách nào để biết liệu đơn đặt hàng đã được đặt thông qua giao diện người dùng của trang web hoặc được nhập thông qua bảng quản trị không?Phân biệt các giao dịch phụ trợ với Frontend trong Magento
Trả lời
Theo mặc định, Magento chỉ lưu trữ các remote_ip
trong bảng sales_flat_order
cho một trật tự đó là nơi của khách hàng (trong khi thứ tự quản trị được đặt thành null).
Vì vậy, cố gắng này:
if(!empty($order->getRemoteIp()){
//place online
}
else{
// place by admin
}
Xem câu trả lời Programmatically differentiate between admin & customer-placed orders
Mọi đơn đặt hàng có store_id
, khi được nhập thông qua quản trị, nó sẽ là 0 (cho 'cửa hàng' quản trị) hoặc không có giá trị.
if ($order->getStoreId()) {
// was placed via frontend
}
Không sử dụng getStore()
vì điều đó sẽ không luôn trả về đối tượng cửa hàng quản trị một cách đáng tin cậy.
Không hoạt động với phiên bản Magento mới nhất. (Xem bình luận)
clockworkgeek là đúng. Tôi sẽ thêm một cách khác, đó là chủ yếu là hữu ích cho người dùng hành chính mà không phải là lập trình viên. Nếu bạn đang xem xét thứ tự trong màn hình quản trị (Admin -> sales -> Orders) nó sẽ có trường "Đặt từ IP" nếu thứ tự được tạo từ giao diện người dùng, nhưng nếu nó được thực hiện thông qua màn hình phụ trợ quản trị nó sẽ không ở đó. – shaune
@sdek - Đó là một mẹo hay, trước đây tôi không biết. – clockworkgeek
Không hoạt động với phiên bản Magento mới nhất. Bạn phải chọn id lưu trữ trước khi tạo thứ tự trong phần phụ trợ quản trị. Vì vậy, store_id sẽ luôn có giá trị khác với 0. –
Bạn có thể kiểm tra giá trị is_super_mode
(Tôi đã chỉ kiểm tra trên quote: $quote->getIsSuperMode()
)
Bạn đã tìm thấy trường này ở đâu? Tôi không thể tìm thấy nó cho Magento 1.7 – Alex
- 1. Giao diện Backbone.js với phần phụ trợ RESTful Rails?
- 2. Dịch chuyển giao diện Magento
- 3. Loại thuộc tính thay đổi Magento trong phần phụ trợ
- 4. Giao dịch trong hệ thống đặt hàng Magento
- 5. Giao dịch cơ sở dữ liệu Magento
- 6. Giao dịch mùa xuân với sự hỗ trợ Tuyên truyền
- 7. Giao diện người dùng và phụ trợ riêng biệt với khung công tác Yii
- 8. Thêm BCC vào Email Giao dịch Magento
- 9. Hỗ trợ giao dịch trong adbapi xoắn
- 10. chia sẻ mẫu giữa giao diện người dùng và chương trình phụ trợ (admin hoặc adminhtml) trong magento
- 11. url_for trong chương trình phụ trợ cho giao diện người dùng - Symfony
- 12. Tại sao Magento không chọn tệp mẫu chủ đề của tôi cho đơn đặt hàng qua email giao dịch?
- 13. Cần trình biên dịch phụ trợ
- 14. SQL giao dịch với Sails.js
- 15. Magento: tạo url cho một hành động phụ trợ (với key)
- 16. Hỗ trợ giao dịch động cơ MyIsam
- 17. Phân tích liên kết với các giao dịch trùng lặp sử dụng gói arules trong R
- 18. Ghi đè WooCommerce Frontend Javascript
- 19. Lỗi giao dịch Magento "Vui lòng chỉ định phương thức giao hàng"
- 20. Dịch Magento hoạt động như thế nào?
- 21. Javascript/CMS/editEase - JS/Frontend-embedded CMS nào tồn tại?
- 22. Giao dịch trong giao dịch
- 23. Middleware cho MongoDB hoặc CouchDB với jQuery Ajax/JSON frontend
- 24. Cách tắt đăng ký giao diện người dùng trong Magento
- 25. Cần trợ giúp với các hoạt động nguyên tử lồng nhau liên quan đến các giao dịch PDO
- 26. Các giao dịch phân tán giữa MySQL và MSSQL
- 27. Sử dụng các giao dịch với subsonic
- 28. URL sạch là phụ trợ hay giao diện người dùng
- 29. AngularJS - Chuyển các giá trị từ phần phụ trợ sang giao diện người dùng
- 30. SAU KHI kích hoạt INSERT trong giao dịch riêng biệt?
Cảm ơn vì móc đẹp +1 từ tôi @RS –
Tôi đang cố gắng tưởng tượng rằng nếu Magento được cài đặt trên một máy chủ lưu trữ đám mây, thứ tự hoặc được đặt bởi khách hàng hoặc quản trị sẽ có một địa chỉ IP từ xa . Tôi đã sửa chữa – burntblark