Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

ocStore 2.1.0.2.1 и API


tambu34

Recommended Posts

Прошу помощи. Знаю, что тема не нова и есть похожие темы в которых описывают проблему работы внутреннего API, но я не нашел для себя ответа и честно говоря уже не знаю КАК эту проблему решить.

 

Началось все с того, что в админке начала появляться ошибка "нет доступа к API" или что-то похожее. Нужно было добавить свой IP для того, чтобы можно было вносить изменения в статус заказа и редактировать/удалять заказы.

Сейчас у меня проблема, что нельзя ни удалить, не отредактировать заказ, ни изменить статус.

Я проверил наличие своих IP-адресов в списке доступных для API, в настройках магазина во вкладке Опции выставлено API Пользователя, а также проверил, что ID созданного API совпадает с ID указанного в settings в базе данных, но тем не менее прав на редактирование заказов у меня нет. Есть подозрение, что поломан механизм создания сессий в API, если так можно вообще выразиться, потому что я слабо понимаю как это API работает.

 

При попытке изменить статут заказа, вываливается ошибка:

Внимание: У Вас нет разрешения на доступ к API! 

Если с изменением статуса можно применить костыль в виде отключения проверки в файле controller/api/order.php

if (!isset($this->session->data['api_id'])) {

но что делать с редактированием заказа и удалением?

 

При попытке удалить заказ, я получаю ошибку во всплывающем окне: Internal Server Error, а в логах веб-сервера:

PHP Fatal error:  Call to a member function getId() on a non-object in /var/www/shop/system/library
/cart.php on line 35, referer: http://мой-домен/admin/index.php?route=sale/order&token=24JTAZDlN8I7gTdC91zYLdSfJnh1rAp3&filter_order_status=2,1,12

Установлен модуль simple для формирования заказов

Прошу помощи. Возможно уже с таким кто-то сталкивался и есть решение?

Надіслати
Поділитися на інших сайтах

Попробовал полностью пересоздать запись API в Система-Пользователи-API. Сейчас даже не сообщает о том, что надо добавить IP для работы с API.

В настройках магазина само собой выставил "API Пользователя" новосозданный API

Надіслати
Поділитися на інших сайтах

есть подозрение, что проблема с моим хостингом. Из виртуалхоста убрал правило rewrite

#       RewriteCond %{HTTP_HOST} ^www.мой-домен.com
#       RewriteRule (.*) http://мой-домен.com/$1 [R=301,L]

после этого в админке стала появляться ошибка

ВНИМАНИЕ: Ваш IP адрес 10.11.3.22 не имеет доступа к API! 

Но этот IP уже добавлен. Так или иначе я сдвинулся с мертвой точки. Буду думать дальше.

Змінено користувачем tambu34
Надіслати
Поділитися на інших сайтах

Проблема вроде бы как решилась. Честно говоря не понимая механизма работы этого API мне сложно делать выводы. Заработало в такой конфигурации:

Apache 2.4.6 + mpm-itk:

<VirtualHost IP-сервера>
    ServerAdmin [email protected]
    DocumentRoot /var/www/shop
    ServerName example.com
    ServerAlias www.example.com
    AddDefaultCharset UTF-8
    DirectoryIndex index.html index.php
    RewriteEngine on
    AssignUserId shop shop
    <IfModule mod_gzip.c>
	mod_gzip_on Yes
	mod_gzip_dechunk Yes
	mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
	mod_gzip_item_include handler ^cgi-script$
	mod_gzip_item_include mime ^text\.*
	mod_gzip_item_include mime ^application/x-javascript.*
	mod_gzip_item_exclude mime ^image\.*
	mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
    </IfModule>
    <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
      Order deny,allow
      Deny from all
    </FilesMatch>
    <Directory "/var/www/shop">
        AllowOverride none
	Options +FollowSymlinks
	Options -Indexes
	RewriteBase /
	RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
	RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
	RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
	RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
	Require all granted
	php_value session.save_path /var/www/shop/tmp
    </Directory>
    <Directory "/var/www/shop/admin">
	AuthUserFile /etc/httpd/.htpasswd
	AuthType Basic
	AuthName "Password-protected Area"
	Require valid-user
    </Directory>
</VirtualHost>

файл admin/config.php

ВАЖНО!

// HTTP
define('HTTP_SERVER', 'http://example.com/admin/');
define('HTTP_CATALOG', 'http://example.com/');

// HTTPS
define('HTTPS_SERVER', 'http://example.com/admin/');
define('HTTPS_CATALOG', 'http://example.com/');

 

В других вариациях у меня начинались проблемы с API. Всё равно у меня есть ощущение, что где-то что-то криво сделано, т.к. не со всех IP-адресов у меня это гребаное API работает в адмике. Может есть еще какие-то нюансы работы домашних роутеров? NAT?

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

Надіслати
Поділитися на інших сайтах

рано порадовался. Снова вылазят ошибки связанные с управлением заказами. Заказы нельзя отредактировать/удалить или изменить статус. Нет доступа к API.

На этом форуме все выглядит просто как монолог с моей стороны, но я всё же надеюсь, что найдутся сочувствующие и помогут с решением проблемы

Надіслати
Поділитися на інших сайтах

думаю проблема решена:

На виртуальной машине поднял сервер, влил чистый opencart, установил все свои модули, после влил БД с рабочего сайта и поменял файлы, где я вносил изменения.

Теперь у меня всё корректно заработало.

Надіслати
Поділитися на інших сайтах

  • 1 year later...
В 17.10.2016 в 21:23, tambu34 сказал:

думаю проблема решена:

На виртуальной машине поднял сервер, влил чистый opencart, установил все свои модули, после влил БД с рабочего сайта и поменял файлы, где я вносил изменения.

Теперь у меня всё корректно заработало.

 

 

Добрый день!

 

как в итоге решили проблему???

 

Система-пользователи-группы пользователей- выставляете права на группу(проставляем все галочки) - Админу все галки стоят!

Заходите в система-пользователи-апи - добавляете учетку с разрешенными ip - Создал, ключ апи сгенерировал, включил, IP записываются
Далее заходите в система-настройки-опции-api пользователей- выбираете созданный профиль - API пользователя выбран, кот был создан выше

 

Когда меняешь статус заказа, появляется это сообщение:    Внимание: У вас нет разрешения на доступ к API!

В чем проблема?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.