Потерянные заказы

Тема в разделе "OpenCart", создана пользователем Den1a, 29 авг 2016.

  1. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    27
    Симпатии:
    1
    Здравствуйте.

    Как можно отключить функцию "Потерянные заказы" в opencart?

    Или как изменить логику формирования заказов. Необходимо, что бы заказы добавлялся в БД только при нажатии на кнопку "Оформить заказ" в корзине.

    Заранее благодарен.
     
  2. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    27
    Симпатии:
    1
    Все пересмотрел. Как называется нужный мне пункт?
     
  3. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    На все вопросы связанные с оформлением заказа обычно ответ один - модуль Simple.
     
  4. YoYo

    YoYo

    Регистрация:
    20 июл 2016
    Сообщения:
    120
    Симпатии:
    27
    Извините, нет там этого пункта.

    Это логика:

    Если я не ошибаюсь то в старых версиях опен-карта, этой опции раньше не было, и приходилось эти так называемые "потерянные заказы" искать только в базе через запрос: "SELECT * FROM `oc_order` WHERE order_status_id = 0". Это в принципе тот же самый запрос который выполняет отчет "Продажи-Заказы" при выборе статуса "потерянные заказы" в фильтре.

    Как я уже писал "потерянные заказы" это заказы без статуса. То есть их статус это 0.

    Когда происходит подтверждение заказа клиентом (это когда клиент уже нажимает кнопку подтвердить заказ), система запускает скрипт controller/checkout/confirm.php.
    Этот скрипт создаёт запись в базе на заказ клиента со статусом 0. (то-есть на данный момент у этого заказа нет статуса, но он уже содержит имя клиента, адрес, сумму, продукты итд...)

    Затем запускается скрипт который отвечает за перевод денежных средств. Какой скрипт оплаты запустится системой опен-карт зависит от того какой тип оплаты был выбран клиентом при заказе. Эти скрипты хранятся в controller/payment/*.php. Когда скрипт получает сообщение о переводе денежных средств от системы оплаты (например PayPal или SagePay) то находит недавно созданную запись заказа в базе (без статуса) и даёт статус заказу в зависимости от полученного сообщения. Сообщение о переводе от системы оплаты может быть разное, например Отказано, Не удалось, в ожидании, Завершено, итд.
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    Смотря, что вы называете старыми версиями: в ветке 1.5 потерянные уже были, а до этой ветки я с ним не работал, так что не знаю.

    Отключения потерянных там нет (правда, я свежие версии уже пару лет не смотрел, может, уже и есть), но там есть возможность свести весь процесс оформления к одному нажатию кнопки. Большая часть потерянных заказов появляется из-за того, что покупатели нажимая на различные подтверждения в процессе оформления, думают, что на этом оформление закончено и не доходят до того финального нажатия, которое и записывает заказ с нормальным статусом.
     
  6. sniper07

    sniper07

    Регистрация:
    2 сен 2016
    Сообщения:
    1
    Симпатии:
    0
    Самое простое что я сделал и забыл, это в БД в таблице order, поставить по дефолту 1 для order_status_id
    --- Добавлено, 2 сен 2016 ---
    Dotrox, Кстати симпл у меня стоял и потеряные заказы были - это когда пользователь купил, но забыл нажать кнопку подтвердить
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    Simple можно настроить так, чтоб уже первое нажатие полностью оформляло заказ. Если же покупатель ни разу не нажал на подтверждение - есть большая вероятность, что он вообще не планировал оформлять заказ (перешёл на страницу оформления и по каким-то причинам передумал).