Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Уважаемые. Есть ли опыт общения с APi Opencart 4 у кого-нибудь.
Интересует управление товарами по API (по БД не интересует).
Но три дня работы с интернетом и ИИ результат не дали.
Ключ создаю. IP прописываю - но получаю "Вы не авторизованы".
Не пойму в чем дело.
Да и в целом об API Opencart почему то очень мало инфы.
Это первое, что нужно проверить. OpenCart 4 имеет строгую привязку API-ключа к IP-адресу.
Зайдите в админку: Система -> Пользователи -> API.
Откройте ваш созданный API-ключ для редактирования.
Перейдите на вкладку IP-адреса.
Убедитесь, что там точно указан IP-адрес, с которого вы отправляете запрос. Система даже показывает ваш текущий IP для удобства.
Если вы тестируете с локальной машины, а сайт на хостинге, ваш IP-адрес может быть динамическим. Проверьте его и добавьте в список.
Шаг 2. Используйте правильный путь (Endpoint) для авторизации
В OpenCart 4 путь для получения токена изменился. Если вы используете старый route=api/login, он работать не будет.
Правильный путь:index.php?route=api/account/login
Bash:
POST https://ваш-сайт.com/index.php?route=api/account/login
Content-Type: application/x-www-form-urlencoded
username=ИМЯ_ПОЛЬЗОВАТЕЛЯ_API&key=ВАШ_API_КЛЮЧ
В ответ вы должны получить JSON с api_token. Если вы получаете HTML-страницу с ошибкой 404, значит, вы используете неверный путь.
Шаг 3. Правильно передавайте токен в последующих запросах
Полученный api_token нужно передавать в заголовках каждого последующего запроса.
HTTP:
GET https://ваш-сайт.com/index.php?route=api/products
Authorization: Bearer ВАШ_API_TOKEN
Accept: application/json
Это более глубокая проблема, характерная для версии 4.1.0.0 и выше. В файле catalog/controller/startup/api.php по умолчанию разрешены только маршруты api/order и api/subscription. Если вы пытаетесь обратиться, например, к api/products, а его нет в этом списке, вы получите ошибку 403.
PHP:
// В файле catalog/controller/startup/api.php
$allowed = [
'api/order',
'api/subscription',
'api/products', // <-- Добавьте эту строку
'api/account/login' // <-- И эту, если её нет
];
После изменения не забудьте очистить кэш модификаторов в админке (Расширения -> Модификаторы -> Обновить).
Шаг 5. Убедитесь, что API включен и есть права
Проверьте самые базовые вещи:
Статус API-ключа в админке должен быть "Включен".
Пользователь, под которым вы работаете в админке, должен иметь права на доступ к API (Система -> Пользователи -> Группы пользователей).
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.