В OpenCart есть довольно полезный инструмент BlackList (Чёрный список). Правда он немного примитивен, но как минимум позволяет по IP-адресу выявить недобросовестного покупателя. Конечно список IP-адресов необходимо знать заранее, что не совсем удобно, поскольку современные мошенники редко используют одни и те же адреса. Однако некоторые не стесняются открыто заявлять о себе и рассчитывают, прежде всего, на невнимательность владельца магазина. Целью мошенников обычно является сам заказ, а точнее его сумма. Зная программные недоработки или уязвимости в OpenCart, они могут подменить стоимость покупки. В этой статье речь пойдёт о решении, которое можно использовать поверх стандартного Черного списка.
Для начала вспомним как работает BlackList. После того, как покупатель заполнил все необходимые формы, ему будет предложено подтвердить заказ. После нажатия соответствующей кнопки в интерфейсе магазина, в базе данных будет создан журнал истории заказа со статусом по умолчанию. Этот статус выставляется в настройках магазина через переменную config_order_status_id. Проверка в Черном списке как раз осуществляется на этапе создания журнала, однако как показала практика, она бесполезна - при обнаружении в Черном списке записи о покупателе, заказу присваивается тот же статус, по умолчанию. Т.е. владелец магазина не сможет определить по статусу заказа его фиктивность. Возможно разработчики OpenCart недоработали этот механизм или он реализован в коммерческих версиях, в любом случае, будем это исправлять.
На примере переменной config_order_status_id в файлах ./admin/controller/setting/setting.php и ./admin/view/template/setting/setting.tpl создадим аналогичную переменную, например config_blocked_order_status_id. Далее в файле ./catalog/model/checkout/order.php находим следующий код:
if ($status) {
$order_status_id = $this->config->get(' config_order_status_id ');
}
и заменяем его на код ниже:
if ($status) {
$order_status_id = $this->config->get('config_blocked_order_status_id');
}
В настройках магазина определим новый статус для подозрительных заказов, например Блокирован. Теперь владелец магазина или менеджер будут видеть статус у заказа, если IP-адрес покупателя находится в стоплисте. На основе этой информации можно отказать в заказе или провести тщательную проверку заказа и самого покупателя.
Собственно мы на этом не остановились и решили продолжить доработку Черного списка. В частности, в расширенной версии можно указывать не только IP-адреса, но и имена хостов, причём как для IP, так и для хоста допустимо указывать их части, т.е. будет сравнение по частям строк. Это позволяет "подозревать" целые подсети и страны по TLD (домен верхнего уровня). В поле IP можно также указывать и адрес в формате CIDR:
По вопросам приобретения готового решения, просьба обращаться через страницу контактов.
Для начала вспомним как работает BlackList. После того, как покупатель заполнил все необходимые формы, ему будет предложено подтвердить заказ. После нажатия соответствующей кнопки в интерфейсе магазина, в базе данных будет создан журнал истории заказа со статусом по умолчанию. Этот статус выставляется в настройках магазина через переменную config_order_status_id. Проверка в Черном списке как раз осуществляется на этапе создания журнала, однако как показала практика, она бесполезна - при обнаружении в Черном списке записи о покупателе, заказу присваивается тот же статус, по умолчанию. Т.е. владелец магазина не сможет определить по статусу заказа его фиктивность. Возможно разработчики OpenCart недоработали этот механизм или он реализован в коммерческих версиях, в любом случае, будем это исправлять.
На примере переменной config_order_status_id в файлах ./admin/controller/setting/setting.php и ./admin/view/template/setting/setting.tpl создадим аналогичную переменную, например config_blocked_order_status_id. Далее в файле ./catalog/model/checkout/order.php находим следующий код:
if ($status) {
$order_status_id = $this->config->get(' config_order_status_id ');
}
и заменяем его на код ниже:
if ($status) {
$order_status_id = $this->config->get('config_blocked_order_status_id');
}
В настройках магазина определим новый статус для подозрительных заказов, например Блокирован. Теперь владелец магазина или менеджер будут видеть статус у заказа, если IP-адрес покупателя находится в стоплисте. На основе этой информации можно отказать в заказе или провести тщательную проверку заказа и самого покупателя.
Собственно мы на этом не остановились и решили продолжить доработку Черного списка. В частности, в расширенной версии можно указывать не только IP-адреса, но и имена хостов, причём как для IP, так и для хоста допустимо указывать их части, т.е. будет сравнение по частям строк. Это позволяет "подозревать" целые подсети и страны по TLD (домен верхнего уровня). В поле IP можно также указывать и адрес в формате CIDR:
По вопросам приобретения готового решения, просьба обращаться через страницу контактов.
Этот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьЕще рекомендую модуль с сайта scamdb.info, проверка клиента по телефону и email по общей базе + возможность вести свой черный список клиентов.
ОтветитьУдалить