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.0.0.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: prestapyt-flachica-0.0.0.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for prestapyt-flachica-0.0.0.tar.gz
Algorithm Hash digest
SHA256 19f0a6b3338db73cf74290d68e040b1062e6a230ed30ae00b08c8b090356e6bc
MD5 b2125a47f10c3742b1fae037b0d4613e
BLAKE2b-256 1518891223f0c148d4aca3bc175312737138ea7fa6493c377eaf1f956a416f79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for prestapyt_flachica-0.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9bc7e4dd23f71c8ec17187fce9f212b4269ed187fa1ee21d2d009b9a27e24fee
MD5 7fce18997c0c060c69e16a1968f0162f
BLAKE2b-256 738106cc30c8d42b1bab7d118271cb8daa15dee388737625ea587b75a9f10755

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