Уж очень хотелось бы понять, много ли клиентов, которые кладут товар в корзину и не заказывают? Но что-то думается мне, что корзина эта хранится в сессиях и для меня недоступна. Я прав?
в 2-ке корзина хранится в таблице Но чистится раз в час для обыкновенных пользователей Код: $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE customer_id = '0' AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)");
Все же не понимаю про "Пропавшие заказы". Только что обнаружил таких запасов довольно много. Насколько я понимаю, пока клиент не подтвердит заказ, номер ему не присваивается. А в пропавших заказах есть присвоенный номер. Каким образом они получаются пропавшими?
Нет. Перед подтверждением и присваивается номер заказа, а после подтверждения просто меняется статус заказа.
То есть, клиент дошел до момента, где надо ставить галку и подтверждать. И не решился. Правильно понимаю? И надо срочно с ним связываться и выяснять, почему, поскольку заказ уже сформирован, и все данные клиента есть. Вот только почему статус у всех моих потерянных заказов - В обработке, хотя я везде выставляю Ожидание, пока вручную не подтвержу.
По своему опыту могу сказать, что в основном люди просто не понимают того, что надо что то еще нажать. На небольших экранах это достаточно проблемно, ибо инструкции по оплате разворачиваются в невидимую область экрана. По хорошему надо сделать прокрутку экрана вниз, чтоб как то обозначить, что заказ еще не до конца сформирован.
Зато супер, что все данные их уже записаны. И можно с человеком связаться. А в каком файле надо подправить запрос sql, чтобы в общем списке заказов показывались и заказы со статусом = 0 ? Там ведь явно есть что-то типа AND order_status_id <> 0. Кстати, сделал спец. файл, который выводит данные корзины в каждый конкретный момент. Тоже интересно знать, кто что там делает.
В модели admin/model/sale/order.php нужно подправить условие.... PHP: public function getOrders($data = array()) {...........} else { $sql .= " WHERE o.order_status_id >= '0'";}...........public function getTotalOrders($data = array()) {...........} else { $sql .= " WHERE order_status_id >= '0'";}
getTotal нужен для корректного отображения общего количества заказов. К примеру на главной странице админки или на странице заказов в пагинации. Условие удалять не стоит, ибо пропадет возможность фильтровать заказы по статусам или вовсе выдаст ошибку и не покажет ни одного заказа. Список заказов выводится либо согласно указанному статусу, либо со всеми заказами со статусом больше нуля. Просто подставьте знак = чтоб выводились также заказы со статусом 0.
У себя я не вижу файла sale.php. Пользуюсь версией 2.1. Быть может в 2.3 что то поменялось - нет возможности проверить.
Вот как в 2.3Х Файл admin/model/sale/order.php. Код: if ($implode) { $sql .= " WHERE (" . implode(" OR ", $implode) . ")"; } } else { $sql .= " WHERE o.order_status_id >= '0'"; //EDD - добавлено '=', чтобы в списке заказов показывались и Пропавшие заказы }
А вообще было бы полезно в конце списка вывести корзину неоформленную. Не так, как я ее вывел для себя отдельном файле. А в общем списке. В общем, не так, как у меня http://service.intomega.com/cart_taks.php Потому что здесь надо вспомнить, чтобы просмотреть корзину.
Добрый день. Интересует вопрос как можно просмотреть брошенные заказы в корзине у пользователей, если они не зареганы в магазине? магазин на ocstore 2.1
Можно сделать скриптик и вытаскивать из БД, если в саму БД лезть не хочется. Примерно так: Код: <?php //Подключение к MYSQL $dbase='База данных ваша... ... ...'; $table1='cart'; $table2='customer'; $table3='product'; $table4='option'; db_connect($dbase,'p'); echo '<h1>Корзина: не до конца оформленные заказы</h1>'; $sql='SELECT `cart_id`, `api_id`,'. $table1.'.customer_id,'. $table1.'.product_id, `option`,'. $table1.'.quantity, DATE_FORMAT('.$table1.'.date_added, "%d-%m-%Y - %i:%H") AS `date_added`, `firstname`, `lastname`, `model` FROM '.$table1.' LEFT JOIN '.$table2.' ON '.$table1.'.customer_id='.$table2.'.customer_id LEFT JOIN '.$table3.' ON '.$table1.'.product_id='.$table3.'.product_id ORDER BY '.$table1.'.date_added DESC';