Chord OMS
...
Developer Tools
Gatsby
Release Notes
26min
v6 0 3 this release adds two properties to the "order completed" segment event has subscription and is recurring these properties already exist on the "order completed" event segment event sent by the chord oms has subscription is a boolean that indicates whether the order contains a subscription is recurring is a boolean that indicates whether the order is a subscription installment order and will always be false, since subscription installment orders are not placed via the sdk v6 0 2 this release adds a url property to the product type that is an optional or required argument you can pass to the following methods useanalytics() trackcartviewed() useanalytics() trackproductclicked() useanalytics() trackproductviewed() useanalytics() trackvariantclicked() usecart() addtocart() usecart() removefromcart() usecheckout() finalizecheckout() usecheckout() preparecheckout() useproduct() createstockrequest() usesubscription() cancelsubscription() usesubscription() pausesubscription() usesubscription() resumesubscription() usesubscription() skipsubscription() when the url property is given a value, the value will be sent as the url property in the resulting segment event v6 0 1 this release restores the ability to send an acs store header with all requests to the oms this is necessary for users operating storefronts with multiple stores in order to use this, you must supply the storeslug option in your gatsby config js like so module exports = { plugins { { resolve '@chordcommerce/gatsby theme autonomy', options { omsconfig { brandname process env gatsby chord oms brand name, storeid process env gatsby chord oms store id, omsid process env gatsby chord oms id, tenantid process env gatsby chord oms tenant id, domain process env gatsby chord oms api url, // add this option if you need multi store support storeslug process env gatsby chord oms store slug, }, // omitted the rest of the config for this plugin for brevity }, }, }, } you can find the store's slug in your oms (see figure below) omitting this value will default all storefront operations to the default store v6 0 0 this release adds an “order completed” segment event to the finalizecheckout() method previously, finalizecheckout() sent a “checkout completed” segment event now, finalizecheckout() sends both “order completed” and “checkout completed” no changes to your website code are required to upgrade to this release however, we’re releasing this change as a new major version because the “order completed” event is a standard event that many segment destinations process automatically, and adding it may impact the way your segment destinations track conversions and revenue “order completed” is part of the segment ecommerce event spec https //segment com/docs/connections/spec/ecommerce/v2/ it is usually mapped by default to standard conversion/purchase events in segment destinations like the facebook pixel https //segment com/docs/connections/destinations/catalog/facebook pixel/ and tiktok conversions https //segment com/docs/connections/destinations/catalog/tiktok conversions/ destinations you can override this mapping in the segment destination settings you may have changed the event mapping in your segment destination settings to map “checkout completed” to the conversion/purchase event for the destination this will continue to work the chord oms back end segment source has always sent an “order completed” event, and you may have connected segment destinations to this source that are using this event to track conversions and revenue we recommend continuing to rely on this “order completed” event, if possible, because events from back end sources tend to be more reliable and accurate (you can read more about this from segment https //segment com/academy/collecting data/when to track on the client vs server/ ) if you currently have any segment destinations connected to both the chord oms back end segment source (typically named "my company back end (production)”) and your website front end segment source (typically named "my company front end (production)”), you may want to add a destination filter https //segment com/docs/guides/filtering data/#destination filters to stop your destination from receiving “order completed” events from one of the two chord segment sources if a destination receives an “order completed” event from both sources, that could result in revenue or conversions being double counted note regarding the google universal analytics segment destination this destination accepts total or revenue as a property on "order completed", but not both the "order completed" event does include both of these properties, to match the segment ecommerce spec and to be compatible with other segment destinations you may need to add a destination specific transformation to remove one of the two properties v5 0 2 this release reverts a change made in v5 0 1 to the trackpage option of the segmentconfig configuration object prior to v5 0 1 , page tracking was not optional and the trackpage option was ignored in v5 0 1 , passing trackpage true would result in double pageviews v5 0 2 reverts this change v5 0 1 this release fixes a bug where the manualload option in the segmentconfig configuration object was being ignored and always set to false this meant that segment tracking did not work if the site was not using segment's consent manager or explicitly calling analytics load("your write key") if you are using the site without segment's consent manager, you should initialize the site with the following keys in your gatsby config js module exports = { { resolve '@chordcommerce/gatsby theme autonomy', options { segmentconfig { // rest of the segment config here manualload false, }, }, }, } v5 0 0 this release refactors the stytch integration works with this library this is breaking change compared to v4 0 0 and requires you to redo how you initialize stytch in this library, if you are using it you can look at the document below to see how to use this library gatsby ↔️ stytch migration guide docid\ phg0anblwvgitsjinrwzg v4 1 2 this release updates the @chordcommerce/chord magic dependency to v1 4 0 and the @chordcommerce/react autonomy dependency to v1 2 0 v4 1 1 this bugfix release addresses some bugs caused by our stytch integration in non stytch setups introduced in v4 1 1 v4 1 0 this release brings support for stytch as an approved chord authentication provider documentation on how to setup and use stytch can be found here v4 0 0 this release is a significant refactor that updates @chordcommerce/gatsby theme autonomy to use chord's react docid\ ewxkrz0jhh0zpphikkcri sdk for most functionality please see the v3 x to v4 x migration guide docid\ mnqv6 ugqfwtnxfakc e4 for instructions for upgrading key highlights of this release include typescript support removed dependency on cms product catalog jsdoc documentation improved hooks and methods this release contains significant breaking changes, mostly around method names and arguments we recommend reading the v3 x to v4 x migration guide docid\ mnqv6 ugqfwtnxfakc e4 before upgrading v3 0 0 this major release of this gatsby theme moves gatsby and all related gatsby plugins and transformers from direct dependencies to peerdependencies so that consumers of this package can upgrade gatsby without any intervention from chord this will require you to do more than just bump this version in the package json first, edit your package json to drop @chordcommerce/gatsby theme autonomy and any of the listed peerdependencies in the theme's peerdependencies from your dependencies block we will be reinstalling them in the next section then, you should run the following command in your shell \# if you are using npm $ npx install peerdeps @chordcommerce/gatsby theme autonomy \# if you are using yarn $ npx install peerdeps yarn @chordcommerce/gatsby theme autonomy there is a chance that this command with fail with a very unhelpful error message if that happens, the program will output an npm install/yarn add command that you can copy and run manually for more information and caveats around this, please read the installation instructions for this package v2 2 2 this release fixes an issue where incorrect routes were being rendered to the sitemap routes should be rendered to the sitemap without the localization, for example https //example com/products/t shirt , however only routes with the en us localization were being rendered, for example https //example com/en us/products/t shirt it is recommended that you upgrade to this version and then re crawl your site via the google search console v2 1 0 this release adds modifylineitem to the usecart hook providing more flexibility to modifying line items such as updating quantity and line item options see here for accepted parameters v2 0 6 this release updates @chordcommerce/chord magic to v1 1 1 is using the lates magic sdk version 8 v2 0 4 fix one issue with square checkout's finalizecheckout the sdk was calling forgetorder before the actual call to finalize the checkout using the api this was producing requests without any auth token, because the current order token was already lost when the request is sent on stripe there is another auth mechanism and it works with or without that token to fix the issue, on square `forgetorder is called only after a successful finalize v2 0 3 added acs anonymous id header to all requests to track the segment anonymousid server side this is internal and will not impact customer development v2 0 2 change the existing finalizecheckout() so that it is compatible with the square checkout in fact, this is the last step of the square checkout, which allows finalizing the order and allows the user to start a new one, and unlike stripe, it can be called without a checkout session id this method has been made available via the usesquarecheckout hook, even if it does exactly the same as the one provided in the usecart hook v2 0 1 adds a new step of the square checkout, that allows entering payment information, called updateorderpayment() to work, it should pass along a token retrieved on the client side using the square web payments apis v2 0 0 this release adds support for gatsby 4 ! please see the v1 2 7 to v2 0 0 migration guide docid\ ygazbobbvet5lsmtkjkjg for instructions for upgrading there are no additional features, but be sure to check out release notes below if migrating from a version below v1 2 7 key highlights of this release support for gatsby 4 and all the performance benefits see gatsby 3 and gatsby 4 release notes for further reading support for new gatsby plugin image now using react 17! see react 17 release notes recommended node version 16 13 1 troubleshooting see troubleshooting in the v1 2 7 to v2 0 0 migration guide docid\ ygazbobbvet5lsmtkjkjg for all troubleshooting related to upgrading upgrading from a version below v1 2 7 please read the release notes for previous releases to find out what changed, but important breaking changes to highlight include segment consent manager (breaking change in ) see the change to the segment consent manager in v1 2 0 release notes and ensure you have the segmentconfig set in gatsby config js product merchant feed (breaking change in ) this theme no longer provides a merchant feed see the change in v1 0 6 release notes and implement a feed in your website code other breaking changes autherror and autherrorcodes no longer exported from @chordcommerce/gatsby theme autonomy autherror and autherrorcodes are no longer exported from @chordcommerce/gatsby theme autonomy this is because they were directly related to the @chordcommerce/chord magic package if you are importing these, you will now have to update to import from @chordcommerce/chord magic before import { autherror, autherrorcodes } from '@chordcommerce/gatsby theme autonomy' after import { autherror, autherrorcodes } from '@chordcommerce/chord magic' v1 2 7 fixes a bug where an expired user session continues to be retried instead of being cleared from the app state v1 2 6 adds a new step of the square checkout, this time to update the order's delivery options, with updateorderdelivery() for now, it just works when a single delivery option is available, and it is only used to move the order to the payment state v1 2 5 this version fixes a bug where, when an order is completed, the completed order is still momentarily still available from the usecart hook now the order is cleared as soon as finalizecheckout() is called no changes to react components are required for this fix this version also includes a new forgetcart() method that can be used in similar situations if necessary v1 2 4 this version includes the first functions to start a checkout with square it is still experimental and we will release a new major version when the whole checkout flow will be available this version only adds updateorderaddresses() to update an existing order with a shipping address getstates() to retrieve the list of states in a specific country their ids will be used in the body of the request when updating an order's address v1 2 0 key highlights of this release this release adds support to manually load our segment plugin , in order to implement segment's consent manager in our starters it introduces a change in the way you would normally configure segment in your theme please see below starting from v1 2 0 , it is now the responsibility of the starter to pass a proper segment configuration to the theme , via the starter's gatsby config js file, as follow plugins \[ { resolve '@chordcommerce/gatsby theme autonomy', options { segmentconfig { prodkey process env gatsby segment production write key, devkey process env gatsby segment dev write key, trackpage true, host 'https //cdn segment com', delayload false, delayloadtime 1000, manualload false } } } ] please read this to learn more details about those settings note manualload is an advanced feature it is set to true by default in our gatsby starters so that segment's consent manager can work properly alternatively, you can use it if you are calling analytics load({writekey}) manually elsewhere in your code use manualload false if you do not use, or have removed, the consent manager implementation (see below) consent manager & gatsby autonomy starter gatsby starter v2 3 0+ (autonomy) ships with a new consent manager component you can find it at /src/components/segment/consentmanager/index jsx this component is an analytics js add on with support for consent management at its core, the consent manager empowers visitors to control and customize their tracking preferences on the website they can opt out entirely of being tracked, or selectively opt out of tools in which they don’t want their information stored the consent manager banner is shown automatically for visitors from the eu you can also decide to show it by default by configuring the gatsby segment should require consent new environment variable to true in your env file we have also integrated a way to manage your consent manager preferences from the starter's footer component integrations in order for the consent manager to work, you must setup segment integrations in your target segment workspace you can verify that your integrations ( google analytics , amplitude , etc) are accessible for the consent manager component by visiting the url below it should not return an empty array if you have properly configured them https //cdn segment com/v1/projects/add your segment api key here/integrations troubleshooting there is a known gatsby issue that might occurred, where a blank page is rendered all over the site this issue only occurs if you build and serve the site (as opposed to simply yarn dev ) when/if that happens, edit your /src/components/segment/consentmanager/index jsx and move the {children} coming from the wraprootelement before the \<consentmanager /> rebuild and serve ( yarn build && yarn serve ), or use your netlify/gatsby cloud review apps and verify the results v1 0 6 this release introduces a breaking change the product merchant feed generator has been removed from this theme it is now the responsibility of the website code to enable it you can find an implementation example in the following pull request