Как я могу узнать, является ли клиент, сделавший заказ, гостем или зарегистрированным клиентом?


Проблема в том, что я отправляю заказ Magento на внешний ERP, и им нужен идентификатор клиента из Magento.

Проблема возникает, когда клиент является гостем, потому что теоретически у этого клиента нет удостоверения личности, но я не уверен. Есть ли способ проверить, является ли клиент гостем?

Я использую объект Mage_Sales_Model_Order, чтобы получить необходимую мне информацию от клиента.

Спасибо!

Author: Ashish Viradiya, 2014-05-07

4 answers

Если вы просто хотите знать, является ли клиент гостем или нет. триггер getCustomerIsGuest() в Mage_Sales_Model_Order Я считаю, что он может получить экземпляр заказа клиента.

 2
Author: Tai, 2014-09-06 07:22:47

Как вы сказали 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
}
 7
Author: Mohammad Faisal, 2014-05-08 06:20:31

Это также может быть проверено наблюдателем:

$order = $observer->getEvent()->getOrder(); 
$guestCustomer = $order->getCustomerIsGuest();
groupId  = $order->getCustomerGroupId();

Мы можем получить все типы данных о клиентах с помощью observer.

 0
Author: Ajwad Syed, 2018-11-27 07:11:35

Вот способ сделать это в 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 |
+----------+----------+
 0
Author: dlink, 2019-03-29 18:24:12