Reaction Commerce v2.0.0-rc.10 Release Notes

Release Date: 2019-03-08 // about 5 years ago
  • v2.0.0-rc.10

    ๐Ÿš€ This is our tenth 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

    ๐Ÿ’ป UI Removal

    ๐Ÿšš We have removed several UI components to transition and solidify that in 2.0 the application will only be used as an API and a UI for shop operators.

    โž• Additional PRs will be coming to remove other pieces of the storefront UI bit by bit until only an operator UI is left. (#4947 , #4948)

    ๐ŸŽ Performance Tweaks

    • ๐ŸŽ We have done a bunch of performance tweaks to increase performance and initial boot time! We removed the reaction-cli with this update. (#4992)

    General

    • We have added the ability for shops to apply surcharges depending on criteria for an order. (#4829)
    • ๐Ÿ’ป We have added a new Navigation Manager UI for Operator 2.0. (#4936)
    • ๐Ÿ“ฆ We have added envalid as a dependency for validating environment variables. (#4983)
    • We changed the GraphIQL url from localhost:3000/graphiql to localhost:3000/graphql-alpha

    GraphQL

    • ๐Ÿ”Œ We have streamlined the way plugins register functions that can transform media objects for a product. (#4987)
    • ๐Ÿ‘ We have implemented GraphQL subscriptions support. (#4938)

    Custom Data

    • We have added the capability to add a custom data object when placing an order. (#4962)
    • We have added the capability for calculateOrderTaxes to return a custom data object. (#4955)

    ๐Ÿ”Œ Custom Plugins

    • ๐Ÿ”Œ We have coalesced the separate env.example files from custom Reaction plugins into one file to reduce tedious integration steps. (#5003)

    ๐Ÿ’ฅ Breaking Changes

    AppEvents

    • ๐Ÿ”Œ We have replaced all Hooks usage with the newer appEvents. This does not break anything within the core and included plugins, however:
      โšก๏ธ If you use community or custom plugins that depend on the @reactioncommerce/hooks package, you will need to update or obtain updated versions that use context.appEvents instead.
      โšก๏ธ If you have a plugin that uses MethodHooks, update it to implement those hooks a different way.
      โšก๏ธ review all appEvents consumed and emitted by custom plugins. Update expected and emitted arguments. See the table. (#4915)

    ๐Ÿ‘ Multiple Payment Support

    • ๐Ÿšš All of the individual placeOrder* GraphQL mutations provided by the built-in payment plugins are removed and replaced with a single placeOrder mutation which supports multiple payments. Any custom payment method plugins will break due to the removal of createOrder internal mutation. Look at all changes. (#4908)

    Surcharges

    • โšก๏ธ When applying surcharges to certain methods, there is a delay in the update. (#4984)

    โšก๏ธ Updates

    • ๐Ÿ”จ RefactorinventoryQuantity to inventoryInStock in Products collection, update if used in your codebase. (#4930)

    Removals

    • There is no longer a storefront catalog grid (#4973)
    • ๐Ÿ’ป There is no longer a Checkout UI (#4948)
    • ๐Ÿ’ป There is no longer a Cart UI (#4948)

    ๐Ÿ†• New Commands

    ๐ŸŽ In relation to improving performance, we have added new debugging statements (#4992) so you can use the Node debugger while developing Reaction!:

    "inspect": "node --experimental-modules --inspect ./.reaction/run/index.mjs",
    "inspect-brk": "node --experimental-modules --inspect-brk ./.reaction/run/index.mjs",
    "inspect-docker": "node --experimental-modules --inspect=0.0.0.0:9229 ./.reaction/run/index.mjs",
    "inspect-brk-docker": "node --experimental-modules --inspect-brk=0.0.0.0:9229 ./.reaction/run/index.mjs",
    

    Example Usage :

    docker-compose run --rm --service-ports reaction yarn run inspect-brk --service-ports
    docker-compose run --rm --service-ports reaction yarn run inspect --service-ports
    

    ๐Ÿ†• New Documents

    ๐Ÿ“š We have added new documentation! :

    ๐Ÿ”‹ Feature

    • ๐Ÿ”Œ feat: use .env.example files from custom plugins (#5003)
    • feat: add ordersByAccountId query (#4981)
    • ๐Ÿ”Œ feat: allow plugins to register functions to handle GraphQL transformation of catalog product media items (#4988)
    • ๐Ÿ‘ feat: support storing custom fields on orders when placing (#4962)
    • feat: shipping Operator into 2.0 (#4967)
    • feat: custom tax data part 2 (#4965)
    • feat: allow tax services to add custom data to taxes (#4955)
    • feat: shipping surcharges (#4829)
    • ๐Ÿ’ป feat: navigation manager UI (#4936)
    • feat: make Sitemap data available via GraphQL query (#4927)
    • ๐Ÿ’ป feat: tag management operator UI (#4914)
    • feat: add custom fields to order schema (#4979)
    • โšก๏ธ feat: update collectionIndex util function to take options (#4950)
    • ๐Ÿ“ฆ feat: add envalid package (#4943)
    • feat: GraphQL subscriptions (#4938)
    • feat: create fulfillment surcharges (#4801)

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix: add tagId check to guard against undefined (#5015)
    • ๐Ÿ›  fix: do not emit afterCartUpdate unless surcharges are updated (#5001)
    • ๐Ÿ›  fix: properly save all customFields from tax service result (#4986)
    • ๐Ÿ›  fix: don't crash when mediaItem.URLs is null (#4982)
    • ๐Ÿ›  fix: addAccountAddressBookEntry mutation - set account updatedAt (#4971)
    • ๐Ÿ›  fix: taxes not updating reactively in starterkit (#4949)
    • ๐Ÿ›  fix: inventory is set to NaN in rare circumstances based on Migrations (#4946)
    • ๐Ÿ›  fix: use stripe.setAppInfo to identify ReactionCommerce to Stripe (#4942)
    • ๐Ÿ›  fix: tag bulk actions copy (#4941)
    • ๐Ÿ›  fix: ENOSPC error with jest --watch (#4939)
    • ๐Ÿ›  fix: tag ui bugs (#4933)
    • ๐Ÿ›  fix: migration 56 throwing an error (#4934)
    • ๐Ÿ›  fix: 404 from invite email link (#4919)

    ๐Ÿ”จ Refactor

    • ๐Ÿ”จ refactor: update inventoryQuantity field to be inventoryInStock (#4930)
    • ๐Ÿ”จ refactor: replace all Hooks with appEvents (#4915)
    • ๐Ÿ”จ refactor: rewrite placeOrder and support multiple payments for an order (#4908)

    Chores

    • chore: delete unused files (#4990)
    • chore: wrong version in migration 54 & 55 file (#4940)
    • โšก๏ธ chore: updated dependencies and snyk policies (#4974)
    • ๐ŸŽ chore: meteor and docker performance tweaks (#4992)
    • chore: storefront catalog grid (#4973)
    • ๐Ÿšš chore: remove the cart UI (#4948)
    • ๐Ÿšš chore: remove the checkout UI (#4947)
    • โšก๏ธ chore: update to base image 1.8.0.2 to include Kafka binary libs (#4937)

    Contributors

    ๐Ÿš€ Thanks, @rattrayalex-stripe for contributing to this release!