3.0.0 • Public • Published

    commercetools logo

    ProductType JSON generator


    Build Status Dependency Status devDependency Status Coverage Status Code Climate

    This component allows you to generate commercetools ProductType JSON drafts from CSV files in order to create those product types in your commercetools project.

    Getting started

    If you just want to use the tool, we recommend to use commercetools' impex platform to avoid any local installation - you only need your browser.

    Nevertheless you can run the program locally. You need NodeJS installed and simply run the following command in your terminal:

    $ npm install -g sphere-product-type-json-generator

    And then run:

    $ product-type-generator

    The component requires two CSV files:

    • a CSV file describing product attributes and their values (e.g. for type Enumeration)
    • a CSV file describing product types in general and the used attributes

    Please find some example CSV files in the data folder

    Posting generated product types

    The generated JSON files can be used then to be directly imported via commercetools HTTP API to your project. We provide a simple command to do that:

    $ product-type-update

    Simply pass the credentials and your file to import via --source. If you provide a directory, all *.json files inside that directory will be uploaded.


    Docker build

    There is also a docker container for easy setup/execution.

    Run docker container:

    docker run -v /path/to/files/:/files sphereio/product-type-generator

    Set an alias for repeated calls:

    alias product-type='docker run -v /path/to/files/:/files sphereio/product-type-generator'


    • Clone this repository and change into the directory
    • Install all necessary dependencies with
        npm install
    • To run tests you have to set up credentials for sphere project first: For setting credentials you can create file in your home folder ~/.sphere-project-credentials.json with content:
        "{PROJECT_ID}": {
            "client_id": "{CLIENT_ID}",
            "client_secret": "{CLIENT_SECRET}"

    Than you can do:

      npm test

    This will start tests under sphere project {PROJECT_ID}.


    In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt. More info here


    Releasing a new version is completely automated using the Grunt task grunt release.

    grunt release // patch release
    grunt release:minor // minor release
    grunt release:major // major release


    Copyright (c) 2014 SPHERE.IO Licensed under the MIT license.


    npm i sphere-product-type-json-generator

    DownloadsWeekly Downloads






    Unpacked Size

    151 kB

    Total Files


    Last publish


    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar