reaction

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

Downloads
2.2K
Stars
12.3K
Committers
206

Bot releases are hidden (Show)

reaction - v3.0.0-beta.2

Published by kieckhafer over 4 years ago

v3.0.0-beta.2

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.

Notable changes

Permissions are checked against groups, not users

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.

Fixes

  • fix: add missing permissions check to #6040

Refactor

  • refactor: get roles / permissions directly from group(s), not user object #6031

Docs

  • docs: update links to use trunk branch of docs #6050
reaction - v3.0.0-beta

Published by kieckhafer almost 5 years ago

v3.0.0-beta

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.

Notable changes

BREAKING CHANGE: Removal of meteor-login-token

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.

GraphQL API

This release includes additional queries and mutations which now allows our API to cover all former Meteor methods and actions.

Features

  • feat: Add createNavigationTree mutation & its tests #6023
  • feat: pt-BR translation for reaction-orders. #6004
  • feat: Compute displayPrice as resolver as needed #6025
  • feat: authentication plugin; drop support for meteor-login-token header #5999
  • feat: change graphql route #6027
  • feat: add delete action to account managers policy #6024
  • feat: Add updateAccountGroup mutation #6016

Fixes

  • fix: fix user roles and owner permission checks #6008
  • fix: Invisible Tags do not show on Admin tags list #6028

Refactor

  • refactor: remove restriction that limits account to one group per shop #6035
  • refactor: remove legacyRoles from authorization #6021
  • refactor: add legacy system name to permission resource structure #6019
  • refactor: use functionsOfType to register multiple auth permissions functions #6009
  • refactor: better internal context design #6020

Tests

  • tests: integration test approve order payments mutation #6013
  • tests: adds integration test for captureOrderPayments mutation #6015

Chores

  • chore: fix up eslintignore #6026

Contributors

Thanks to @trojanh for contributing to this release! 🎉

reaction - v3.0.0-alpha.3

Published by kieckhafer almost 5 years ago

v3.0.0-alpha.3

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.

Notable changes

Integration tests

This release adds new integration tests.

Fixes

  • fix: pt-BR translation for reaction-tags. #5997
  • fix: canBackorder has lowercase o throughout codebase #5990
  • fix: fix default public password reset URL #5991
  • fix: Some minor 3.0 fixes #5977

Refactor

  • refactor: Warn about non-unique names of functionsByType functions #6001
  • refactor: pass cart down to calculateOrderTaxes fn #6000

Tests

  • test integration test set tag hero media #6007
  • test: add integration tes for recalculateReservedSimpleInventory mutation #6010
  • test: full cart/checkout integration test #5976
  • test: adds integration test updateGlobalSettings mutation #5970
  • test: add integration test for inviteShopMember mutation #5984
  • test: adds integration test for generateSitemaps mutation #5995
  • test: adds integration test for updateShopSettings mutation #5974
  • test: Use Factory to mock FulfillmentMethod #5988
  • test: add integration test for create, update & delete FlatRateFulfillmentRestriction mutations #5981

Chores

  • chore: Node debugger config #5993
  • chore: use published image for docker-compose #5992
  • chore: Upgrade mongodb and jest-mongodb #5904

Contributors

Thanks to @trojanh and @rogersoares for contributing to this release! 🎉

reaction - v2.9.1

Published by kieckhafer almost 5 years ago

v2.9.1

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.

Notable changes

Fix example-storefront login issue

Logging in from the example storefront has been fixed to allow a user to stay logged in when navigating to login from the storefront.

Fixes

  • fix: login from storefront #5951
  • fix: issue that prevented uploading images on Firefox #5939
  • fix: routing when logging in from storefront #5932
  • fix: add shop based roles to first user account #5926
  • fix: missing logout button #5927
  • fix: prices not updating via UI #5924
  • fix: made bin/setup always run from the desired path #5853
  • fix: upgrade handlebars version #5810
reaction - v3.0.0-alpha.2

Published by kieckhafer almost 5 years ago

v3.0.0-alpha.2

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.

Notable changes

Integration tests

The primary focus for this release is the addition of integration tests for many mutations and queries

Features

  • feat: return fulfillment quotes without a shipping address #5934
  • feat: add updateProductVariantPrices mutation to API #5910
  • feat: add graphql equivalent of create group #5850

Refactor

  • refactor: eliminate factory mocks for catalogItemProduct #5892
  • refactor: consolidate translation plugins #5920
  • refactor: clean up ENV/envalid code #5922
  • refactor: mo more Packages collection, implement AddressValidationRules GQL, other 3.0 stuff #5888

Tests

  • tests: add integration test for setAccountProfileCurrency mutation #5958
  • tests: add integration test for setAccountProfileLanguage mutation #5960
  • tests: add integration test for updateAccountAddressBookEntry #5962
  • tests: add integration test for removeAccountEmailRecord mutation #5965
  • tests: add integration test for removeAccountAddressBookEntry #5961
  • tests: add integration test for create, update & delete FlatRateFulfillmentMethod #5964
  • tests: add integration test for publishNavigationChanges mutation #5969
  • tests: Add integration tests for surcharge #5938
  • tests: add integration test for echo #5942
  • tests: add integration test for enablePaymentMethodForShop #5944
  • tests: adds integration test for taxServices query #5912
  • tests: adds systemInformation query integration test #5907
  • tests: split query and mutation integration tests in CI config #5919
  • tests: fix out-of-memory issues in tests #5918
  • tests: adds addressValidation query integration test #5917
  • tests: delete unused documents in afterAll #5903
  • tests: add create/update/delete navigation item integration tests #5890
  • tests: adds integration test sitemap #5889
  • tests: adds integration test subrchargeById query #5896
  • tests: adds integration test surcharges #5902
  • tests: integration test for update navigation tree #5914
  • tests: add integration test for addressValidationServices query #5930
  • tests: add integration test for taxCodes query #5911
reaction - v3.0.0-alpha

Published by rosshadden almost 5 years ago

v3.0.0-alpha

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.

Notable changes

De-meteorized the API

Abstracted meteor-related sections into other projects.
This drastically improves build, startup, and restart times.

Completed GraphQL API coverage

All of the still-used old meteor methods have been ported to GraphQL queries and mutations.

Features

  • Authorization plugin & checkPermissions functionality #5724
  • Add checkPermissions function #5727
  • Add updateProduct and updateProductVariant mutations for 3.0 #5768
  • GQL tax rates #5774
  • Improved performance of tag queries #5783
  • De-meteorize tags/getBySlug #5786
  • De-meteorize templates/email/update #5792
  • Add retryFailed method for emails #5793
  • Add GQL queries and mutations for discount codes #5800
  • Update updateShop mutation to set all necessary settings #5804
  • Retry initial MongoDB connections #5807
  • Add email templates query #5811
  • Add addAccountEmailRecord mutation #5813
  • Add addCartItems mutation #5814
  • Add queries for product and products #5818
  • Add flat-rate fulfillment method query#5844
  • Update updateShop mutation to accept parcel size and brand assets #5846
  • Add Accounts GraphQL query to find non-admin accounts #5848
  • Stop using packages for tax settings #5852
  • Add integration test for accountCartByAccountId query #5857
  • Source Stripe API keys from ENV vars #5771

Fixes

  • Various 3.0.0 fixes #5722
  • Fix account invite flow and account email data #5799
  • Respect allowGuestCheckout setting #5815
  • Use api-utils for currency definitions #5823
  • Unified updateTag and createTag mutations #5824
  • Parse complicated MONGO_URL properly #5827

Refactor

  • Move xforms into plugins #5713
  • Use new URL instead of url.parse #5717
  • Remove previously deprecated code #5718
  • Clean up translations for products view #5746
  • Source SMTP email configuation from ENV vars instead of DB #5788
  • Make cart token param name consistent #5820

Tests

  • Add Babel config to make Jest tests work #5728
  • Fixed integration tests #5732
  • Add navigation query integration tests #5856
  • fix failing integration tests #5862

Chores

  • Check node version on run #5734
  • Lock api-utils version number #5851
  • Add integration test for anonymousCartByCartId query #5859
  • Add integration test for available payment methods #5864
  • Add integration test for getFlatRateFulfillmentRestrictions #5866
  • Add integration test for getFlatRateFulfillmentRestriction #5869

Contributors

Thanks to @trojanh for contributing to this release! 🎉

reaction - v2.9.0

Published by machikoyasuda almost 5 years ago

v2.9.0

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.

Notable changes

Add integration tests

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.

Fix a fulfillment bug

Refactors the updateOrderFulfillmentGroup GraphQL mutation to update only the specified group, not all fulfillment groups.

Update packages for security vulnerabilities

Bumps @reactioncommerce/data-factory to version 1.0.1 and @reactioncommerce/job-queue to version 1.0.5.

Tests

  • Add integration tests for shopBySlug GraphQL query #5701
  • Add integration tests for orderByReferenceId GraphQL query #5697
  • Add integration tests for ordersByAccountId GraphQL query #5696
  • Add integration tests for addTag GraphQL query #5683
  • Add integration tests for removeTag GraphQL query #5687

Security

  • Upgrade insecure package versions #5745

Refactors & Fixes

  • Only update fulfillment group for which id is provided #5723

Contributors

Thanks to @YuuwakU for contributing to this release! 🎉

reaction - v2.8.1

Published by kieckhafer almost 5 years ago

v2.8.1

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.

Notable changes

Fix password reset issue

Password reset has been fixed to correctly send a password reset email, and re-direct the user once their new password has been set.

Fixes

fix: password-reset route not working correctly (#5744)

reaction - v2.8.0

Published by kieckhafer almost 5 years ago

v2.8.0

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.

Notable changes

Fix memory issues in jest tests

Jest integration tests were failing due to a memory leak in async test code. We have closed that memory leak with this release.

Fixes

  • fix: fix memory issues with jest tests (#5733)
reaction - v2.7.0

Published by willopez about 5 years ago

v2.7.0

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.

Notable changes

More packages have continued to migrate from 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.

Potential Breaking Changes for Custom Plugins

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.

Fixes

  • fix: pass correct userId when creating a shop (#5694)
  • fix: filter products by file on Windows (#5700)

Refactors

  • refactor: Move accounts plugin to Node app and better split accounts from users/IDP (#5693)
  • refactor: clean-up tasks related to removing appEvents from all meteor code (#5692)
  • refactor: clean-up tasks related to moving files to the node-app (#5688)
  • refactor: simpleSchema updates for mockContext (#5685)
  • refactor: move getPaymentMethodConfigByName to context (#5684)
  • refactor: create archiveProducts GQL mutation to replace meteor methods (#5680)
  • refactor: move jobs-queue from server/no-meteor to node-app (#5678)
  • refactor: move cart from server/no-meteor to node-app (#5675)
  • refactor: move checkout from server/no-meteor to node-app (#5674)
  • refactor: move core plugin to Node app (#5673)
  • refactor: move discounts plugins to Node app (#5672)
  • refactor: move marketplace to Node app (#5671)
  • refactor: move orders from server/no-meteor to node-app (#5670)
  • refactor: move catalog from server/no-meteor to node-app (#5658)
  • refactor: move navigation from server/no-meteor to node-app (#5656)
  • refactor: move email from server/no-meteor to node-app (#5655)
  • refactor: move i18n from server/no-meteor to node-app (#5654)
  • refactor: move product and product-variant from server/no-meteor to node-app (#5669)
  • refactor: move sitemap-generator from server/no-meteor to node-app (#5667)
  • refactor: move Tags from server/no-meteor to node-app (#5665)
  • refactor: move dashboard from server/no-meteor to node-app (#5663)
  • refactor: move product-admin plugin to Node app (#5659)
  • refactor: move notifications plugin to Node app (#5661)
reaction - v2.6.0

Published by kieckhafer about 5 years ago

v2.6.0

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.

Notable changes

Packages have begun to migrate from 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.

Feature

  • feat: add product and productVariant related GraphQL mutations (#5562)

Fixes

  • fix: product medatafield UI issues (#5584)

Refactors

  • refactor: move email-smtp from server/no-meteor to node-app (#5641)
  • refactor: move ui from server/no-meteor to node-app (#5637)
  • refactor: move address-validation-test from server/no-meteor to node-app (#5638)
  • refactor: move shipping and surcharges from server/no-meteor to node-app (#5632)
  • refactor: move settings from server/no-meteor to node-app (#5634)
  • refactor: ackground jobs rewrite: no Meteor dependencies! (#5580)
  • refactor: move address from server/no-meteor to node-app (#5587)
  • refactor: move template from server/no-meteor to node-app (#5586)
  • refactor: use reaction-error external package instead of internal alias (#5631)
  • refactor: move system-information from server/no-meteor to node-app (#5585)
  • refactor: rewrite removeAccountEmail without meteor (#5577)
reaction - v2.5.0

Published by kieckhafer about 5 years ago

v2.5.0

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.

Notable changes

Filters have been added to Orders query

Adds API support to enable users to filter orders by: search keywords (fuzzy search), status, payment status, fulfillment status, date range.

Faster Jest integration tests

By switching to jest-mongodb, we've seen 8x speed improvement when running npm run test:integration

Feature

  • feat: add various filters to the main orders query (#5575)
  • feat: Translations without Meteor (#5514)

Fixes

  • fix: restore Add/Remove menu item in products page (#5564)
  • fix: use catalyst button for mediauploader (#5563)
  • fix: restore loadTranslations fn (#5546)
  • fix: Add missing GraphQL argument descriptions (#5547)

Refactors

  • refactor: create verifySMTPEmailSettings GraphQL mutation, replace meteor version (#5531)
  • refactor: various small fixes (#5561)
  • refactor: Add extra field to the error message (#5574)
  • refactor: use CardHeader for Filter by File card (#5569)
  • refactor: add indices on updatedAt for CDC (Products & SimpleInventory) (#5571)
  • refactor: rewrite accounts/sendResetPasswordEmail into a GraphQL mutation (#5558)
  • refactor: remove Reaction.Email (#5559)
  • refactor: remove all code releated to inviting a shop owner (#5553)
  • refactor: Fix proptype warning with ReactSortableTree (#5552)
  • refactor: remove catalog/publish/products meteor method, use publishProductsToCatalog GQL Mutation instead (#5541

Tests

  • tests: faster Jest integration tests (#5549)

Docs

  • docs: Fix test command in README.md (#5565)

Chores

  • chore: fix various prop type validation errors (#5550)
reaction - v2.4.0

Published by kieckhafer about 5 years ago

v2.4.0

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.

Notable changes

Translations have been moved out of Meteor

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.

Meteor app-tests have

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.

Feature

  • feat: Translations without Meteor (#5514)

Fixes

  • fix: restore Add/Remove menu item in products page (#5564)
  • fix: use catalyst button for mediauploader (#5563)
  • fix: restore loadTranslations fn (#5546)

Refactors

  • refactor: remove Reaction.Email (#5559)
  • refactor: remove all code releated to inviting a shop owner (#5553)
  • refactor: Fix proptype warning with ReactSortableTree (#5552)
  • refactor: remove catalog/publish/products meteor method, use publi#5541hProductsToCatalog GQL Mutation instead (#)

Tests

  • tests: Faster Jest integration tests (#5549)

Docs

  • docs: Fix test command in README.md (#5565)
  • docs: Add missing GraphQL argument descriptions (#5547)

Chores

  • chore: remove meteor app-tests (#5560)
  • chore: fix various prop type validation errors (#5550)
reaction - v2.3.0

Published by kieckhafer about 5 years ago

v2.3.0

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.

Notable changes

Bulk add and remove Tags from Products

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.

Image uploading without Meteor

file-collections has been updated to its latest version, which supports uploading without Meteor. All related code has been updated to remove Meteor.

Remove 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.

Feature

  • feat: manage product tags in bulk (#5485)
  • feat: Add Orders GraphQL query (#5483)
  • feat: Image uploading without Meteor (#5515)

Fixes

  • fix: info inline alert should autoclose (#5502)
  • fix: Perform old password validation (#5527)

Refactors

  • refactor: use moments calendar format to display time alongside date (#5523)
  • refactor: remove context.callMeteorMethod (#5524)
  • refactor: remove inviteShopMember meteor method and rewrite with GraphQL (#5520)
  • refactor: remove addressBookRemove meteor method and rewrite with GraphQL (#5492)
  • refactor: remove removeAccountFromGroup meteor method and rewrite with GraphQL (#5493)
  • refactor: add setAccountProfileCurrency GraphQL mutation (#5488)
  • refactor: rewrite updateAccountAddressBookEntry to not call through to Meteor method (#5484)

Tests

  • tests: Add Integration Test for orderById GraphQL query (#5511)

Contributors

Thanks to @trojanh for contributing to this release! 🎉

reaction - v2.2.1

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.

Fixes

  • fix: Checkout hangs on shipping methods step (#5516) and adds a migration to avoid breaking previous installations. The issue was caused by attempting to add a fulfillment method to a cart that included the prop 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.
reaction - v2.2.0

Published by willopez about 5 years ago

v2.2.0

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.

Notable changes

Elimination of all eslint warnings

The 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.

Product filtering by CSV

Admins can filter products by uploading a CSV in the product admin.

Introduce Apollo hooks

Apollo has been updated to v3.0.0, which introduces GraphQL hooks into Reaction.

Updated Orders Admin UI

The new Orders UI allows is completely GraphQL based and allows for updates to multiple fulfillment groups on each order.

image

Remove Snyk as a CI step

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.

Feature

  • feat: add offset for pagination with tests (#5228)
  • feat: bulk actions UI updates (#5461)
  • feat: add refunds GraphQL query (#5352)
  • feat: #5366 show filter count (#5395)
  • feat: #5379 integrate catalyst button (#5406)
  • feat: add bulk mutations to manage products and tags (#5404)
  • feat: remove startup template import (#5430)
  • feat: add new setting to allow / disallow custom user locale lookup (#5444)
  • feat: add isvisible/hidden icons (#5407)
  • feat: Part I: An admin user can filter products by uploaded CSV (#5451)

Fixes

  • fix: style the product table as close as possible (#5468)
  • fix: console warnings (#5463)
  • fix: update comp-lib to fix broken components (#5475)
  • fix: add check against missing riskLevel field, and missing string in capitalization function (#5452)
  • fix: partial product publish error (#5433)
  • fix: popover z-index (#5437)
  • fix: issues with refund queries (#5422)
  • fix: load account into context during surcharges (#5466)
  • fix: Correct index migration (#5408)

Chores

  • chore: add redirect for blank route (#5439)
  • chore: update vulnerable packages (#5470)
  • chore: update reaction to use reaction-eslint-rules v2.1.0 (#5445)
  • chore: remove unused shop.appVersion (#5429)
  • chore: update bodyParser to use individual method (#5435)
  • chore: use file extensions for node 12 compatibility (#5415)
  • chore: remove snyk as a CI task (#5403)
  • chore: Update Apollo packages to support hooks (#5427)
  • chore: update catalyst sidebar font and color styles (#5494)

Refactors

  • refactor: use SplitButton from Catalyst instead of ConrifmButton (#5469)
  • refactor: Rewrite addAccountToGroup to not call through to Meteor method (#5431)
  • refactor: after-publish cart updates for speed (#5477)
  • refactor: order invoice print layout (#5476)
  • refactor: update Reaction Admin Orders panel (#5158)
  • refactor: payments-stripe to only use getStripeInstanceForShop (#4951)
  • refactor: add tag permissions to allow non-owner to edit (#5436)
  • refactor: refunds section of Orders 2.0 (#5405)
  • refactor: move filter outside of admin check (#5434)
  • refactor: use Accounts collection instead of Meteor.users to get admin accounts (#5432)
  • refactor: Remove legacy social plugin, PDP, product grid and WYSIWYG code (#5394)
  • refactor: expanded product admin permissions (#5428)

Style

  • style: update jsdoc to always use returns instead of return (#5447)
  • style: ESLint errors and warnings === 0 (#5450)

Tests

  • test: add integration test for primaryShop query (#5459)

Breaking Changes

None

Contributors

Thanks to @cmbirk, @loan-laux and @rattrayalex-stripe for contributing to this release! 🎉

reaction - v2.1.0

Published by kieckhafer about 5 years ago

v2.1.0

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.

Notable changes

Introduction of Catalyst

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.

Tag slugs are now editable independently of tag name

Allows operators to change aa tag slug independently of a tag name.

Order related GraphQL mutations

A createRefund GraphQL mutation has been added to allow refunds to be processed via GraphQL in addition to the existing meteor methods.

Dataloaders introduced into the codebase

"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.

Bulk simple inventory mutation

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.

Overhaul of eslint rules, and bulk fix of over 500 eslint warnings

We'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.

Feature

  • feat: catalog partial publish / rerun transformations (#5355)
  • feat(product table): show Action dropdown, even if no products are selected (#5391)
  • feat: filter products by id in products table (#5387)
  • feat: editable tag slug (#5382)
  • feat: add createRefund GraphQL mutation (#5354)
  • feat: add handle to tag autosuggest results (#5262)
  • feat: Add DataLoaders for Shops and SimpleInventory (#5294)
  • feat: Introduce DataLoaders infrastructure (#5280)
  • feat: new button component to wrap MUI button with isWaiting loading state (#5266)
  • feat: bulk simple inventory mutation (#5229)
  • feat: integrate catalyst ConfirmDialog component from new Catalyst package (#5372)

Fixes

  • fix: set slugified title as permalink (#5264)
  • fix: Add migration for index (#5358)
  • fix: red textfields (#5371)
  • fix: Make catalog indexes unique for product (#5350)
  • fix: fix consistent-return eslint warnings (#5334)
  • fix: replace simpl-schema.validate() … (#5306)
  • fix: use SimpleInventory collection to fe… (#5314)
  • fix: #5300 Wrong template reference (#5301)
  • fix: typo breaking docs build (5286) (#5287)

Performance Improvements

  • perf: wrap tests in check to make sure app is ready when they run (#5317)
  • perf: up data transfer limit to allow bigger sizes (#5396)

Docs

  • docs(admin): Introducing Reaction Admin (#5400)
  • docs(readme): introducing the Storefront Component Library to develop (#5398)
  • docs: Update README.md (#5319)

Chores

  • chore: updated Dockerfile to change .meteor/ permissions to the node … (#5353)
  • chore(ci): add eslint check to only check changed files and fail when warnings are thrown (#5357)
  • chore(ci): Work more robustly on forks (#5386)
  • chore: fix no-undef lint issues (#5360)
  • chore: update Material-UI 4.x (#5278)
  • chore: Update README DCO - sign-off not sign (#5318)
  • chore: update snyk ignore (#5331)
  • chore: update CHANGELOG, update version (#5260)
  • chore: use npm command rather than meteor npm (#5328)
  • chore: update js-doc throughout the app, batch 1 (#5309)
  • chore: fix all react/no-deprecated and react/prop-type eslint warnings (#5307)
  • chore: update reaction-eslint-config version in package.json (#5320)
  • chore: organize integration tests (#5316)
  • chore: add overrides for eslint rules that stlll need fixing (#5308)
  • chore: fix all id-length eslint warnings (#5298)
  • chore: update lodash to fix snyk critical error (#5299)
  • chore: fix all max-len eslint warnings (#5296)
  • chore: fix prefer-const eslint error (#5290)

Refactors

  • refactor: add title as backup in product admin breadcrumb (#5342)
  • refactor: add isSoldOut prop to variants and options in Catalog (#5289)
  • refactor: how to get reaction version (#5324)
  • refactor: fulfillment section of Orders 2.0 (#5302)
  • refactor: payments section of Orders 2.0 (#5279)

Tests

  • test: add integration test for ping query (#5326)

Breaking Changes

None

Contributors

Thanks to @janus-reith for contributing to this release! 🎉

reaction - v2.0.0

Published by spencern over 5 years ago

v2.0.0

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.

Notable changes

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.

Reaction-product

Reaction-product-variant

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.

  • Examples for how to debug Node.js in Docker
  • Better logging of packages and plugins loading
  • bin/setup improvements
  • Updated main Reaction app to use .env file (#4826)
  • Added envalid for validation of environment variables

We’ve made some tweaks to increase performance and improve initial boot time:

We’ve also improved Reaction’s extensibility in a number of ways, such as:

  • Reaction now supports remote graphql schemas in plugins (#4870)
  • Plugins can now directly register React components (#4875)
  • Plugins can register functions to handle GraphQL transformation of catalog product media items (#4988)
  • There is now a 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

  • Authentication is now handled via Hydra
  • Taxes have been completely re-worked in a new plugin (v2.0.0-rc.10)
  • Inventory has been moved into its own simple-inventory plugin, and is no longer directly tied to the Products collection
  • Pricing has been moved into its own simple-pricing plugin, and allows for a 3rd party pricing service integration. (#5014 & #5143)
  • Search plugins have been removed (#5053)
  • A plugin can now be used to override the default orderId and cartId and create IDs of a different type or in a specific order (#5054)

New documentation

See this page for a non-comprehensive list of new and updated docs.

Some highlights:

OS notes

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 DCO

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

Contributors

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.

Share your feedback

We want to hear from you! Here are some good ways to get in touch.

  • Want to request a new feature for Reaction? There’s now a Reaction repo just for new feature requests.
  • Reaction engineers and community engineers and developers are always collaborating in our Gitter chat channel
  • Ask Us Anything! Join the Reaction Team on a Community Call on Wed, July 24 at 9:00am PT (4:00pm UTC) to get answers to your questions about Reaction v2.0.0. No registration required. Just use this link to attend, and feel free to send us your questions ahead of time.
reaction - v2.0.0-rc.12

Published by jeffcorpuz over 5 years ago

v2.0.0-rc.12

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.

Improvements

Feature

  • feat: better cart and order item attributes, with labels (#5253)
  • feat: add shopLogoUrls to shop settings to allow logo to be rendered from url (#5227)
  • feat: add resolver to get displayStatus from database (#5236)
  • feat: Add DetailDrawer component for supplementary views (#5239)
  • feat: add regex filter to tags GQL query (#5232)
  • feat: add landing page for catalyst (#5226)
  • feat: update sidebar, fix mobile responsiveness (#5209)
  • feat: hard code cache keys prefix (#5222)
  • feat: add read-only version of orders 2.0 to break up PR’s (#5202)
  • feat: add approveOrderPayments graphql mutation (#5201)
  • feat: dangerButton and ConfirmButton components (#5200)
  • feat: define collections using registerPlugin (#5196)
  • feat: update default navigation item visibility options when added to the navigation tree (#5190)
  • feat: storefront login url (#5187)
  • feat: add a setting for whether options without inventory enabled are sellable (#5186)
  • feat: UI for adding Storefront Urls inside Catalyst (#5174)
  • feat: additional navigation visibility options (#5153)
  • feat: add ENV to disable inventory auto-publish (#5149)
  • feat: migrations & related checks can be disabled (#5140)
  • feat: allow 10 levels of navigation tree (#5129)
  • feat: add Catalog query filters (#5126)
  • feat: ShopId can be any string (#5119)
  • feat: use shop logo for login pages (#5109)
  • feat: drop unnecessary MongoDB indexes (#5106)
  • feat: adds optional flag to filter out sold-out products (#5105)
  • feat: allow viewing of orders by reference id (#5092)
  • feat: plugin: Prometheus Metrics (#5088)
  • feat: feature/system info (#5087)
  • feat: add name related data to viewer Account query (#5079)
  • feat: replace reaction plugins usage (#5070)
  • feat: Add cart referenceId in graphql schema (#5065)
  • feat: registerBlock API for registering blocks and rendering components for regions (#5064)
  • feat: allow extend generate orderId and cartId (#5054)
  • feat: de-Meteorize emailing code in the API (#4998)

Fix

  • fix: socket issues (#5255)
  • fix: Make new order email links correct for storefront (#5251)
  • fix: ensure translations from all packages load (#5252)
  • fix: Fix page title from not found (#5245)
  • fix: alphabetical currencies (#5230)
  • fix: app will not start (#5216)
  • fix: shop with data error (#5207)
  • fix: change calibre ci step to use npx (#5197)
  • fix: NaN for prices with commas (#5193)
  • fix: add subtotal display amount to dataForOrderEmail (#5183)
  • fix: remove product-admin dead import (#5180)
  • fix: Can't re-send shop manager invite to existing non-activated user (#5178)
  • fix: set shop manager password on invitation (#5173)
  • fix: replaceBlock function (#5161)
  • fix: detect and add a newline in .env file if its missing (#5156)
  • fix: race condition by awaiting each publish catalog function by type… (#5151)
  • fix: inventory quantity resets to 0 when any variant or option quantity is undefined (#5134)
  • fix: remove transform for billingAddress in gql resolver for Payment (#5125)
  • fix: add correct item images to order email data (#5121)
  • fix: password reset form (#5120)
  • fix: include submodule bare repos in docker build context (#5118)
  • fix: extendCommonOrder items data was over-written by itself (#5104)
  • fix: orders performance (#5096)
  • fix: revert metrics prometheus (#5099)
  • fix: catalog items performance (#5095)
  • fix: rounding Issue in Cart/Orders (#5091)
  • fix: remove aldeed:schema-index Meteor package, use collectionIndex (#5090)
  • fix: make tax code field available for new rate (#5076)
  • fix: duped cart referenceId (#5074)
  • fix: shipping restrictions not correctly denying methods (#5071)
  • fix: navigation editor WSOD when navigation tree is empty (#5067)
  • fix: set variant media correctly when added to cart (#5063)
  • fix: marketplace invitation validation (#5057)

Chore

  • chore: Remove unused npm deps and update to latest Babel (#5250)
  • chore: update @reactioncommerce/file-collections version (#5244)
  • chore: Omit email credentials from log data (#5241)
  • chore: update styles for MUI Typography to match designs (#5235)
  • chore: Move some core files to new shop plugin (#5233)
  • chore: Update NPM packages (#5231)
  • chore: Update React 16.8.6 (#5204)
  • chore: add language to shop query (#5203)
  • chore: remove Profile (#5198)
  • chore: finish simple-pricing plugin (#5143)
  • chore: add a GraphQL schema linter, fix found issues (#5112)
  • chore: ignore js-yaml vuln for 30 days (#5108)
  • chore: security update for js-yaml (#5093)
  • chore: ensure an error message is logged for apollo errors (#5061)
  • chore: more consistent Usage of ES6+ Code (#5056)

Refactor

  • refactor: Demeteorize registration for remaining API server plugins (#5234)
  • refactor: Rename graphql endpoint (#5249)
  • refactor: update styling of orderCard header section, move details to sidebar (#5240)
  • refactor: enhancements to tag ui in Catalyst (#5223)
  • refactor: inventory Rewrite - new simple-inventory plugin (#5164)
  • refactor: add home, order, orders, and account profile urls to shop object (#5145)
  • refactor: use getVariantPrice to determine price in xformCartGroupToCommonOrder (#5142)
  • refactor: add env. vars. for graphql playground and introspection (#5055)

Performance

  • perf: minor inventory performance improvments (#5220)
  • perf: demeteorize and reorg some core startup code (#5212)
  • perf: avoid unnecessary database queries for common GraphQL requests (#5154)
  • perf: faster inventory updates (#5138)
  • perf: create index for Jobs queries (#5137)
  • perf: improved performance for products and catalog items queries with featured sort (#5136)
  • perf: tag subscription (#5130)
  • perf: speed up the products table publication (#5128)
  • perf: remove unused Meteor methods and client cart code (#5059)

Breaking Changes

  • uiState.isLeftSidebarOpen renamed to uiState.isPrimarySidebarOpen (#5209)
  • Breaking workflow, every item added to the nav tree will need to be explicitly made visible on the storefront (#5190)
  • There is a new shop-specific app setting, canSellVariantWithoutInventory, which is true by default. If this is changed to false, then variants/options without inventory tracking enabled will appear sold out and with back-ordering disabled. (#5186)
  • 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 public
  • Potential for http routing conflicts on /metrics. (#5088)
  • Product components have been broken into smaller peices and the old files removed. This should be an internal breaking change as prior to this PR, those components couldn't be modified without touching core. (#5064)
  • The new order confirmation email template has been updated (#5251)
  • Multi-shop orders will no longer work (#5096)
  • If you have custom plugins that use index or unique options in their schemas, add back the aldeed:schema-index dependency or update the plugins to use collectionIndex function. (#5090)
  • Custom plugins importing any of the removed packages or using the removed component will need to be updated. (#5250)
  • The deprecated price field has been removed from CatalogProduct and CatalogProductVariant. (#5143)
  • Custom plugins that manage or use inventory are likely to need a rewrite. (#5164)
  • Older shops must confirm they are using our simple-pricing plugin, and that pricing is available on Catalog items. (#5142)
  • Removed support for undocumented feature Meteor.settings.cdnPrefix
  • Removed support for undocumented feature Reaction.Endpoints
  • Removed support for prerender by prerender-node NPM package (#5212)
  • Tags are no longer subscribed to at a global level. Subscribe to tags when you need them using Meteor.subscribe("Tags", [tagIds]); (#5130)
  • Any custom plugins relying on the removed Meteor methods will need to be updated. (#5059)
reaction - v2.0.0-rc.11

Published by jeffcorpuz over 5 years ago

v2.0.0-rc.11

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.

Improvements

App

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.

  • All routes require admin authentication
  • All non-admin authentication requests will be met with a logout screen if attempting to sign into the operator experience.
  • All customer related authentication requests should be done with the IDP workflow. 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

Product grid is now represented as a table in the new experience with the same bulk actions it had previously

  • Product grid is now a table
  • Product table supports multi-selection
  • Product table supported bulk actions are "Make Hidden", "Make Visible", Archive, Duplicate and Publish
  • Product table adds simple pagination controls with and items per page selector

Product Detail Page

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.

  • Product WYSIWYG editor has been replaced with standard forms
    • Product detail, Variant and Option forms have been moved out of the sidebar and into the primary view
  • Template field has been converted to text field from a dropdown. Templates no longer apply to the PDP page in Reaction
  • Tags can no longer be drag n' dropped to reorder. Drag handle has been removed to represent this.
  • Media can be added to the Product, Variants, and Options
  • Drag n' Drop of media and variants has been removed
    • Variants and Options can now be manually sorted by priority
    • Media can be sorted by priority manually
  • Variant and Options forms now share the same fields

User Profile

  • The profile page has been moved to the new operator experience for admins
  • Address form has been removed
  • Order history has been removed
  • Admins will be able to change their email and password

Breaking Changes

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)

Feature

  • feat: remove search plugins (#5053)
  • feat: allow users to disable plugins via config (#5031)
  • feat: add addOrderFulfillmentGroup mutation (#5027)
  • feat: add splitOrderItem mutation (#5024)
  • feat: add updateOrderFulfillmentGroup mutation (#5020)
  • feat: add updateOrder mutation (#5019)
  • feat: add moveOrderItems mutation (#5018)
  • feat: add cancelOrderItem mutation (#5010)
  • feat: Operator 2.0 products admin (#5005)
  • feat: performance metrics integration with calibre (#5012)
  • feat: simple-pricing plugin (#5014)
  • feat: use .env.example files from custom plugins (#5003)

Fix

  • fix: bin/setup handling bad env.example (#5048)
  • fix: naming issue caused taxes to not be calculated (#5043)
  • fix: startup asset provisioning (#5033)
  • fix: make bin/setup more robust to missing directories (#5026)
  • fix: item subtotal is incorrect when additional quantities of the same item are added to cart (#5021)

Chore

  • chore: add better logging of package loading (#5051)
  • chore: add optional first and last name fields to schemas (#5050)