Потерянные заказы в Opencart (ocStore). Вылавливаем баги системы.
Тема весьма специфичная, потому всем, кому не знакомо хоть одно слово из заголовка, можно смело пропустить данный пост. Кому-то надо писать и на такие темы, возможно мой опыт по поиску багов в этой системе поможет сэкономить время и нервы.
Суть в следующем, на одном интернет-магазине на движке ocStore (Opencart) обнаружился такой баг - все заказы попадали в "потерянные". В админке они находились если перейти в Продажи > Заказы и установить фильтр Статус - "Потерянные заказы".
Потерянным заказ считается, если ему присвоен нулевой статус в базе данных, а это в свою очередь указывает на какой-то сбой в процессе формирования заказа. Сбой может давать один из модулей оплаты, доставки, либо просто косяк в установке, как и было конкретно в моем случае.
Как оказалось, читая форум по Opencart такая проблема имеет место быть, а вот советы по решению вызывают недоумение. Кто предлагает просто поправить шаблон чтобы вне зависимости от статуса все заказы отображались скопом, кто принудительно выставлять статус отличный от нулевого в базе данных. Я же считаю что правильнее будет искать проблему, а не выдумывать костыли, тем более в Opencart есть журнал ошибок, позволяющий отследить что же происходит внутри системы, правда многие о нём забывают.
Просмотрев логи Система > Журнал ошибок, выяснилось что по какой-то причине в базе данных интернет-магазина (ocStore) отсутствовала одна таблица `oc_customer_ip_blacklist`. Оставим это на совести косоруких вебмастеров которые спихнули в таком виде своё творение заказчикам. Проблема решилась добавлением недостающей таблицы из дистрибутива аналогичной версии ocStore. Я лишь хотел показать что даже сложные, на первый взгляд, проблемы, можно довольно просто выявить штатными средствами системы.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.