Skip to main content

A library to access Prestashop Web Service from Python.

Project description

Prestapyt

prestapyt is a library for Python to interact with the PrestaShop's Web Service API.

Learn more about the PrestaShop Web Service from the Official Prestashop Documentation.

prestapyt is a direct port of the PrestaShop PHP API Client, PSWebServiceLibrary.php

Similar to PSWebServiceLibrary.php, prestapyt is a thin wrapper around the PrestaShop Web Service: it takes care of making the call to your PrestaShop instance's Web Service, supports the Web Service's HTTP-based CRUD operations (handling any errors) and then returns the XML ready for you to work with in Python (as well as prestasac if you work with scala).

Installation

The easiest way to install prestapyt (needs setuptools):

easy_install prestapyt

Or, better, using pip:

pip install prestapyt

If you do not have setuptools, download prestapyt as a .tar.gz or .zip from Prestapyt Source Archives, untar it and run:

python setup.py install

In order to always be uptodate, the best way is to use pip from this repo with the following command :

pip install --ignore-installed git+https://github.com/prestapyt/prestapyt.git@master

Usage

Message as xml

from prestapyt import PrestaShopWebService
prestashop = PrestaShopWebService('http://localhost:8080/api', WEBSERVICE_KEY)

Message as dictionary

from prestapyt import PrestaShopWebServiceDict
prestashop = PrestaShopWebServiceDict('http://localhost:8080/api', WEBSERVICE_KEY)

Search

Get all addresses

prestashop.get('addresses') # will return the same xml message than
prestashop.search('addresses')

Note: when using PrestaShopWebServiceDict prestashop.search('addresses') will return a list of ids.

Search with filters

prestashop.search('addresses', options={'limit': 10})
prestashop.search('addresses', options={'display': '[firstname,lastname]', 'filter[id]': '[1|5]'})

For additional info check reference for the options.

Get single address

prestashop.get('addresses', resource_id=1) or prestashop.get('addresses/1')

returns ElementTree (PrestaShopWebService) or dict (PrestaShopWebServiceDict).

You can use the full api URL

prestashop.get('http://localhost:8080/api/addresses/1')

Head request

prestashop.head('addresses')

Manipulate records

Delete

prestashop.delete('addresses', resource_ids=4)

Delete many records at once

prestashop.delete('addresses', resource_ids=[5,6])

Add record

prestashop.add('addresses', xml)

Edit record

prestashop.edit('addresses', xml)

Get model blank xml schema

prestashop.get('addresses', options={'schema': 'blank'})

Add product image

file_name = 'sample.jpg'
fd = io.open(file_name, "rb")
content = fd.read()
fd.close()

prestashop.add('/images/products/123', files=[('image', file_name, content)])

API Documentation

Documentation for the PrestaShop Web Service can be found on the PrestaShop wiki: Using the REST webservice

Credits:

Thanks to Prestashop SA for their PHP API Client PSWebServiceLibrary.php

Thanks to Alex Dean for his port of PSWebServiceLibrary.php to the Scala language, prestasac from which I also inspired my library.

Copyright and License

prestapyt is copyright (c) 2012 Guewen Baconnier

prestapyt is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

prestapyt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with prestapyt. If not, see GNU licenses.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prestapyt-flachica-0.11.3.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

prestapyt_flachica-0.11.3-py2.py3-none-any.whl (26.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file prestapyt-flachica-0.11.3.tar.gz.

File metadata

  • Download URL: prestapyt-flachica-0.11.3.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.4

File hashes

Hashes for prestapyt-flachica-0.11.3.tar.gz
Algorithm Hash digest
SHA256 20ee93418ecea062a800ffa1a92ceda0f3c7d93a057d19585211df6613770028
MD5 c73427fe5e7a9e4a8a64fdfaa7eab5f7
BLAKE2b-256 82753f270d12054563ea2c4300eae6d29605593edf0e816746a75a47f6060def

See more details on using hashes here.

File details

Details for the file prestapyt_flachica-0.11.3-py2.py3-none-any.whl.

File metadata

  • Download URL: prestapyt_flachica-0.11.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.4

File hashes

Hashes for prestapyt_flachica-0.11.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5104c4fe23fec3258457159e803975da86ad84008e73fae86fe5859bdde51eaf
MD5 45cbcd7ae3b6f8db0c5745716ccd1f1b
BLAKE2b-256 3d5561eab85a64d9b7a8d0d92b8d01a002986ec06a8a8324d91b267df796218b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page