#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