Product update: We've been building

4 min read
by Andrew Underwood
July 13, 2020

After launching Commerce.js in January, the human behaviours that drive the world of commerce have shifted in a big way.

This digital renaissance means that every company is now a software company as businesses and customers default to online transactions. These recent events have further reinforced our mission as a company — increase the access to modern, API-first tools that lower the cost of experimentation for businesses.

eCommerce adoption 2020 commerce.js

We’ve spent the past few months building the foundation for our headless commerce platform so we can continue to support businesses and their evolving and unique use cases. The team have been working hard to make our APIs more robust and the dashboard a powerful place to manage products and orders.

Let’s highlight a few of the improvements, fixes, and wins we’ve made over the past few months.



  • Added support for using Stripe Payment Intents as a payment method
  • Improved error handling when using Stripe payment gateway
  • Added APIs for managing digital fulfillments on an order: list, get, revoke, enable
  • Updating objects via PUT API requests are no longer idempotent, partial data updates are now allowed using this method, previously requests were idempotent
  • All API endpoints now return appropriate no-cache HTTP headers
  • Added CRUD endpoints for API keys
  • Added API endpoints and support for webhooks and webhook delivery history
  • Add unique signing key for merchants to verify authenticity of webhook delivery's signature
  • Manual payments are now included in the pending_payments array of the order object
  • Optimised database table indexes to improve order API performance

Commerce.js Docs


  • Order API now includes digital package expiry date
  • Order object metadata attribute is now named meta to be in line with other objects
  • Updating an order now supports defining a custom meta object
  • Orders may now be retrieved by the customer_reference identifier


  • Creating or updating a product via the API now supports configuring discounts for it in the same operation
  • Creating or updating a product now returns the updated product object
  • Products now support a custom meta attribute via the API
  • Added support for tax exempt products
  • APIs for retrieving a product, adding to cart, and generating a new cart from a product may all now use the product's SKU as an identifier


  • The discount object now includes an is_expired boolean
  • Updating discounts is now supported via the API
  • Discounts can now be applied to multiple products

Chec Discounts


  • Added CRUD API endpoints for categories
  • Creating and editing categories now allows for nullable description attributes
  • Deleting a category now returns the category's ID, and clears existing product associations


  • Our new headless dashboard is being rolled out to deliver an elevated admin experience
  • Digital packages in an order may now have their expiry date and download counter cleared
  • Webhook delivery history records now include the first 500 characters of the callback URL's response body

Chec Dashboard products

Other notable updates

  • Released a new demo store to highlight the power and flexibility of Commerce.js
  • Launched to drive awareness in the headless commerce ecosystem
  • Listed Commerce.js as an integration partner with Manifold
  • Beta integration with Zapier
  • Added Commerce.js examples to the API documentation
  • Added new integration resources for React.js, Next.js, Vue.js, Nuxt.js, Three.js, Gatsby
  • JavaScript examples are now included in the Chec API documentation
  • Improved response attribute documentation for discounts, categories, and developer log API endpoints

What’s next?

Without giving too much away, we’ve got some exciting updates and features in the pipeline. These include ongoing updates to the dashboard, the creation of new endpoints, and a documentation/ guides overhaul.

To get a first glance at these features and be closer to our developer community, join our community slack channel.

You might also like