We have been analyzing the NCR Retail Online (NRO) business and our NCR Industry Solutions Board, an internal team that helps set strategy, has decided to set the NRO product to End of Life on March 31, 2018 . The CPOnline Product was also recently announced with an end of life date of September 30th, 2017 . The End of Life terms indicate that all current customers will need to be transitioned off their respective product and the servers turned off by 9/30/17 (CPO) & 3/31/18 (NRO) . Your NCR Counterpoint business partner has been notified of this decision in advance and has started taking steps to help you transition your eCommerce solution.

Next Steps

As of today, we are encouraging all customers to reach out to your current NCR Counterpoint Partner to begin the transition to a new eCommerce platform. Your partner will be your best resource in planning and transitioning to a new eCommerce solution.

NCR has worked with several partners to create options for your new eCommerce solution. Please refer to the below chart for information about these options. Your partner can provide you with further documentation about these solutions to assist you with the decision process. You can also view a list of FAQ’s about moving from NRO to one of the below options by clicking here .

We will be discussing this transition directly with the users that attend our Synergy User Conference at the end of June. We will be offering a presentation on eCommerce and we will have representatives at the exhibit booth to handle your questions. In the meantime, please reach out to your partner to help determine your next steps.

We appreciate your business and look forward to taking this next, innovative step together.

Recommended eCommerce Solutions

Solution Cost Platform Additional Notes
Commerce5
  • Upfront: Starts at $2500**
  • Monthly: Starts at $495.00 plus hosting
Magento Most tightly integrated with Counterpoint and offers the most advanced features
CP Magento
  • Upfront: Starts at $2,500**
  • Monthly: Starts at $200.00 including hosting
Magento Integrated with Counterpoint and offers features similar to NRO
CP Shop
  • Upfront: Starts at $999**
  • Monthly: Starts at $125.00 plus hosting
Woo Commerce Catalog, Inventory, and Orders are integrated with Counterpoint

Recreating NCR Batch Discount Codes with Expiration and Usage Limits

NCR Retail Online’s discontinued ecommerce platform allowed retailers to connect online selling with inventory and business systems, including promotional workflows. Recreating NCR batch discount codes requires more than generating several codes: the replacement must preserve a campaign’s shared rules, enforce expiration consistently and count usage without overselling the intended limit.

The safest approach is to separate each code from the discount itself. A batch defines the offer and its boundaries, while every code acts as a unique credential into that offer. This makes it possible to move from NCR Retail Online to Magento, WooCommerce or another stack without changing the customer-facing proposition or losing the audit trail behind each redemption.

Local implementation matters in Australia. A campaign ending at midnight can mean different things in Sydney, Brisbane and Perth, while GST-inclusive prices and buy-now-pay-later repayments add checkout constraints. Define business time centrally, calculate totals on the server and test the exact expiry minute rather than relying on browser clocks.

Understanding the original promotion model

A batch should behave as one promotion containing many unique codes. The parent record holds the discount type, eligible products, minimum spend, start and end times, maximum discount and usage caps. Individual records inherit those settings and add only a code, status and redemption history, allowing merchants to reason about every change as a single rule set.

Common rules need precise definitions. Does a cap apply per code, per customer across the batch or across every code combined? Is a redemption counted when an order is placed, when payment settles or only when the parcel ships? Can a customer use two codes from the same batch on one order? These answers belong in the data model because a code generator cannot resolve ambiguous outcomes.

Because NCR Retail Online is no longer available, migration messaging should state what happens to active codes, their expiry and any unused allowance. NCR’s advice on announcing platform migrations provides a useful reference for that transition. Australian shoppers commonly ask, “Does the code stack?” and “Is it the final sale?”, so support and checkout copy should answer both plainly.

Translating campaigns into configurable data

Represent each promotion as structured data rather than embedding rules in coupon labels. Useful campaign fields include the internal identifier, status, start and expiry timestamps, discount type, value, minimum subtotal, maximum discount, eligible products, stacking policy, customer limit and batch-wide limit. Store every timestamp in UTC while retaining the campaign’s chosen Australian business timezone for display.

Each code should reference its campaign and contain a normalised identifier, display form, status and redemption ledger. Historical codes need an explicit migration state, such as active, expired, exhausted or disabled, so operators can distinguish a spent code from one invalidated during the platform move. If codes contain enough randomness, store a keyed hash; otherwise, use an indexed value and strict attempt limits.

The surrounding content must move with the promotion rules. When legacy campaign pages also need transferring, content migration guidance can help preserve metadata, redirects and search visibility. Teams rebuilding a broader storefront can also draw on Arab Technology for additional implementation support around integrations and migration work.

Enforcing expiry and usage limits

Perform all eligibility checks on the server using its authoritative clock. Treat the start instant as inclusive and the expiry instant as exclusive: a code is valid when the current time is at or after its start and strictly before its expiry. A customer-facing timer is helpful, but it is only a progress indicator and never the enforcement point.

Counting usage requires atomic operations. A vulnerable implementation reads the number of redemptions, decides there is room and then inserts a new redemption, allowing two simultaneous checkouts to exceed the cap. Instead, update the campaign or code counter within a database transaction and reject the update when the limit has been reached. Idempotency keys should prevent a repeated payment callback from creating a second redemption.

Choose a reservation model deliberately. A typical flow reserves capacity when checkout begins, converts the reservation when the order reaches the specified fulfilment state and releases it if the reservation expires or the order is cancelled. This avoids abandoned shopping carts permanently consuming an allowance. The conversion threshold should match the retailer’s policy, whether that means order placement, payment confirmation or dispatch.

Comparing implementation approaches

The practical choice is whether shared usage rules justify a custom promotion layer beyond the platform’s standard coupon tools.

Approach Best fit Main limitation
Native platform coupons Straightforward percentage or fixed-value offers Shared limits and cross-code rules require extra work
Custom promotion service Complex batches, shared caps and detailed reporting Higher development and maintenance ownership
Hybrid extension Native discounts with a dedicated code and usage service More integration points and testing
Database-backed custom module Full control over expiry, reservations and audit history Requires disciplined engineering and monitoring

Native Magento or WooCommerce coupon features can handle ordinary discounts efficiently. A hybrid design often works best: let the platform calculate the order, while a small service owns code validation, atomic reservations and campaign reporting. This keeps checkout integrations familiar without weakening business controls.

Consider the operating model as well as the code. Retail teams in Melbourne and Sydney may manage campaigns centrally while stores in regional areas need clear reporting. Click-and-collect orders should use the same discount rules as shipped orders, but fulfilment availability must remain separate from promotional eligibility.

Protecting checkout and customer data

Treat every submitted code as untrusted input. Normalise it consistently, use parameterised queries, rate-limit repeated failures and avoid logging raw codes or exposing whether a particular code exists. Recalculate the discount, tax and delivery charges on the server after applying the code; never accept a client-supplied discount amount.

For GST-registered Australian retailers, consumer prices are generally displayed GST-inclusive in AUD. A fixed-value discount must reduce the taxable proportion correctly, and refunds should restore the associated GST rather than treating the discount as a tax-free payment. The same total must be used for gift cards and instalment providers such as Afterpay or Klarna, with the discount visible before the customer selects a repayment schedule.

Staff access should also follow least privilege. Store employees may need to inspect a campaign or extend a limit, but sensitive changes should require appropriate approval and an audit record. Internal tools can borrow the usability of mobile self-service design, giving authorised staff a simple way to review campaign status without exposing broad administrative access.

Verifying behaviour before launch

Functional testing should cover the boundaries rather than only successful discounts. Concurrent requests, repeated checkouts and expired sessions often expose the errors that ordinary manual testing misses.

The functional checks are:

  • An expired code is rejected at the exact boundary.
  • A shared cap holds during parallel checkouts.
  • The customer limit covers all codes in one batch.
  • Stacking rules produce the configured final total.

Operational checks should cover the surrounding order lifecycle and the channels used by Australian customers. Seasonal material such as Christmas gift promotions provides realistic scenarios because gift wrapping, delivery deadlines and demand spikes can all affect redemption behaviour.

The operational checks are:

  • A repeated payment callback records one redemption.
  • Cancelled orders release reservations according to policy.
  • Click-and-collect and shipped orders receive equal discounts.
  • Instalment amounts reflect the discounted checkout total.

Run tests against a production-like staging environment with the same database types, payment sandbox and extension versions planned for launch. Record the campaign configuration, expected totals and resulting redemption entries for each scenario, then repeat the suite after migration or configuration changes.

Launching with confidence in Australia

Begin with a limited campaign that uses fixed and percentage discounts, separate expiry times and both shared and per-customer caps. Monitor redemption attempts, rejected codes, reservation releases and order adjustments during the first trading period. Australian daylight-saving changes are a frequent source of confusion, so publish the expiry timezone plainly and keep AEST and AEDT conversions out of manual administration.

Create one signed-off test batch containing a percentage code, a fixed-value code, an expired code and a shared-cap code, then run it through a complete test order before scheduling the production launch.

After you have completed your move to a new eCommerce platform, don’t forget to submit the Store Closure Request form to close your NRO site and cancel your billing subscription.