Akeneo PIM Python API Client


Python client for Akeneo PIM API

A simple Python client to use the Akeneo PIM API.

Dependencies are managed with pipenv (list of dependencies available in Pipfile).

You may install them with:

pipenv install --dev

Installation

The easiest is to use pipenv in your new project:

pipenv install git+https://github.com/matthieudelaro/akeneo_api_client#egg=akeneo_api_client

Usage

A simple example is provided in docs/example.py.

To export the data from your PIM, you may use the docs/example_exporter.py.

If you experience issues when importing modules, run the examples as follow:

cd docs
pipenv run python3 example_exporter.py

Tests

Run tests as follow:

pipenv run nosetests

If tests don’t pass in your environment, please check that dependencies match those described in Pipfile. One way to do it is to ensure that pipenv runs commands in a dedicated virtualenv by setting environment variable as follow:

export PIPENV_IGNORE_VIRTUALENVS=1
pipenv install --dev  # (re)run installation of dependencies

Or even emulate Travis in Docker:

# This will:
# - copy the current directory into a temporary directory, which will be mounted in (and modified by) a docker container
# - run the container of Travis as explained here: https://stackoverflow.com/a/49019950
# - run the steps of Travis thanks to wwtd: https://github.com/grosser/wwtd
rm -rf /tmp/localTravis; cp -R . /tmp/localTravis; INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"; BUILDID="build-$RANDOM"; docker run --name $BUILDID -dit -v /tmp/localTravis:/home/travis/matthieudelaro/akeneo_api_client $INSTANCE /sbin/init; docker exec -it --user travis $BUILDID bash -lc "whoami; cd /home/travis/matthieudelaro/akeneo_api_client; gem install wwtd; source ~/virtualenv/python3.6/bin/activate; wwtd -u before_install -u install -u before_script -u language -u python; history; bash"

Tests are provided with mocks, recorded with VCR.py. In case you need to (re)run tests, you should install the dataset in you PIM instance as follow:

  • specify the database to install in app/config/parameters.yml:
installer_data: PimInstallerBundle:icecat_demo_dev
  • install the database by running the following command:

    bin/console pim:installer:db --env=prod
    # or, in case you are using Docker:
    docker-compose exec fpm bin/console pim:installer:db --env=prod