New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.15.0 #4549

Merged
merged 276 commits into from Aug 24, 2018

Conversation

10 participants
@spencern
Member

spencern commented Aug 14, 2018

v1.15.0

Sitemap Generator

A sitemap generator plugin that creates and stores XML for a sitemap index, as well as sitemaps for tag pages, PDPs, and arbitrary URLs that can be added via an event hook.

There is a recurring job that runs every 24 hours (the specific interval can be changed) that generates the sitemaps. There is also a button to manually trigger a refresh, at Dashboard -> Shop -> Options - along with a notification that appears when it's completed.

Use our GraphQL API for the Product Grid within the Meteor App

As part of our push towards our GraphQL API, we've started to leverage the API inside of our existing Meteor app. This release converts our customer facing product grid from using Meteor Pub/Sub to consuming data from our GraphQL API instead. This is the first step in an ongoing initiative to start using the GraphQL API inside of our existing monolithic commerce application. See #4481 for a list of files changed.

GraphQL Checkout

This release includes the first set of GraphQL APIs designed for stepping through a checkout. While we've started to consume this API within our Storefront Starter Kit, these APIs should be treated as unstable and subject to change. We've added mutations for setting an anonymous email - setEmailOnAnonymousCart and selecting fulfillment options - selectFulfillmentOptionForGroup.

A note on fulfillment options
Fulfillment options are what we're calling what used to be shipment options. In order to prepare ourselves for several types of fulfillment that do not necessarily include shipping, we're updating the checkout through order models, methods, and now our GraphQL API to be capable of grouping items into "Fulfillment Groups". This opens the door for several new types of fulfillments down the line such as In Store Pickup, Digital Downloads, Digital Key Generation, and anything else you can think up. We're not actively building any of these different fulfillment types into core, but want to ensure that it's possible and there's a clear direction to do so.

Breaking Changes

  • If a plugin adds an "afterCartUpdate" hook, it will no longer be called. Change the plugin code to use appEvents.on("afterCartUpdate" instead. (#4535)
  • If a plugin creates or updates a cart, be sure it calls appEvents.emit("afterCartCreate") or appEvents.emit("afterCartUpdate"), respectively, passing the proper arguments. If you do this within an appEvents.on hook for the same event, be sure to wrap the call in conditional logic to avoid an infinite loop. (#4535)
  • We've refactored the Shipment schema to remove the items property. This will cause a breaking change for plugins expecting the items property to be there. Such plugins should be updated to use a combination of itemIds and the main items list. (#4531)
  • Removed requiresShipping prop from products and catalog products. This has been replaced by an array supportedFulfillmentTypes. Reaction's core admin interface did not provide a method for setting this prop, and we've left the supportedFulfillmentTypes out of the exiting operator interface. This change will emable us to show a "Shipping"/"Pick Up" selector for other items down the road. Will also permit creation of digital fulfillment types, etc. (#4554)
  • The last argument of the setShipmentMethod Meteor method now expects just the method ID rather than the whole method object. Core client code has been updated, but you should update any custom code that calls this method.
  • Removed the resetShipmentMethod Meteor method
  • The cart/setAnonymousUserEmail Meteor method is removed. This does not break any core behavior, but it might require updates to any custom plugins.

GraphQL DevServer

Features

  • feat(GraphQL): update fulfillment options for group (#4538)
  • feat(GraphQL): Add resolver for Cart.totalItemQuantity (#4533)
  • feat(GraphQL): add resolver for Cart.checkout (#4507)
  • feat(GraphQL): Replace "cart/setAnonymousUserEmail" Meteor method with setEmailOnAnonymousCart mutation (#4564)
  • feat(GraphQL): Implement selectFulfillmentOptionForGroup mutation (#4548)

Fixes

  • fix(GraphQL): Fix CartItem.currentQuantity (#4508)

Meteor App

Features

  • feat: Convert product grid to consume GraphQL data (#4481) .. Resolves #4480
  • feat: Fulfillment improvements (#4554)
  • feat: Plugin for auto-generated sitemaps (#4413) .. Resolves #4353

Performance

  • perf: improve orders sub speed by rearranging pipeline (#4555)
  • perf: Move formatPhoneNumber (and libphonenumber-js) server-side to reduce client bundle (#4517) .. Resolves #4516

Fixes

  • fix: for sidebar unable to be opened (edge condition) (#4546) .. Resolves #4545
  • fix(marketplace): Default to Primary Shop when no domains match (#4544)
  • fix: sync lowInventoryThreshold number between variants and child options (#4519)
  • fix: Product prices showing as $NaN.undefined on the customer product grid (#4518)

Refactor

  • refactor: Refactor cart / fulfillment hooks (#4535)
  • refactor fulfillment items (#4531)
  • refactor: resolve reaction error (#4494) .. Resolves #4477
  • refactor: Dynamically import Swiper to reduce client bundle size (#4515) .. Resolves #4514

Chores

  • chore: Added production bundle size check to CircleCI (#4521)

Contributors

  • Thanks to @pmn4 for contributing to this release 馃帀

dancastellon and others added some commits Jul 20, 2018

aldeed and others added some commits Aug 16, 2018

Merge pull request #4517 from reactioncommerce/perf-4516-remove-libph鈥
鈥nenumber-js

#4516: Move formatPhoneNumber (and libphonenumber-js) server-side to reduce client bundle
Merge pull request #4413 from reactioncommerce/feat-4353-dancastellon鈥
鈥-sitemap-generator

#4353 Plugin for auto-generated sitemaps
Merge pull request #4554 from reactioncommerce/feat-aldeed-fulfillmen鈥
鈥-improvements

Fulfillment improvements
Merge pull request #4564 from reactioncommerce/feat-aldeed-graphql-se鈥
鈥EmailOnAnonymousCart

GraphQL: Replace "cart/setAnonymousUserEmail" Meteor method with setEmailOnAnonymousCart mutation
Merge pull request #4555 from reactioncommerce/feat-aldeed-orders-agg鈥
鈥egate-order

feat: improve orders sub speed by rearranging pipeline

@spencern spencern changed the title from [WIP] Release 1.15.0 to Release 1.15.0 Aug 22, 2018

@spencern spencern requested a review from jeffcorpuz Aug 22, 2018

spencern and others added some commits Aug 22, 2018

fix: added cartToken to updateCartItemQuantity method, updated how we鈥
鈥 get the context in removeFromCart method
Merge pull request #4572 from reactioncommerce/fix-4567-nnnnat-anon-c鈥
鈥rt-remove-item

(fix): remove last item from anon cart

@spencern spencern added this to the Little Bear milestone Aug 24, 2018

@jeffcorpuz

This comment has been minimized.

jeffcorpuz commented Aug 24, 2018

Google Chrome Mozilla Firefox Microsoft Edge
PASS PASS PASS
68.0.3440.106 (64-bit) 61.0.2 (64-bit) 42.17134.1.0

Detailed Sheet:

https://docs.google.com/spreadsheets/d/e/2PACX-1vRRr-Zb5EDk7rQFoyOMAnZmMt3wEMIuCsFKpgap5XUn1GZbjZTvgPNUHFJx7iZJMmBDpv9pTBtdB6w3/pubhtml

@spencern spencern merged commit 5c58334 into master Aug 24, 2018

11 of 12 checks passed

License Compliance 2 issues found
Details
WIP ready for review
Details
ci/circleci: build Your tests passed on CircleCI!
Details
ci/circleci: deploy-to-ecs Your tests passed on CircleCI!
Details
ci/circleci: docker-build Your tests passed on CircleCI!
Details
ci/circleci: docker-push Your tests passed on CircleCI!
Details
ci/circleci: dockerfile-lint Your tests passed on CircleCI!
Details
ci/circleci: eslint Your tests passed on CircleCI!
Details
ci/circleci: snyk-security Your tests passed on CircleCI!
Details
ci/circleci: test-app Your tests passed on CircleCI!
Details
ci/circleci: test-unit Your tests passed on CircleCI!
Details
security/snyk - package.json (Reaction Commerce) No new issues
Details

@spencern spencern deleted the release-1.15.0 branch Nov 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment