API

magento.api

Generic API for magento

copyright:
  1. 2010 by Sharoon Thomas.
copyright:
  1. 2010 by Openlabs Technologies & Consulting (P) LTD
license:

AGPLv3, see LICENSE for more details

class api.API(url, username, password, version='1.3.2.4', full_url=False, protocol='xmlrpc')

Generic API to connect to magento

__init__(url, username, password, version='1.3.2.4', full_url=False, protocol='xmlrpc')

This is the Base API class which other APIs have to subclass. By default the inherited classes also get the properties of this class which will allow the use of the API with the with statement

A typical example to extend the API for your subclass is given below:

from magento.api import API 

 class Core(API):
 
     __slots__ = ( )

     def websites(self):
         return self.call('ol_websites.list', [])

     def stores(self):
         return self.call('ol_groups.list', [])

     def store_views(self):
         return self.call('ol_storeviews.list', [])

The above real life example extends the API for the custom API implementation for the magento extension

magento-community/Openlabs_OpenERPConnector

Example usage

from magento.api import API

with API(url, username, password) as magento_api:
    return magento_api.call('customer.list', [])

Note

Python with statement has to be imported from __future__ in older versions of python. from __futur__ import with_statement

If you want to use the API as a normal class, then you have to manually end the session. A typical example is below:

from magento.api import API

api = API(url, username, password)
api.connect()
try:
    return api.call('customer.list', [])
finally:
    api.client.endSession(api.session)
Parameters:
  • url – URL to the magento instance. By default the URL is treated as a base url of the domain to which the api part of the URL is added. If you want to specify the complete URL, set the full_url flag as True.
  • username – API username of the Web services user. Note that this is NOT magento admin username
  • password – API password of the Web services user.
  • version – The version of magento the connection is being made to. It is recommended to specify this as there could be API specific changes in certain calls. Default value is 1.3.2.4
  • full_url – If set to true, then the url is expected to be a complete URL
  • protocol – ‘xmlrpc’ and ‘soap’ are valid values
connect()

Connects to the service but does not login. This could be used as a connection test

__enter__()

Entry point for with statement Logs in and creates a session

__exit__(type, value, traceback)

Exit point

Closes session with magento

call(resource_path, arguments)

Proxy for SOAP call API

multiCall(calls, options)

Proxy for multicalls

Previous topic

Magento API

Next topic

Catalog