SuiteCommerce Version Upgrade Guide: 2023.x to 2024.x
Your SuiteCommerce site is running on a 2023.x version. It works. Orders process. Customers check out. So why upgrade?
Because you're accumulating technical debt with every month you delay. Security patches you're missing. Performance improvements you're not benefiting from. Features your competitors are using. And the longer you wait, the harder the eventual upgrade becomes.
We've handled 50+ SuiteCommerce version upgrades, including complex migrations spanning multiple major versions. The 2023 to 2024 jump is significant—Oracle introduced architectural improvements that deliver real performance gains, but they require careful migration planning.
This guide walks you through the entire upgrade process: from initial assessment to zero-downtime deployment.
What's New in 2024.x Releases

Before diving into the upgrade process, understand what you're gaining. The 2024 releases introduced substantial improvements across performance, features, and developer experience.
Performance Improvements
The headline improvement in 2024.2 is skipping prerendering for returning shoppers. This architectural change reduces Time to First Byte (TTFB) and First Contentful Paint (FCP) for the majority of your visitors.
| Metric | Typical Improvement |
|---|---|
| TTFB | 20-35% faster |
| FCP | 15-25% faster |
| LCP | 10-20% faster |
| Server Response | 25-40% faster |
These aren't theoretical benchmarks—we measured these improvements across client sites post-upgrade.
SEO Enhancements
The 2024 releases improved the SEO Page Generator with better handling of:
- Dynamic meta tags for faceted navigation pages
- Automatic canonical URL management
- Enhanced structured data output
- Improved sitemap generation performance
Site Management Improvements
Enhanced Site Management Tools (SMT):
- Improved content editing interface
- Better preview functionality
- Streamlined publishing workflows
- New content type support
Theme Management:
- Fallback themes now fully supported
- Improved skin configuration options
- Better asset management
Commerce Features
Subscription Management:
- Advanced subscription capabilities for recurring revenue businesses
- Improved subscription lifecycle management
- Better integration with NetSuite billing
Checkout Improvements:
- Streamlined payment gateway integrations
- Enhanced address validation
- Improved guest checkout flows
B2B Enhancements:
- Better quote management in MyAccount
- Improved purchase order handling
- Enhanced account hierarchy support
Upgrade Path Assessment
Not all upgrades follow the same path. Your starting version and customization level determine the complexity.
Version Compatibility Matrix
| Current Version | Target Version | Upgrade Complexity | Estimated Effort |
|---|---|---|---|
| 2023.2 | 2024.2 | Moderate | 2-4 weeks |
| 2023.1 | 2024.2 | Moderate-High | 3-5 weeks |
| 2022.x | 2024.2 | High | 4-8 weeks |
| 2021.x or earlier | 2024.2 | Very High | 6-12 weeks |
Rule of thumb: Each major version jump adds 1-2 weeks to the timeline due to cumulative breaking changes.
SuiteCommerce vs. SuiteCommerce Advanced
Your product tier affects the upgrade process fundamentally:
SuiteCommerce (Standard):
- Upgrades applied automatically by NetSuite
- Customizations limited to themes and extensions
- Extensions may need compatibility updates
- Generally lower complexity
SuiteCommerce Advanced (SCA):
- Manual upgrade required—you control the timing
- Full source code access means more customization possibilities (and migration work)
- Customizations embedded in core code must be re-implemented
- Higher complexity but more control
This guide covers both paths, with specific callouts for SCA considerations.
Pre-Upgrade Assessment
Before touching any code, conduct a thorough assessment. This phase prevents 80% of upgrade problems.
Customization Inventory
Document every customization on your current site:
## Customization Inventory Template
### Extensions Installed
| Extension Name | Version | Source | Custom? |
|---------------|---------|--------|---------|
| PowerReviews Integration | 2.1.0 | Third-party | No |
| Custom Quick View | 1.0.0 | In-house | Yes |
| Enhanced Search | 3.0.0 | SuiteApp | No |
### Theme Customizations
| File | Modification Type | Description |
|------|------------------|-------------|
| header.tpl | Template override | Custom mega-menu |
| product_details.tpl | Template override | Custom gallery |
| _product-list.scss | Style override | Grid layout changes |
### SuiteScript Customizations (SCA only)
| Script Type | Name | Dependencies |
|------------|------|--------------|
| Service | CustomShipping.ss | - |
| Model | CustomProduct.Model.js | Product.Model.js |
### Third-Party Integrations
| Integration | Connection Method | Version Sensitive? |
|------------|------------------|-------------------|
| Klaviyo | Tag + Extension | Yes |
| Google Analytics 4 | Tag Manager | No |
| TaxJar | SuiteScript | Yes |
Breaking Change Analysis
Review NetSuite's release notes for breaking changes between your version and target:
Common breaking changes in 2024.x:
- Backbone.js updates: Views using deprecated patterns may fail
- Template context changes: Some data structures in templates modified
- Service endpoint changes: API response formats may differ
- SASS variable deprecations: Some variables renamed or removed
How to check:
# Download release notes from Oracle documentation
# Search for "breaking changes" and "deprecated"
Dependency Check
Verify all dependencies are compatible with 2024.x:
Node.js requirements:
- 2023.x: Node 16.x or 18.x
- 2024.x: Node 18.x or 20.x (Node 16 deprecated)
Gulp requirements:
- Both versions: Gulp 4.x
Third-party bundles:
- Check SuiteApp store for 2024.x compatible versions
- Contact vendors for custom integrations
Sandbox Setup
Never upgrade production first. Your sandbox environment is where you'll do all development and testing.
Creating an Upgrade Sandbox
If your sandbox isn't a recent production copy, refresh it:
- Navigate to: Setup → Company → Setup Tasks → Sandbox Refresh
- Select: Full copy or Production to Sandbox Copy
- Wait: This can take several hours for large accounts
Important: Schedule the refresh during off-hours. It consumes system resources.
Downloading Development Tools
Get the 2024.x development tools:
Navigation: File Cabinet → SuiteBundles → Bundle 387395 (SuiteCommerce)
Download:
ExtensionDevelopmentTools-24.x.x.zipThemeDevelopmentTools-24.x.x.zip- For SCA:
SuiteCommerce Advanced Developer Tools-24.x.x.zip
Version Control Setup
Your code should be in version control. Create an upgrade branch:
# Create upgrade branch from production
git checkout production
git checkout -b upgrade/2024.2
# Commit current state
git add .
git commit -m "Pre-upgrade snapshot - 2023.2"
Extension Migration
Extensions are the most portable customizations—but they still need compatibility verification.
Compatibility Testing Process
For each extension:
- Check manifest.json for version constraints:
{
"name": "CustomQuickView",
"version": "1.0.0",
"target_version": {
"minimum": "2020.1.0",
"maximum": "2024.2.0" // Update this if needed
}
}
- Test locally against 2024.x:
# Fetch 2024.x base
gulp extension:fetch
# Deploy extension to local
gulp extension:local
- Check browser console for errors
- Verify functionality manually
Common Extension Issues
Issue: Backbone view errors
// Old pattern (may fail)
this.constructor.__super__.initialize.apply(this, arguments);
// Updated pattern
ParentView.prototype.initialize.apply(this, arguments);
Issue: Template data undefined
{{!-- If this worked before but fails now --}}
{{item.custitem_field}}
{{!-- Check if the model includes this field --}}
{{#if item.custitem_field}}
{{item.custitem_field}}
{{/if}}
Issue: Service endpoint 404
Verify service URLs in your extension configuration match 2024.x patterns.
Updating Extensions for 2024.x
When an extension needs code changes:
// extension/JavaScript/MyExtension.View.js
define('MyExtension.View', [
'Backbone',
'my_extension.tpl'
], function(Backbone, template) {
'use strict';
return Backbone.View.extend({
template: template,
// 2024.x: Use events hash instead of deprecated bindEvents
events: {
'click [data-action="myAction"]': 'handleAction'
},
initialize: function(options) {
this.options = options;
// 2024.x: Ensure model is bound correctly
this.model = options.model || this.options.application.getCart();
},
// 2024.x: getContext is now required for template data
getContext: function() {
return {
showFeature: this.model.get('enableFeature'),
items: this.model.get('items') || []
};
},
handleAction: function(e) {
e.preventDefault();
// Action logic
}
});
});
Extension Re-deployment
After updating:
# Validate extension
gulp extension:validate
# Deploy to sandbox
gulp extension:deploy --to sandbox
# Test thoroughly
Theme Migration
Theme migration complexity depends on whether you're using the newer fallback architecture or traditional full themes.
Fallback Theme Migration
If you're already using fallback themes, migration is straightforward:
- Update base_theme reference in manifest.json:
{
"name": "myTheme",
"base_theme": "starter_theme_2024" // Update to 2024.x base
}
- Review override files for deprecated classes or variables
- Test with new development tools:
gulp theme:local
Full Theme Migration (SCA)
For traditional SCA themes with full source code, you have two options:
Option A: Convert to Fallback Theme (Recommended)
This is more upfront work but dramatically simplifies future upgrades:
- Install 2024.x starter theme as base
- Identify which files you actually modified
- Copy only modified files to new fallback theme structure
- Update manifest.json with fallback configuration
- Test thoroughly
Option B: Manual Merge
More error-prone but preserves your existing structure:
- Get diff between your theme and original 2023.x base
- Apply same modifications to 2024.x base
- Resolve conflicts manually
- Test every modified file
SASS Variable Updates
Check for deprecated or renamed variables:
// 2023.x variable
$sc-color-theme-bg: #f5f5f5;
// 2024.x renamed to
$sc-color-theme-background: #f5f5f5;
Quick fix: Add aliases in your custom SASS:
// Bridge for renamed variables
$sc-color-theme-bg: $sc-color-theme-background !default;
Template Migration
Compare templates between versions for structural changes:
# Diff specific template
diff Themes/MyTheme/Modules/[email protected]/Templates/header.tpl \
Themes/StarterTheme2024/Modules/[email protected]/Templates/header.tpl
Look for:
- New data-attributes
- Changed context variables
- New child views
- Modified structure
SuiteScript Migration (SCA Only)
SCA customizations often include SuiteScript services and modified models. These require careful migration.
Service Controller Updates
Check for API changes in service controllers:
// services/MyCustom.Service.ss
// 2023.x pattern
function service(request) {
var response = require('SC.Response');
// ...
}
// 2024.x - verify require paths still valid
define('MyCustom.Service', [
'Application',
'SC.Response',
'MyCustom.Model'
], function(Application, Response, Model) {
'use strict';
Application.registerService({
name: 'MyCustom.Service',
get: function() {
return Model.get(this.request.getParameter('id'));
},
post: function() {
var data = JSON.parse(this.request.getBody());
return Model.create(data);
}
});
});
Model Layer Changes
Check if your custom models extend base models that changed:
// Models/MyCustomProduct.Model.js
define('MyCustomProduct.Model', [
'Product.Model', // Check if this changed in 2024.x
'underscore'
], function(ProductModel, _) {
'use strict';
return ProductModel.extend({
// Override methods - verify parent method signatures
get: function(id, options) {
var result = ProductModel.prototype.get.apply(this, arguments);
// Your custom additions
result.custom_field = this.getCustomField(id);
return result;
}
});
});
Testing SuiteScript Changes
# Deploy to sandbox for testing
gulp ssp:deploy --to sandbox
# Test all custom endpoints
curl -X GET "https://sandbox.netsuite.com/api/mycustom?id=123" \
-H "Authorization: Bearer YOUR_TOKEN"
Testing Methodology
Comprehensive testing prevents post-deployment disasters. Follow this methodology systematically.
Functional Testing Checklist
## Core Functionality Tests
### Shopping Flow
- [ ] Homepage loads correctly
- [ ] Category navigation works
- [ ] Product listing displays correctly
- [ ] Faceted search filters function
- [ ] Product detail pages render
- [ ] Image galleries work
- [ ] Add to cart functions
- [ ] Cart updates correctly
- [ ] Quantity changes work
### Checkout Flow
- [ ] Guest checkout works
- [ ] Registered user checkout works
- [ ] Address validation functions
- [ ] Shipping methods display
- [ ] Payment processing works (use test mode)
- [ ] Order confirmation displays
- [ ] Order emails send
### MyAccount
- [ ] Login/logout works
- [ ] Order history displays
- [ ] Address book functions
- [ ] Payment methods manageable
- [ ] Account details editable
### B2B Features (if applicable)
- [ ] Quote request functions
- [ ] Approval workflows work
- [ ] Purchase orders process
- [ ] Account hierarchy displays
### Mobile
- [ ] All above tests pass on mobile devices
- [ ] Touch interactions work
- [ ] Mobile navigation functions
Performance Testing
Compare performance metrics before and after:
# Run Lighthouse on staging
lighthouse https://sandbox.yoursite.com \
--output=json \
--output-path=./lighthouse-2024-upgrade.json
# Compare to pre-upgrade baseline
Key metrics to compare:
| Metric | Acceptable Regression | Investigate If |
|---|---|---|
| LCP | +200ms | > +500ms |
| FCP | +100ms | > +300ms |
| CLS | +0.02 | > 0.05 |
| TBT | +50ms | > +200ms |
Cross-Browser Testing
Test on these minimum browser versions:
- Chrome (latest 2 versions)
- Firefox (latest 2 versions)
- Safari (latest 2 versions)
- Edge (latest 2 versions)
- iOS Safari (latest)
- Chrome for Android (latest)
Regression Testing
Document and verify any custom functionality:
## Custom Feature Tests
### Custom Quick View Extension
- [ ] Quick view button appears on product list
- [ ] Modal opens with product details
- [ ] Add to cart from modal works
- [ ] Modal closes correctly
- [ ] Keyboard accessibility (Escape to close)
### Custom Shipping Calculator
- [ ] Calculator appears in cart
- [ ] Postal code input works
- [ ] Shipping options display
- [ ] Rates are accurate
Data Migration Considerations
While most data stays in NetSuite (unchanged by SuiteCommerce upgrades), some configurations may need attention.
Site Configuration Review
After upgrading the application code, verify site configurations:
Commerce → Websites → Your Site → Setup:
- Domain settings
- SSL certificate assignment
- Checkout flow configuration
- Payment method settings
Commerce → Websites → Your Site → SMT Configuration:
- Content types
- Layout assignments
- Widget configurations
Catalog Configuration
Verify catalog settings weren't affected:
- Item display templates
- Category configurations
- Pricing display rules
- Inventory display settings
Order Flow Configuration
Test and verify:
- Tax calculation settings
- Shipping method assignments
- Email notification templates
- Order status mappings
Zero-Downtime Deployment Strategy

Your customers shouldn't know you upgraded. Here's how to achieve zero-downtime deployment.
Deployment Timeline
Day -7: Final sandbox testing complete
Day -3: Production deployment scheduled with team
Day -1: Final production backup
Day 0: Deployment (during lowest traffic window)
Day +1: Monitoring and quick-fix readiness
Day +7: Post-upgrade review
Pre-Deployment Preparation
24 hours before:
- Final sandbox testing passed
- All team members briefed on rollback procedure
- Support team aware of upgrade
- Customer service team prepared for potential issues
- Monitoring alerts configured
- Rollback plan documented
1 hour before:
- Team assembled (developers, DevOps, project manager)
- Communication channels open
- Production site current performance baseline captured
- Database backup confirmed
Deployment Steps
Execute during your lowest traffic period (typically 2-6 AM local time for your primary market):
# Step 1: Deploy extensions (doesn't affect live site yet)
gulp extension:deploy --to production
# Step 2: Deploy theme (doesn't affect live site yet)
gulp theme:deploy --to production
# Step 3: For SCA - Deploy SSP application
gulp ssp:deploy --to production
# Step 4: Activate new version in NetSuite
# Navigate to: Commerce → Websites → [Site] → Setup
# Update to 2024.x bundle version
# Step 5: Activate new theme
# Navigate to: Commerce → Websites → [Site] → Themes
# Activate upgraded theme
# Step 6: Clear caches
# CDN cache purge
# NetSuite cache refresh
Smoke Testing Post-Deployment
Immediately after activation, run critical path tests:
# Automated smoke test script
./scripts/smoke-test-production.sh
# Manual verification
# 1. Load homepage
# 2. Search for product
# 3. Add to cart
# 4. Proceed to checkout (stop before payment)
# 5. Check MyAccount login
Rollback Procedure
If critical issues arise:
Quick rollback (< 5 minutes):
- Reactivate previous theme
- Reactivate previous extensions
- For SCA: Revert bundle version
Full rollback (< 30 minutes):
- Restore from pre-upgrade backup
- Redeploy previous code versions
- Verify all functionality
Document the rollback procedure before deployment so anyone can execute it under pressure.
Post-Upgrade Validation
The upgrade isn't complete until you've validated everything in production.
Monitoring Checklist
First 24 hours:
- Error rate monitoring (should be stable or improved)
- Performance metrics (LCP, FCP, TTFB)
- Conversion rate (no significant drops)
- Cart abandonment rate
- Server response times
First week:
- Customer support ticket volume
- Payment processing success rates
- Email delivery rates
- Search functionality accuracy
- Mobile conversion rates
Performance Baseline
Capture new performance baseline:
# Run Lighthouse on production
lighthouse https://www.yoursite.com \
--output=json \
--output-path=./lighthouse-post-upgrade.json
# Compare to pre-upgrade
diff lighthouse-pre-upgrade.json lighthouse-post-upgrade.json
Issue Tracking
Create a dedicated channel for upgrade-related issues:
## Post-Upgrade Issue Template
**Issue:** [Brief description]
**Severity:** Critical / High / Medium / Low
**Affected Area:** [Shopping / Checkout / MyAccount / etc.]
**Steps to Reproduce:**
1. ...
2. ...
**Expected Behavior:** ...
**Actual Behavior:** ...
**Browser/Device:** ...
**Screenshots/Logs:** [Attach]
Troubleshooting Common Upgrade Issues
JavaScript Errors
Console shows "undefined is not a function":
Usually a dependency loading order issue:
// Check module definition
define('MyModule', [
'Backbone',
'underscore',
'jQuery' // Ensure jQuery loads before dependent modules
], function(Backbone, _, jQuery) {
// Verify all dependencies are available
if (!jQuery) {
console.error('jQuery not loaded');
}
});
Template Rendering Failures
Blank page or partial rendering:
Check template context:
{{!-- Add debugging --}}
{{log this}}
{{!-- Verify expected data exists --}}
{{#if model}}
{{!-- Normal template --}}
{{else}}
<div>Model not available - check view getContext()</div>
{{/if}}
Extension Not Loading
Extension installed but not functioning:
- Verify bundle is active: Setup → SuiteCloud → Installed Bundles
- Check extension activation: Commerce → Websites → Site → Extensions
- Review browser console for loading errors
- Verify manifest.json target_version includes 2024.x
Style Regressions
Layout broken or styles missing:
# Compare compiled CSS size
ls -la LocalDistribution/css/*.css
# Check for SASS compilation errors
gulp sass:compile 2>&1 | grep -i error
# Verify all SASS files included in entry points
grep -r "import" Themes/MyTheme/Modules/BaseSassStyles/
Performance Degradation
Site slower after upgrade:
- Check if prerendering is working correctly
- Verify CDN cache is functioning
- Review new feature impact (disable optional features)
- Check for inefficient new JavaScript
- Review third-party integration impact
Upgrade Complexity Estimator
Use this to estimate your specific upgrade effort:
## Upgrade Effort Calculator
### Base Effort
Version jump (2023 → 2024): 3 base points
### Customization Multipliers
Number of custom extensions:
- 0-2: ×1.0
- 3-5: ×1.3
- 6-10: ×1.6
- 10+: ×2.0
Theme customization level:
- Minimal (colors/fonts): ×1.0
- Moderate (layout changes): ×1.3
- Heavy (custom templates): ×1.6
- Complete redesign: ×2.0
SuiteScript customizations (SCA):
- None: ×1.0
- Light (1-3 scripts): ×1.3
- Moderate (4-10 scripts): ×1.6
- Heavy (10+ scripts): ×2.0
### Third-Party Integration Factor
- None: ×1.0
- Standard (GA, Klaviyo): ×1.1
- Multiple (5+ integrations): ×1.3
- Complex (custom APIs): ×1.5
### Calculation
Total Points = Base × Extensions × Theme × SuiteScript × Integrations
### Effort Translation
- 3-6 points: 2-3 weeks
- 6-12 points: 3-6 weeks
- 12-24 points: 6-10 weeks
- 24+ points: 10+ weeks (consider phased approach)
FAQ
Q: Can I skip versions? (e.g., 2022.x directly to 2024.x)
A: Yes, but it's more complex. Each skipped version adds potential breaking changes you must address. We recommend sequential upgrades only for highly customized sites.
Q: How long will 2023.x be supported?
A: NetSuite typically supports N-2 versions. 2023.x will receive security patches through late 2025, but new features are only added to current releases. Plan your upgrade before support ends.
Q: Should I upgrade extensions and themes together or separately?
A: Deploy together in a coordinated release. Mismatched versions can cause subtle compatibility issues that are hard to debug.
Q: What if my third-party extension isn't compatible with 2024.x?
A: Contact the vendor for an updated version. If unavailable, evaluate: is the functionality critical? Can you build a replacement extension? Factor this into timeline.
Q: Will the upgrade affect my SEO rankings?
A: It shouldn't, but monitor carefully. Ensure redirects are in place for any URL changes, verify meta tags render correctly, and monitor Search Console for crawl errors post-upgrade.
When to Get Help
Consider professional assistance if:
- You're jumping more than one major version
- You have 10+ custom extensions
- Your theme has significant customizations
- You've modified core SCA code
- Your site generates $1M+ annually (risk is too high for errors)
- Your team lacks SuiteCommerce upgrade experience
We've handled upgrades from versions as old as Aconcagua to current releases. The investment in expertise typically pays for itself by reducing downtime and accelerating the timeline.
Schedule an Upgrade Assessment →
Running an outdated SuiteCommerce version? Contact our team to plan your upgrade path and minimize business disruption.
Need Help with Your NetSuite Project?
Our team of experts is ready to help you achieve your goals.


