Post Featured Image

TIL Thursday: the SuiteCommerce Release Process

This blog post is generally appropriate for all sites, regardless of their version of SuiteCommerce or SuiteCommerce Advanced.

This week we have a collaboration with Florencia Meilán and the release team. She is going to share how we, NetSuite, releases updates to SuiteCommerce to you, our customers. It's important to note that there are a number of factors involved in this that can affect your ability to get updates: what product you're using, the different bundles that go into your site, updates to core platform code, what environments your instances are on, your position in our phasing schedule, and so much more.

Some of the information is taken from documentation, some from her own knowledge, and other in discussion with the teams who work in release planning. Note, therefore, that it is subject to change over time and the following is a general guide to the process. If you are unsure, or there is a contradiction to the information in the our documentation or what a NetSuite representative gives you, you should defer to that instead.

NetSuite Core Upgrade

NetSuite core releases occur twice a year: once in Q1 and once in Q3. It is the first thing to consider as it forms the foundation of your web store. Commerce platform updates are changes that require changes to the core NetSuite. Accordingly, the updates for these updates are part of the NetSuite core upgrade process.

However, the whole of NetSuite is not upgraded at the same time. Instead, we take a phased approach based on a number of factors. One of the important ones is the type of environment that is being upgraded.

Broadly speaking, there are four different NetSuite core environments:

  1. Production accounts — master/live instances with real data for running your organization and web store (these run 'current' code)
  2. Release preview — temporary copies of live instances with a snapshot of real data for testing your existing organizational processes and web store on an upcoming release of 'new' code
  3. Sandbox — copies of live instances with a snapshot of real data for building new customizations or testing changes to your organizational processes
  4. Test Drive (also known as TSTDRV) — ad hoc environments with dummy data available in specific scenarios (eg training) and to specific groups of people (eg implementation partners)

Let's take a look at each of these.

Production Accounts

Release information is provided to all users through New Release portlet. If you can not see it in your production account, go to your Home dashboard and click on Personalize Dashboard, then add New Release under Standard Content.

When an update is scheduled, the information changes to show release dates for your release preview and your upgrade. This information includes:

  • Production upgrade date
  • Release preview start and end dates
  • Sneak peaks (summaries of new features)
  • Release preview test plan (a worksheet for areas to test)
  • Release notes (usually an early draft)
  • Overview videos of new features

NetSuite releases major scheduled updates to the entire customer base twice a year using a phased roll out approach, making the updates live for a small percentage of customers first, then continuing through our entire customer base. This means the majority of customers have significant time to test in the release preview environment before getting upgraded.

When a NetSuite instance is upgraded, it is put into a maintenance mode and taken offline. The window for this period is usually a couple of hours but can vary.

In addition to the portlet, all administrators are notified three times about upcoming releases:

  1. General announcement at the start of the new release cycle
  2. Notice for when a new release preview account is available
  3. Notice one week before the production instance is to be upgraded

You can also opt in to receive updates when the upgrade has been completed:

  • Navigate to Setup > Company > General Preferences
  • Check the Maintenance Complete Email Notification checkbox
  • Click Save

This is only available to users with the administrator role and it applies to all administrators when any scheduled account maintenance or upgrades has been completed.

Once you know the date of your upgrade, the time it takes place usually depends on what region your environment is hosted in:

  • US — 00:00 Pacific Time
  • AU/JP — 09:00 Pacific Time
  • UK/EMEA — 15:00 Pacific Time

Release Preview Accounts

Although we strive to make the upgrade as transparent as possible, it's essentially impossible to make sure that every conceivable customization an account owner could be running works without a hitch. The good news is there are things you can do to prepare for this. The very best way to avoid issues is to be proactive: prepare for upgrades.

Release Preview is an account type within the customer’s NetSuite account running on soon-to-be released version of the NetSuite core code. It is a free environment provided to test your existing key business process workflows (including your website) to make sure the new update does not break anything.

The data in this environment is a complete backup (also known as a 'snapshot') of the production account it was copied from at the time the copy was made. This copied data and environment is separate from production, which means any changes made in this account will not be reflected in the live environment.

Before your release preview becomes available, the new release portlet is refreshed with links to sneak peaks, a printable version of the test plan, release notes, account login, training resources, and an overview of the release.

What is a Snapshot?

A snapshot is a copy of data at a specific point in time. It is made of a production account and then copied to a release preview account. The specific snapshot date is the date we add the job to the release preview automation tool. If you in to the release preview, the snapshot will comprise data close to the date they request the release preview account.

You can check your snapshot date in Setup > Company > Release Preview.

When is the Release Preview Environment Made Available?

Release preview availability information is posted in the portlet, which is shown to every customer. Some customers will get a release preview environment automatically, others will have to request it.

If you used a release preview account for the previous release, and you used it above a certain threshold (eg more than 50 POSTs, page saves, or searches) then you will receive one for the next release. If you did not use one and would like to receive one, you can opt in from your production account by going to Setup > Company > Release Preview > Request Release Preview.

The release preview account is available on or before the published release preview start date for that phase. If you submit a request for a release preview environment after your phase has started, it can take up to five working days before it will be available.

What Functionality Should I Test Before an Upgrade?

Before beginning, we recommend reviewing the Release Preview Test Plan.

You should test both basic functionality and any custom functionality that your organization relies upon.

  • Run through your normal processes, making sure to test the parts of the application your organization frequents.
  • Take a look at the new features that come with the new version. Try configuring them roughly how you plan to use them in production, then test them out. If you think they affect your existing processes/features, retest those.
  • If you have bundles installed in your account, make sure you test these applications in release preview. For third-party applications installed in your account make sure you test all critical business processes that rely on the third-party solution and inform the solution provider of any issues you may find.
  • Test your web store. If you have administrator access to your devices's terminal, and permission to edit the host file on your computer, you can perform the following configuration procedures to test your web store in release preview:
    1. Locate the CNAME (alias) for your domain
    2. Edit the hosts file to map your domain to the IP address of the hosting server in the release preview account
    3. Open a new browser window and test your web store in the release preview account

Any issues you encounter during testing should be reported to NetSuite by submitting a case to the support team.

Release Preview Limitations

Keep in mind that there are some limitations with your release preview account:

  • Bundles can be copied/installed to the release preview (eg from a production account) but cannot be copied/installed from the release preview to production or development accounts
  • After the snapshot has been taken, no further updates to the production account will be copied across to the release preview
  • Some intensive functions (such as reports, searches and scripts) may not perform as quickly as they do on production
  • Third-party integrations to NetSuite will likely not be configured / set up

Please refer to the Recommended Test Plan.

Also note that access to your release preview environment will be revoked once your production account has been upgraded. Please ensure you have created a copy of any settings, configurations, etc, that you need before then.

Sandbox Environments

A NetSuite sandbox is a safe and isolated test account in which you can develop and test new applications and customizations without worrying about affecting your production account. You can have one or more sandboxes provisioned for each production account. Each sandbox account has the same configuration, data, and customizations as your company's production account.

Normally, sandbox accounts are upgraded after production account has been upgraded and upgrades typically completes within 8 hours. During the upgrade process, all sandbox refresh requests are put on hold and resume after production and sandbox account upgrades have completed.

Sandbox upgrade plans have varied over the last few cycles. We hope to soon introduce new measures that will improve the process. Sandbox upgrades should soon be done over a two day period (usually the Monday and Tuesday) after the production upgrade date. We also anticipate that the process will take significantly less than 8 hours, and that the sandbox refresh queue will not need to be shut down for sandbox upgrade.

Premium Service Sandbox Accounts

For customers who use our premium service, you can request a sandbox upgrade prior to the upgrade date of your production account. Sandbox upgrades are done on Tuesdays and Fridays. To check which service type your account is on, you can contact your account manager or support. If you're eligible and would like to request an early sandbox upgrade, an administrator needs to submit a case with support.

Data Refresh

Note that if you'd like to have your current product data copied to a sandbox environment for an early upgrade, you'll need to request (and complete) a refresh before requesting an early upgrade. This is because the refreshing of data and the upgrading of an environment are two separate processes.

If you want to upgrade a sandbox environment before production, you must submit the request at least 10 business days in advance.

Test Drive Environments

Test Drive accounts exist in different forms. They may be provisioned for QA testing, sales demos, training, partner implementations, and, in some cases, customers.

Depending on what type of account you have, you may be 'leading' or 'lagging': if you're leading, your test drive account will be among the first to be upgraded; if you're lagging, you'll be among the last.

Commerce Bundles

When installing SuiteCommerce or SuiteCommerce Advanced for the first time, you must install the most recent version of the appropriate bundles, as well as any additional bundles that enable certain features (eg configuration, extension management, the base theme, etc).

Bundles can be managed or unmanaged:

  • Managed bundles automatically receive updates for fixes, enhancements and new features without any need to update or migrate
  • Unmanaged bundles require an administrator to manually update them in NetSuite

SuiteCommerce

One of the crucial differences between SuiteCommerce and SuiteCommerce Advanced is that SuiteCommerce is managed, and SuiteCommerce Advanced is unmanaged.

By installing SuiteCommerce, the installer agrees to subscribe to future updates at the discretion of the bundle's author (NetSuite). As updates are developed, they can be updated by the bundle author into the target accounts without any action required by the target account administrator. The bundle author completes this task at their discretion.

With managed bundles, we can more carefully manage updates during the phased NetSuite release cycle when some of the accounts in our bundles install base might be running a different version of NetSuite than the Bundle source account. Managed bundles support a phased upgrade process that supports maintenance of multiple versions of a managed bundle.

An important thing to note is that even though the SuiteCommerce bundle is managed, automatic updates are disabled in sandbox environments. In other words, your sandbox account will receive access to the updated bundle but an administrator must perform the bundle update process manually.

When the SuiteCommerce bundle is updated, you do not need to reactivate a site's extensions or theme.

Update Schedule

Like core NetSuite releases, we typically release new SuiteCommerce bundles twice a year, usually at roughly the same time.

However, one of the most important things we have to keep in mind when planning our release schedule is that we do not upgrade an account's bundles before they've received the core NetSuite upgrade. This is because bundle upgrades typically rely on new features that are only available in the leading version.

SuiteCommerce uses a phased release process for managed bundle upgrades, similar to the release process for NetSuite upgrades. We release a new managed bundle version to subsets of the install base at different times.

Five to ten days prior to your account's SuiteCommerce bundle upgrade, the account's administrators will receive an email notification that announces the upcoming upgrade, the date it will happen, and a list of enhancements included in the bundle.

Changing the Upgrade Date

We cannot guarantee that we can reschedule an upgrade, but you can submit a request. To do so, raise a case with support.

  • The person submitting the case must be an administrator or otherwise a recognized authority for the account
  • If the request is being made on behalf of one of those people, that person will need to give their authorization
  • Requests must be submitted at least five business days before the requested upgrade date

If there are mitigating reasons why the current date is unsuitable, it would be useful to include them as part of your request.

Bug Fixes and Minor Version Updates

E-fixes are very small code changes to bundles or NetSuite core code pushed out, usually to address a specific issue that a customer has had. We do not necessarily send out notifications for these — usually the affected customers are already aware of the issue and that they will be receiving the e-fix.

When an e-fix is pushed out, the bundle version is modified to increase the minor version, eg 2019.1.0 to 2019.1.1. SuiteCommerce customers will be upgraded automatically.

SuiteCommerce Advanced users can choose whether to update their bundle to the latest minor version, just like any other update. However, as these minor updates are typically to address specific customer issues, it may not be worth it. Upgrading to use the latest version will require you to not only update the bundle but also to merge the new bundle code into your site's development code, and then deploy it back to NetSuite.

We do not publish release notes for minor versions but depending on the issue, we may release a patch with detailed documentation on implementing it so you don't have to update/re-implement.

Note that the schedule for e-fixes available in SuiteAnswers does not necessarily align with the e-fix schedule for commerce bundles.

Commerce Bundles on Test Drive Environments

Test drive environments are not typically provisioned updated bundles automatically.

If it is the first time requesting a bundle upgrade on a test drive account, submit a case and see if support are authorized to upgrade them on your account. Otherwise you will likely need to contact the NetSuite representative who provisioned you the account and have them submit a request on your behalf.

If you are a member of the SuiteCloud Developer Network (SDN) then you can use the NS Advanced Partner Center role to raise a case yourself to have bundles updated.

Commerce Extensions

Since 2018.1, some SuiteCommerce and SuiteCommerce Advanced features have been delivered via the commerce extension framework. The release schedule for these extensions is not tied to the upgrades of the core NetSuite code or the core SuiteCommerce bundle. What this means is that they can be released at almost any time.

You can track new extension releases and upgrades by:

Bundled extensions can be managed or unmanaged. As with the other bundles, if they are unmanaged then you are required to update the bundles manually yourself.

Once an extension's bundle has been updated, you must reactivate it before it will be active on your web store (the existing version of the activation will remain live on the site until then).

Like the other SuiteCommerce bundles, extension bundles are available on sandbox and release preview accounts, so we advise testing updated versions on a web store in one of these environments before activating them on your production site.

Note that not all extensions bundles are public: some may need to be provisioned to your account. If they are owned by NetSuite, you will need to a raise with support in order to access them.

Updates to NetSuite extensions are recorded in the Extensions Release Notes page.

SuiteCommerce In-Store

The process for SCIS is very different to the above. We may talk about this in a future blog post.