Как я могу узнать, является ли клиент, сделавший заказ, гостем или зарегистрированным клиентом?
Проблема в том, что я отправляю заказ Magento на внешний ERP
, и им нужен идентификатор клиента из Magento.
Проблема возникает, когда клиент является гостем, потому что теоретически у этого клиента нет удостоверения личности, но я не уверен. Есть ли способ проверить, является ли клиент гостем?
Я использую объект Mage_Sales_Model_Order
, чтобы получить необходимую мне информацию от клиента.
Спасибо!
4 answers
Если вы просто хотите знать, является ли клиент гостем или нет. триггер getCustomerIsGuest()
в Mage_Sales_Model_Order
Я считаю, что он может получить экземпляр заказа клиента.
Как вы сказали I am using the Mage_Sales_Model_Order object in order to get the information
тогда:
if($order->getCustomerIsGuest()){
// customer is guest
}else{
$customerid = $order->getCustomer()->getId();
//send the customer id to your external ERP
}
Это также может быть проверено наблюдателем:
$order = $observer->getEvent()->getOrder();
$guestCustomer = $order->getCustomerIsGuest();
groupId = $order->getCustomerGroupId();
Мы можем получить все типы данных о клиентах с помощью observer.
Вот способ сделать это в SQL для одного клиента.
select
entity_id,
increment_id,
customer_is_guest
from
sales_flat_order
where
increment_id = 101125260
;
Выходные данные:
+-----------+--------------+-------------------+
| entity_id | increment_id | customer_is_guest |
+-----------+--------------+-------------------+
| 2371223 | 101125260 | 1 |
+-----------+--------------+-------------------+
Чтобы сгенерировать гистограмму и понять процент ваших пользователей, которые вошли в систему при выезде.
select
if(customer_id, 1, 0) as loggedin,
count(*)
from
sales_flat_order
where
created_at > '2018-11-01'
group by
1
order by
1 desc
;
Выходные данные:
+----------+----------+
| loggedin | count(*) |
+----------+----------+
| 1 | 1194 |
| 0 | 1693 |
+----------+----------+