Отслеживание незарегистрированных отказных корзин в Magento

#magento #magento-1.4

#magento #magento-1.4

Вопрос:

Кто-нибудь знает, с чего я могу начать пытаться получить информацию о корзине от незарегистрированных пользователей. Я хочу иметь возможность просматривать корзины отказа от пользователей, которые не вошли в систему. Похоже, что это не функция magento по умолчанию, но у меня такое чувство, что она где-то в базе данных.

Ответ №1:

все предложения хранятся в таблице sales_flat_quote

Ответ №2:

Я проверил этот запрос и нашел один или два случая, когда некоторые результаты отсутствуют в результатах, но отображаются в отчете magento об оставленной корзине. Вот что я попробовал.

 SELECT entity_id, customer_firstname, customer_email, items_count, grand_total, created_at
FROM sales_flat_quote
WHERE entity_id NOT IN (SELECT quote_item_id AS quote_id FROM sales_flat_order_item) 
AND items_count >0
AND customer_email IS NOT NULL
ORDER BY `sales_flat_quote`.`created_at` DESC
  

Ответ №3:

На случай, если кому-то интересно, это sql-запрос, который я придумал для получения отказных корзин непосредственно из базы данных. Вам нужно будет изменить дату

 SELECT quote_id, sku, qty, price, custom_price, row_total, created_at, product_id, store_id 
FROM mage_sales_flat_quote_item  
WHERE created_at > "2011-04-01" 
AND quote_id NOT IN (SELECT quote_item_id AS quote_id FROM mage_sales_flat_order_item)
AND store_id IS NOT NULL
  

Ответ №4:

Это больше похоже на это.

 SELECT `main_table`.*, GROUP_CONCAT(item.sku) AS `skus`, (main_table.base_subtotal_with_discount*main_table.base_to_global_rate) AS `subtotal`, `cust_email`.`email`, `cust_fname`.`value` AS `firstname`, `cust_lname`.`value` AS `lastname`, CONCAT_WS(' ', cust_fname.value, cust_lname.value) AS `customer_name` FROM `sales_flat_quote` AS `main_table`
 INNER JOIN `sales_flat_quote_item` AS `item` ON item.quote_id = main_table.entity_id
 INNER JOIN `customer_entity` AS `cust_email` ON cust_email.entity_id = main_table.customer_id
 INNER JOIN `customer_entity_varchar` AS `cust_fname` ON cust_fname.entity_id = main_table.customer_id AND cust_fname.attribute_id = 5
 INNER JOIN `customer_entity_varchar` AS `cust_lname` ON cust_lname.entity_id = main_table.customer_id AND cust_lname.attribute_id = 7 WHERE (items_count != '0') AND (main_table.is_active = '1') AND (main_table.created_at >= '2013-02-04 00:00:00' AND main_table.created_at <= '2013-02-04 24:00:00') AND (main_table.updated_at >= '2013-02-04 00:00:00' AND main_table.updated_at <= '2013-02-04 24:00:00') GROUP BY `item`.`quote_id` ORDER BY updated_at DESC