Znode planning / Migration

Znode 9 to 10 migration: give every customization a plan.

A Znode 9 to Znode 10 transition is a chance to review how the business works and where its custom behavior belongs. Start with the workflows people depend on, then choose the right implementation for the target platform.

GCG4 minute readSeptember 13, 2026
Znode 9 to Znode 10 migration decisionsZnode 9 on .NET Framework 4.8 transitions through behavior and ownership decisions to Znode 10 APIs and Next.js, with retain, rebuild, and retire decision bands.Znode 9Behavior &ownershipZnode 10.NET Framework 4.8What must change?APIs + Next.jsRetainRebuildRetireInventory each customization before sequencing the transition.Znode 9 to Znode 10 migration decisionsA vertical migration flow from Znode 9 through behavior and ownership to Znode 10, followed by retain, rebuild, and retire decisions.Znode 9Behavior & ownershipZnode 10.NET Framework 4.8What must change?APIs + Next.jsRetainRebuildRetireInventory each customizationbefore sequencing transition.
An original GCG planning diagram. Use it to frame the decisions in your own environment.

Preserve the reason the customization exists.

An account selector might look like a small control, but it can determine catalogs, prices, addresses, payment options, and the active cart. A custom order service may also carry customer identifiers, units, tax decisions, and recovery rules. The important migration requirement is the behavior that these pieces support.

Inventory each customization with its users, inputs, outputs, permissions, external dependencies, and side effects. Ask what should stay, what the target release can provide through configuration, and what is no longer needed. This gives the business a say before engineering commits to rebuilding familiar code.

Make the runtime and extension changes explicit.

Znode 9 uses .NET Framework 4.8 in the legacy application stack discussed in GCG's guides. Znode 10 uses ASP.NET Core and modern .NET for Custom API development, with a React and Next.js storefront and Page Builder development model. The exact SDK and package versions should be recorded for the target release.

That distinction affects application lifecycle, dependency registration, storefront composition, deployment, and extension boundaries. A Razor or jQuery customization needs an intentional frontend design. A legacy service override needs a supported target extension. Treat those as engineering decisions rather than a series of syntax substitutions.

Choose a home for the data and the rules.

Separate Znode-owned entities from project-owned information and external-system records. A supported entity attribute may be enough for a value owned by an account or product. Small reference data may fit a supported custom-table capability. Relational project data may need its own database and authenticated API.

For a Znode-hosted target, plan to access Znode-owned data through the supported APIs and clients. Keep project database access behind server-side services. A browser, storefront component, or Page Builder widget should receive a defined contract, with authorization enforced at the server boundary.

Decisions to carry into the project plan
Legacy dependencyPlanning question
Direct core-database queryWhich supported API or entity capability provides the required behavior?
Custom relational tablesWho owns the data, its schema, its API, and its deployment?
Razor or jQuery interfaceWhich Next.js route, component, or Page Builder extension serves the workflow?
ERP job or order mappingDoes a supported connector fit, or does the workflow require a separate service?

Review one complete slice before expanding.

Choose a small but representative workflow that crosses the important boundaries. An account-specific purchase can exercise identity, account selection, catalog access, pricing, quantity rules, and the order handoff. Define expected results with sanitized examples that can be compared across implementations.

Plan the sequence around data readiness, integrations, configuration, storefront behavior, and operational procedures. Include logging, reconciliation, and a recovery route for exceptions. Keep rollback responsibilities and any data-transition constraints explicit so a release decision is based on the complete workflow.

Build the migration brief around decisions.

A useful roadmap states what the business will gain, which current behaviors remain necessary, and how the target architecture supports them. It should also identify the work needed to keep the existing environment dependable during the transition.

  1. Record the current Znode patch, application surfaces, jobs, integrations, and custom data stores.
  2. Map each customization to the business behavior and permissions it must preserve.
  3. Agree retain, rebuild, or retire decisions with the responsible business owners.
  4. Record the target SDK, hosting model, supported extension, and data owner for each retained behavior.
  5. Define representative acceptance scenarios, transition dependencies, and operational recovery responsibilities.
Download the planning checklist

Go deeper into the implementation.

Follow the version-specific technical guides and complete recipes behind these planning decisions.

Keep planning.

Discuss your Znode migration roadmap.

Bring the workflow, the systems involved, and the change you want to make. We can establish a useful starting scope together.

Discuss your Znode migration roadmap

Explore GCG Znode development services