Mailchimp Open Commerce is an API-first, headless commerce platform built using Node.js, React, GraphQL. Deployed via Docker and Kubernetes.
GPL-3.0 License
Bot releases are visible (Hide)
Published by kieckhafer over 4 years ago
This is the second beta release of our new Reaction project.
Reaction releases will no longer be coordinated across all projects - we'll release each project, independently, as needed. This means version numbers will no longer be in sync. The newest versions of each project will work together. This change has two exceptions: we will release all projects in coordination for a beta
release, and all projects in coordination for the official v3.0.0
release.
Permissions are now checked by querying a group
that user belongs to, and checking against permissions
that the group
has. In the past, each user
had roles
(renamed permissions) attached to it, and the roles were checked. This will help keep permissions in sync via groups, instead of individually updating all users every time a permission changes or a user is added to a group.
Published by kieckhafer almost 5 years ago
This is the beta release of our new Reaction project.
Reaction releases will no longer be coordinated across all projects - we'll release each project, independently, as needed. This means version numbers will no longer be in sync. The newest versions of each project will work together. This change has two exceptions: we will release all projects in coordination for a beta
release, and all projects in coordination for the official v3.0.0
release.
All Reaction API services now authenticate through OAuth2, via reaction-hydra
and reaction-identity
. meteor-login-token
has been replaced with an Authorization
header. See our authorization docs for more.
This release includes additional queries
and mutations
which now allows our API to cover all former Meteor methods and actions.
Thanks to @trojanh for contributing to this release! 🎉
Published by kieckhafer almost 5 years ago
This is the latest alpha release of our new Reaction project.
Reaction releases will no longer be coordinated across all projects - we'll release each project, independently, as needed. This means version numbers will no longer be in sync. The newest versions of each project will work together.
This release adds new integration tests.
Thanks to @trojanh and @rogersoares for contributing to this release! 🎉
Published by kieckhafer almost 5 years ago
Reaction v2.9.1 adds miscellaneous bug fixes and contains no breaking changes since v2.9.0.
This release is being coordinated with reaction-platform
and is designed to work with v2.9.1
of example-storefront
and reaction-hydra
.
Logging in from the example storefront has been fixed to allow a user to stay logged in when navigating to login from the storefront.
Published by kieckhafer almost 5 years ago
Reaction v3.0.0-alpha.2 is the second alpha release of our new Reaction project.
Reaction releases will no longer be coordinated across all projects - we'll release each project, independently, as needed. This means version numbers will no longer be in sync. The newest versions of each project will work together.
The primary focus for this release is the addition of integration tests for many mutations and queries
Published by rosshadden almost 5 years ago
Reaction v3.0.0-alpha is our alpha release of the new Reaction project.
This release is being coordinated with Reaction Platform and is designed to work with v3.0.0-alpha
of Reaction Hydra and Example Storefront.
Abstracted meteor-related sections into other projects.
This drastically improves build, startup, and restart times.
All of the still-used old meteor methods have been ported to GraphQL queries and mutations.
tags/getBySlug
#5786
templates/email/update
#5792
retryFailed
method for emails #5793
updateShop
mutation to set all necessary settings #5804
addAccountEmailRecord
mutation #5813
addCartItems
mutation #5814
product
and products
#5818
updateShop
mutation to accept parcel size and brand assets #5846
accountCartByAccountId
query #5857
allowGuestCheckout
setting #5815
updateTag
and createTag
mutations #5824
MONGO_URL
properly #5827
URL
instead of url.parse
#5717
api-utils
version number #5851
anonymousCartByCartId
query #5859
getFlatRateFulfillmentRestrictions
#5866
getFlatRateFulfillmentRestriction
#5869
Thanks to @trojanh for contributing to this release! 🎉
Published by machikoyasuda almost 5 years ago
Reaction v2.9.0 adds integration tests for GraphQL API endpoints, security updates and fixes a fulfillment method bug.
This release is being coordinated with Reaction Platform and is designed to work with v2.9.0
of Reaction Hydra and Example Storefront.
As a part of the major push to remove the Meteor dependency from the GraphQL API, we've been adding more Jest integration tests with the goal of full integration test coverage for all GraphQL queries and mutations provided by all core and included plugins. In this release, we've added tests for the following GraphQL queries: shopBySlug
, orderByReferenceId
, ordersByAccountId
, addTag
and removeTag
. See test coverage epic here.
Refactors the updateOrderFulfillmentGroup
GraphQL mutation to update only the specified group, not all fulfillment groups.
Bumps @reactioncommerce/data-factory to version 1.0.1 and @reactioncommerce/job-queue to version 1.0.5.
Thanks to @YuuwakU for contributing to this release! 🎉
Published by kieckhafer almost 5 years ago
Reaction v2.8.1 adds a bug fix and contains no breaking changes since v2.8.0
This release is being coordinated with reaction-platform
and is designed to work with v2.8.1
of example-storefront
and reaction-hydra
.
Password reset has been fixed to correctly send a password reset email, and re-direct the user once their new password has been set.
fix: password-reset route not working correctly (#5744)
Published by kieckhafer almost 5 years ago
Reaction v2.8.0 adds performance enhancements and fixes bugs.
This release is being coordinated with Reaction Platform and is designed to work with v2.8.0
of Reaction Hydra and Example Storefront.
Jest integration tests were failing due to a memory leak in async test code. We have closed that memory leak with this release.
Published by willopez about 5 years ago
Reaction v2.7.0 adds performance enhancements and fixes bugs.
This release is being coordinated with Reaction Platform and is designed to work with v2.7.0
of Reaction Hydra and Example Storefront.
no-meteor
folders to node-app
As part of de-meteorization of the Reaction API, We have continued the migration of moving all server side code in no-meteor
folders to their respective node-app
folders.
There might be breaking changes in custom plugins due to the movement of core packages to the node-app
folders. Custom plugins will need to update their imports paths to reflect the new location of packages.
appEvents
from all meteor code (#5692)archiveProducts
GQL mutation to replace meteor methods (#5680)Published by kieckhafer about 5 years ago
Reaction v2.6.0 adds minor features and performance enhancements, fixes bugs and contains no breaking changes since v2.6.0.
This release is being coordinated with Reaction Platform and is designed to work with v2.6.0
of Reaction Hydra and Example Storefront.
no-meteor
folders to node-app
As part of de-meteorization of the Reaction API, We have started the migration of moving all server side code in no-meteor
folders to their respective node-app
folders.
shipping
and surcharges
from server/no-meteor to node-app (#5632)settings
from server/no-meteor to node-app (#5634)address
from server/no-meteor to node-app (#5587)template
from server/no-meteor to node-app (#5586)reaction-error
external package instead of internal alias (#5631)Published by kieckhafer about 5 years ago
Reaction v2.5.0 adds minor features and performance enhancements, fixes bugs and contains no breaking changes since v2.4.0.
This release is being coordinated with Reaction Platform and is designed to work with v2.5.0
of Reaction Hydra and Example Storefront.
Adds API support to enable users to filter orders by: search keywords (fuzzy search), status, payment status, fulfillment status, date range.
By switching to jest-mongodb
, we've seen 8x speed improvement when running npm run test:integration
accounts/sendResetPasswordEmail
into a GraphQL mutation (#5558)catalog/publish/products
meteor method, use publishProductsToCatalog
GQL Mutation instead (#5541
Published by kieckhafer about 5 years ago
Reaction v2.4.0 adds minor features and performance enhancements, fixes bugs and contains no breaking changes since v2.3.0.
This release is being coordinated with Reaction Platform and is designed to work with v2.4.0
of Reaction Hydra and Example Storefront.
i18n translations have been moved outside of the Meteor context. This provides a standard route, /locales/resources.json
, where all translations live, and allows for real-time updates to translations without needing to flush the cache.
As part of our move away from Meteor, all Meteor app-tests have been removed. This speeds up both local testing and testing on CI.
catalog/publish/products
meteor method, use publi#5541hProductsToCatalog
GQL Mutation instead (#)Published by kieckhafer about 5 years ago
Reaction v2.3.0 adds minor features and performance enhancements, fixes bugs and contains no breaking changes since v2.2.1.
This release is being coordinated with reaction-platform
and is designed to work with v2.3.0
of example-storefront
and reaction-hydra
.
Reaction Admin users can now add and remove tags from products in bulk. After selecting multiple products in the product table or filtering products with a CSV file, users can specify tags they'd like to add or remove from those products.
This feature uses several new components from the Catalyst Design System, including SplitButton, Chip and MultiSelect. Several dependencies, including react-select
, react-dropzone
and material-ui/core
were upgraded to their latest versions.
file-collections
has been updated to its latest version, which supports uploading without Meteor. All related code has been updated to remove Meteor.
context.callMeteorMethod
All GraphQL mutations which still used Meteor methods via the context.callMeteorMethod
function - inviteShopMember
, addressBookRemove
, removeAccountFromGroup
, setAccountProfileCurrency
, updateAccountAddressBookEntry
- have been updated to fully use GraphQL. In turn context.callMeteorMethod
is no longer used, and has been removed from the codebase.
Thanks to @trojanh for contributing to this release! 🎉
Published by willopez about 5 years ago
Reaction v2.2.1 adds a bug fix and contains no breaking changes since v2.2.0
This release is being coordinated with reaction-platform and is designed to work with v2.2.1 of example-storefront and reaction-hydra.
fulfillmentTypes
, which was not part of the ShippingMethod
schema, which caused a validation error. This issue was resolved by adding the fulfillmentTypes
prop to the ShippingMethod
schema.Published by willopez about 5 years ago
Reaction v2.2.0 adds minor features and performance enhancements, fixes bugs and contains no breaking changes since v2.1.0.
This release is being coordinated with reaction-platform
and is designed to work with v2.2.0
of example-storefront
and reaction-hydra
.
eslint
warningsThe Reaction code base is now clean of all eslint
warnings. Going forward, all eslint
rules have been changed to error
, and CI will fail if any are present.
Admins can filter products by uploading a CSV in the product admin.
Apollo has been updated to v3.0.0, which introduces GraphQL hooks into Reaction.
The new Orders UI allows is completely GraphQL based and allows for updates to multiple fulfillment groups on each order.
Snyk was unable to work with PR's from forked repositories, which in turn caused every contribution to fail the CI check. We have removed Snyk as a blocking CI check because of this, and will run it locally on a schedule to still see which packages are in need of an update.
returns
instead of return
(#5447)None
Thanks to @cmbirk, @loan-laux and @rattrayalex-stripe for contributing to this release! 🎉
Published by kieckhafer about 5 years ago
Reaction v2.1.0 adds minor features and performance enhancements, fixes bugs and contains no breaking changes since v2.0.0.
This release is being coordinated with reaction-platform
and is designed to work with v2.1.0
of example-storefront
and reaction-hydra
.
Our new Catalyst design system has been introduced into the Reaction codebase, and is used on various components including ConfirmDialog
and Button
. All new default component theme modifications must come from Catalyst.
Allows operators to change aa tag slug independently of a tag name.
A createRefund
GraphQL mutation has been added to allow refunds to be processed via GraphQL in addition to the existing meteor methods.
"DataLoader
is a generic utility to be used as part of your application's data fetching layer to provide a simplified and consistent API over various remote data sources such as databases or web services via batching and caching."
Added the first couple of DataLoaders for Shops and SimpleInventory. Shops will benefit product listing pages as product and variant resolvers all query Shops collection for each product. SimpleInventory query benefits from batching.
When running large inventory import via an external sync system, the lack of a bulk mutation made the import takes many hours. This update introduces a bulk import option which cuts down import time significantly.
eslint
rules, and bulk fix of over 500 eslint
warningsWe've updated to using v2.0.0 of our Reaction ESLint Config package, and have brought our eslint
warnings down from 800 to under 300.
react/no-deprecated
and react/prop-type
eslint warnings (#5307)id-length
eslint warnings (#5298)max-len
eslint warnings (#5296)None
Thanks to @janus-reith for contributing to this release! 🎉
Published by spencern over 5 years ago
Reaction v2.0.0 is an API-first, real-time commerce engine built using Node.js, React, and GraphQL. It’s the second major release of our open source commerce software.
This release is coordinated with Reaction Platform and is designed to work with the Example Storefront (previously Storefront Starter Kit) and reaction-hydra.
Reaction v2.0.0 is built as a truly headless commerce platform that decouples the Reaction backend services from the frontend. We’ve decoupled the storefront application from the API. Reaction platform now consists of the reaction
project, which is now primarily our GraphQL API, and for the time being also our operator UI and our identity provider, along with our new-to-2.0 Example Storefront built on Next.js, which connects with the Reaction application via GraphQL API to provide a customer-facing storefront. The legacy integrated Meteor storefront is no longer part of the Reaction project.
Check out previous release notes for details and associated issues and PRs.
Operator experience and UI
The store operator experience has been substantially enhanced from v1.x. We’ve shifted the operator UI for managing products from a What You See Is What You Get (WYSIWYG) product editor to one that is designed for greater flexibility. We have transitioned from a single-page admin experience to a full-page operator experience that’s fully separate from the storefront. The new operator UI uses 100% of the screen space for store management and operation, and will benefit users managing large product catalogs and complex fulfillment patterns.
We’ve also added lots of new functionality around tags (tag dashboard and new tag management features), site navigation (including sitemaps and navigation tree editor), and fulfillment options (ability to add restrictions or surcharges based on product tags and/or customer location).
GraphQL API coverage
Most Meteor methods are removed in favor of the new GraphQL API. GraphQL is the only way to interact with the API from a storefront app. The operator UI uses a mixture of GraphQL and Meteor DDP while we complete the transition to GraphQL on the administrative side.
Developer experience and performance
For developers, we’ve made a number of enhancements to improve the overall developer experience, especially debugging, logging, and updated documentation.
bin/setup
improvements.env
file (#4826)envalid
for validation of environment variablesWe’ve made some tweaks to increase performance and improve initial boot time:
reaction-cli
(v2.0.0-rc.10)We’ve also improved Reaction’s extensibility in a number of ways, such as:
collections
option for registerPlugin
, which allows plugins to define their MongoDB collections and indexes in a standard way (#5196)And finally, we’ve updated all Reaction dependencies (such as React and Apollo) to the latest versions, and updated our base docker image to use Meteor 1.8 (#4760).
Security audit
For the 2.0 release we’ve done a full security audit of the application, including cart, order methods, payment processing methods, and more, and fixed potential vulnerabilities.
Other updates
simple-inventory
plugin, and is no longer directly tied to the Products
collectionsimple-pricing
plugin, and allows for a 3rd party pricing service integration. (#5014 & #5143)orderId
and cartId
and create IDs of a different type or in a specific order (#5054)See this page for a non-comprehensive list of new and updated docs.
Some highlights:
Support for Windows.
[reaction-platform](https://github.com/reactioncommerce/reaction-platform)
is not compatible with Windows and has not been fully tested on Windows at this time.
MacOS and Linux are supported.
Reaction will support development in a dockerized environment and will focus on tooling and documentation for installation and configuration on the macOS and Linux OSes.
We've adopted the Developer Certificate of Origin (DCO) in lieu of a Contributor License Agreement for all contributions to Reaction Commerce open source projects. We request that contributors agree to the terms of the DCO and indicate that agreement by signing all commits made to Reaction Commerce projects by adding a line with your name and email address to every Git commit message contributed:
Signed-off-by: Jane Doe <[email protected]>
You can sign your commit automatically with Git by using git commit -s
if you have your user.name
and user.email
set as part of your Git configuration.
We ask that you use your real name (please no anonymous contributions or pseudonyms). By signing your commit you are certifying that you have the right have the right to submit it under the open source license used by that particular Reaction Commerce project. You must use your real name (no pseudonyms or anonymous contributions are allowed.)
We use the Probot DCO GitHub app to check for DCO signoffs of every commit. If you forget to sign your commits, the DCO bot will remind you and give you detailed instructions for how to amend your commits to add a signature.
We're following in the footsteps of several other open source projects in adopting the DCO such as Chef, Docker, and GitLab
Our sincere thanks to @rattrayalex-stripe, @willmoss1000, @pmn4, @loan-laux, @lcampanis and the @artlimes folks, @dhonig, and everyone on our Community Council for contributing to this release.
We want to hear from you! Here are some good ways to get in touch.
Published by jeffcorpuz over 5 years ago
This is our twelfth release candidate for v2.0.0 of Reaction.
Please check it out and let us know what works and what doesn't for you.
This release is being coordinated with reaction-platform
and is designed to work with the same versions of example-storefront
and reaction-hydra
.
reaction plugins
usage (#5070)getVariantPrice
to determine price in xformCartGroupToCommonOrder
(#5142)navigationTreeById
now accepts an object containing params { language, navigationTreeId, shouldInlcudeSecondary } instead of individual params. (#5153)draftItems
is admin only now so to not expose work-in-progress changes to the publicprice
field has been removed from CatalogProduct
and CatalogProductVariant
. (#5143)Published by jeffcorpuz over 5 years ago
This is our eleventh release candidate for v2.0.0 of Reaction.
Please check it out and let us know what works and what doesn't for you.
This release is being coordinated with reaction-platform
and is designed to work with the same versions of reaction-next-starterkit
and reaction-hydra
.
Reaction is no-longer a customer-facing app, it's an administration tool and offers a GraphQL API.
All customer-facing views are the responsibility of a separate storefront app that makes use of the GaphQL API. See our example storefront as an example of how to achieve this.
Product grid and Product detail pages moved into the new operator experience and updated for that experience.
Product grid is now represented as a table in the new experience with the same bulk actions it had previously
Is no longer a WYSIWYG editor.
All product forms have been moved on from the sidebar and into the main view and have been expanded.
Reaction is no-longer a customer-facing app, it's an administration tool and offers a GraphQL API.
We have removed the search-mongo
and ui-search
plugins from the imports/plugins/included directory
of reaction
. Which in turn removes order search bar
from operator order UI. (#5053)