Здравствуйте. Как можно отключить функцию "Потерянные заказы" в opencart? Или как изменить логику формирования заказов. Необходимо, что бы заказы добавлялся в БД только при нажатии на кнопку "Оформить заказ" в корзине. Заранее благодарен.
Извините, нет там этого пункта. Это логика: Если я не ошибаюсь то в старых версиях опен-карта, этой опции раньше не было, и приходилось эти так называемые "потерянные заказы" искать только в базе через запрос: "SELECT * FROM `oc_order` WHERE order_status_id = 0". Это в принципе тот же самый запрос который выполняет отчет "Продажи-Заказы" при выборе статуса "потерянные заказы" в фильтре. Как я уже писал "потерянные заказы" это заказы без статуса. То есть их статус это 0. Когда происходит подтверждение заказа клиентом (это когда клиент уже нажимает кнопку подтвердить заказ), система запускает скрипт controller/checkout/confirm.php. Этот скрипт создаёт запись в базе на заказ клиента со статусом 0. (то-есть на данный момент у этого заказа нет статуса, но он уже содержит имя клиента, адрес, сумму, продукты итд...) Затем запускается скрипт который отвечает за перевод денежных средств. Какой скрипт оплаты запустится системой опен-карт зависит от того какой тип оплаты был выбран клиентом при заказе. Эти скрипты хранятся в controller/payment/*.php. Когда скрипт получает сообщение о переводе денежных средств от системы оплаты (например PayPal или SagePay) то находит недавно созданную запись заказа в базе (без статуса) и даёт статус заказу в зависимости от полученного сообщения. Сообщение о переводе от системы оплаты может быть разное, например Отказано, Не удалось, в ожидании, Завершено, итд.
Смотря, что вы называете старыми версиями: в ветке 1.5 потерянные уже были, а до этой ветки я с ним не работал, так что не знаю. Отключения потерянных там нет (правда, я свежие версии уже пару лет не смотрел, может, уже и есть), но там есть возможность свести весь процесс оформления к одному нажатию кнопки. Большая часть потерянных заказов появляется из-за того, что покупатели нажимая на различные подтверждения в процессе оформления, думают, что на этом оформление закончено и не доходят до того финального нажатия, которое и записывает заказ с нормальным статусом.
Самое простое что я сделал и забыл, это в БД в таблице order, поставить по дефолту 1 для order_status_id --- Добавлено, 2 сен 2016 --- Dotrox, Кстати симпл у меня стоял и потеряные заказы были - это когда пользователь купил, но забыл нажать кнопку подтвердить
Simple можно настроить так, чтоб уже первое нажатие полностью оформляло заказ. Если же покупатель ни разу не нажал на подтверждение - есть большая вероятность, что он вообще не планировал оформлять заказ (перешёл на страницу оформления и по каким-то причинам передумал).