npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sphere-product-type-json-generator

v3.0.0

Published

Generates product type JSON representations from CSV templates.

Downloads

34

Readme

commercetools logo

ProductType JSON generator

NPM

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

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'

Development

  • 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:

  export SPHERE_PROJECT_KEY={PROJECT_ID}
  npm test

This will start tests under sphere project {PROJECT_ID}.

Contributing

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

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

License

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