31 марта, 2025

OpenCart API

Недавно, в новом проекте, снова понадобилось стыковать базу 1С с сайтом на OpenCart. Когда то давно, такие стыковки я делал через прямые запросы в базу данных сайта. Сейчас это уже не модно и, тем более, у движка есть свой API. Однако, когда пришлось несколько доработать обмен, я увидел, что из себя представляет код на PHP и понял, что не смогу с ним совладать. По этому, просто взял и написал свой сервис. Ну, обычно, программеры так и делают.

На сегодня уже готов обмен данными товаров и категорий, в ближайших планах — получение заказов. Сервис написан на Go, ставится на сервер, рядом с сайтом. У сервиса настраивается доступ к базе данных OpenCart и порт на котором он слушает запросы. Авторизация возможна через токен, который вписывается в конфиг, или через токен, который настраивается в самом OpenCart — в админке, в разделе настроек API.

Из плюсов, которые я вижу в сравнении с родным API: скорость работы, сервис отделен от сайта и не грузит Апач, или на чем крутится сайт, данные валидируются и, если что-то не так, приходит ошибка, о результате загрузки приходит статус — успех или нет, текст ошибки, если она есть.

Подробное описание методов есть в репозитории, сам код открыт и его можно использовать для своих проектов, если нужно.

Из необычного, что добавил — отдельный эндпоинт, которым можно сделать выборку данных из произвольной таблицы. В метод передается имя таблицы и, если нужно, условие фильтра. В ответ приходит массив с записями. Это удобно для контроля данных, можно проверить, что и как обновилось и в какие таблицы, что записано.

Ссылка на GitHub: https://github.com/ruslan-hut/ocapi