API
Для использования OpenCart API вы должны предварительно включить его в административной части вашего сайта.
Перейдите в Система > Пользователи > API, и вы увидите пользователя, созданного по умолчанию, с API Username "Default".
При добавлении нового пользователя по умолчанию не будет никакого API-ключа, его необходимо с генерировать, нажав на кнопку "Генерировать" и установив "Статус" в положение "Включено.
Затем добавьте свой IP-адрес в список разрешенных для доступа к API на вкладке "IP адрес".
API доступен через URL-адрес, такой, как
http://example.com/index.php?route=api/cart/add
где в параметре route указывается нужный контроллер.
Примечание:
- У API пользователей поле customer_id всегда '0'. У них есть свой собственный api_id.
- Для примеров использована библиотека python-requests, но основная идея заключается в описании параметров, поэтому console curl будет достаточно.
- И в описаниях предполагается, что у нас есть префикс "oc_" в таблицах БД.
В первую очередь, вы можете и обязательно должны получить токен для вашей сессии - вы получаете файл cookie, и сервер OpenCart будет идентифицировать вашу активность таким образом.
import requests s = requests.Session() username = 'Default' key='L3MYyzlYMRL8gBcpCm6CdrVarFUXtPORZkJKP7vgaY8M8EIZWOr3EJxq' # Actually, key is 256 character-long s.post( 'http://myopencart.example.com/index.php?route=api/login', data={'username':username, 'key':key} ).text
Если все было сделано правильно, вы получите json-ответ с помощью api_token для вашего сеанса. Проверьте страницу API в административной части сайта, нажмите "Редактировать" на пользователе API и откройте вкладку "Сессия" - там вы можете увидеть установленную сессию.
Что вы можете сделать с OpenCart API?
Логин - Вход
api/login
Создание сессии для пользователя API по ключу PARAMS:
DATA:
username: username из таблицы oc_api
key: key из oc_api
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/shipping/address', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'username':username, 'key':key } )
Валюта
api/currency
ОПИСАНИЕ: изменить валюту сессии
PARAMS:
api_token
DATA:
currency: code из таблицы oc_currency
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/currency', params={'api_token':'768ef1810185cd6562478f61d2'}, data={'currency':'USD'} )
Корзина
api/cart/add
ОПИСАНИЕ: добавление товара в корзину
PARAMS:
api_token
DATA:
product_id: product_id из таблицы oc_cart
quantity: quantity из таблицы oc_cart
option: option array из таблицы oc_cart
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/cart/add', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'product_id':'100' 'quantuty':'1' } )
api/cart/edit
ОПИСАНИЕ: редактирование количества товара в корзине
PARAMS:
api_token
DATA:
key: cart_id из таблицы oc_cart
quantity: quantity из таблицы oc_cart
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/cart/edit', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'key':'10' 'quantuty':'2' } )
api/cart/remove
ОПИСАНИЕ: удаление товара из корзины
PARAMS:
api_token
DATA:
key: cart_id из таблицы oc_cart
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/cart/remove', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'key':'10' } )
api/cart/products
ОПИСАНИЕ: содержимое корзины
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/cart/products', params={'api_token':'768ef1810185cd6562478f61d2'}, data={} )
Купоны
api/coupon
ОПИСАНИЕ: применить существующий купон
PARAMS:
api_token
DATA:
coupon: code из таблицы oc_coupon;
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/coupon', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'coupon':'2222' } )
Покупатель
api/customer
ОПИСАНИЕ: назначить покупателя для текущей сессии
PARAMS:
api_token
DATA:
firstname:
lastname:
email:
telephone:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/customer', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'firstname':'Dear', 'lastname':'Customer', 'email':'customer@example.com', 'telephone':'+1 879 2548022'} } )
Подарочные сертификаты
api/voucher
ОПИСАНИЕ: применить существующий подарочный сертификат
PARAMS:
api_token
DATA:
voucher: code из таблицы oc_voucher;
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/voucher', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'voucher':'VOU-7271' } )
api/voucher/add
ОПИСАНИЕ: добавить новый подарочный сертификат для текущей сессии
PARAMS:
api_token
DATA:
from_name: from_name из таблицы oc_voucher
from_email: from_email из таблицы oc_voucher
to_name: to_name из таблицы oc_voucher
to_email: to_email из таблицы oc_voucher
amount: amount из таблицы oc_voucher в выбранной валюте
code: code из таблицы oc_voucher
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/voucher/add', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'from_name':'MyOpenCart Admin' 'from_email':'admin@example.com' 'to_name':'Dear Customer' 'to_email':'customer@example.com' 'amount':'100' 'code':'VOU-7177' } )
Доставка
api/shipping/address -
ОПИСАНИЕ: добавить адрес доставки к текущей сессии
PARAMS:
api_token
DATA:
firstname
lastname
address_1
city
country_id
zone_id
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/shipping/address', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'firstname':'Customer', 'lastname':'Dear', 'address_1':'Somewhere', 'city':'KLD', 'country_id':'RUS', 'zone_id':'KGD' } )
api/shipping/methods
ОПИСАНИЕ: возврат доступных способов доставки
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/shipping/methods', params={'api_token':'768ef1810185cd6562478f61d2'}, )
api/shipping/method
ОПИСАНИЕ: установить способ доставки для текущей сессии
PARAMS:
api_token
DATA:
shipping_method
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/shipping/method', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'shipping_method':'pickup.pickup' } )
Бонусы
api/reward
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
EXAMPLE:
session.post( 'http://myopencart.example.com/index.php?route=api/reward', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
api/reward/maximum
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/reward/maximum', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
api/reward/available
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/reward/avaliable', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
Заказ
api/order/add
ОПИСАНИЕ: новый заказ по содержимому корзины и информации об оплате / доставке был установлен в текущй сессии
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/order/add', params={'api_token':'768ef1810185cd6562478f61d2'}, )
api/order/edit
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/order/edit', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
api/order/delete
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/order/delete', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
api/order/info
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/order/info', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
api/order/history
ОПИСАНИЕ:
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/order/history', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ } )
Оплата
api/payment/address
ОПИСАНИЕ: установить адрес оплаты для этой сессии
PARAMS:
api_token
DATA:
firstname
lastname
address_1
city
country_id
zone_id
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/payment/address', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'firstname':'Customer', 'lastname':'Dear', 'address_1':'Somewhere', 'city':'KLD', 'country_id':'RUS', 'zone_id':'KGD' } )
api/payment/methods
ОПИСАНИЕ: возврат доступных способов оплаты
PARAMS:
api_token
DATA:
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/payment/methods', params={'api_token':'768ef1810185cd6562478f61d2'}, )
api/payment/method
ОПИСАНИЕ: настройка способа оплаты доступна в api/payment/methods
PARAMS:
api_token
DATA:
payment_method
ПРИМЕР:
session.post( 'http://myopencart.example.com/index.php?route=api/payment/method', params={'api_token':'768ef1810185cd6562478f61d2'}, data={ 'payment_method':'bank_transfer' } )