Theme Engine - Novum theme is available for customization 🎨

What's new?

All PRO ReCharge merchants using the Theme Engine can now select the brand new Novum theme from the "Themes to use" list, and fully customize Novum to better suit the store's branding, needs, and desired features.

What is Novum?

Novum is the first theme to be released for the Customer Portal. It was designed to take your Customer Portal to the next level with the following features:

  • Improved design and user experience (UX)
  • Mobile-first 
  • Order now 
  • One-time product purchases
  • Cross-sell opportunities
  • Enhanced retention strategies

What are the benefits of Novum on Theme Engine?

You have full control over the Novum theme files which allow you to modify every line of code. You also have the option to build more complex customizations that match your business needs and customer experience.

Where can I learn more?

For more information about ReCharge's Theme Engine, please see our Theme Engine support documentation.


Enhancements & Updates

Enhancements 

  • Added an option to remove discounts from customer addresses after discount limit has been reached (located in Customer Portal settings)
  • Added a line in the Order Summary product description that shows the number of charges in a subscription (e.g. "Expires after 12 charges"). Language for this message can be edited in the Translation section.
  • Enhanced validation for provinces outside US and Canada
  • Implemented improved handling of concurrent checkouts when the same discount is being applied


Theme Engine 

Bulk Subscriptions 

  • Ability to create multiple subscriptions with a single request
  • Ability to update multiple subscriptions with a single request. For example:
    • next_charge_scheduled_at
    • order_interval_unit , order_interval_frequency, charge_interval_frequency
  • Ability to cancel multiple subscriptions with a single request
  • Ability to re-activate multiple subscription with a single request

Bulk subscription documentation

Performance Improvements

  • Made significant performance improvements that resulted in customer portals on the theme engine to load pages 20-50+% faster.


API

  • Added channel_settings to Discounts API for creating channel-specific discounts
  • Added is_prepaid property to the Subscriptions API to indicate prepaid subscriptions
  • Fixed a bug where shipping rate source override may fail when using Checkout API
  • Added improved handling of authorize.net timeout errors when creating customers with authorize.net tokens using the ReCharge Customers API. (edited) 


Fix 

  • Fixed a bug where percentage-based discount values may vary between ReCharge and Shopify
  • Fixed a bug where Canadian tax on freight may be missing when using third party tax determination
  • Fixed a bug where product searches may fail when they contain a space


February 10 Updates

enhancement

Translations

  • Added Account Login to translations for the Customer Portal

Apple Pay

  • Added ability to display white Apple Pay button on checkout using CSS. In the CSS editor of the Checkout settings page include the following:

    .apple-pay-button {
    background-color: white !important;
    }

Integrations

  • Added NoFraud
  • Added version 2 of LittleData

Theme Engine v2
  • Ability to download themes

  • Ability to import/upload themes with zip file

fix
  • Google Address Autocomplete - Fixed bug that wasn't populating the city field when a UK address was selected
  • Checkout - Fixed bug that caused the product summary on page 2 to be blank when the customer's email address was left blank on page 1
  • Merchant Portal - Fixed bug that didn't allow subscriptions be created with the hidden Shopify product

Nov. 25 - Dec. 6 Updates

enhancement
  • Apple Pay on Braintree: Now available when a store doesn't have a custom checkout domain
  • PayPal: Ability to set translation on checkout for "Click here"
  • Apple Pay: Ability to set translation on checkout for "Payment Options"

fix
  • Apple Pay on Stripe: Fixed a bug when using Apple Pay during checkout

APINewFeature

Products API

  • New create (POST) product endpoint
  • New update (PUT) product endpoint
  • New delete (DELETE) product endpoint
  • Fixed bug that the order_interval_unit was being retrieved from the ruleset instead of the product. It is now fixed to retrieve the order_interval_unit from the product record.

    Link to Products API docs

Checkout API

  • Fixed bug that the discount code was not being displayed on the Checkout UI when the checkout was created using the Checkout API and then the customer redirected to the Checkout UI to complete the checkout. Now the discount code is displayed when applied via the Checkout API.

Subscriptions API

  • Fixed bug that caused charge regeneration to be delayed when cancelling subscriptions via the POST /subscriptions/<id>/cancel endpoint. Now charge regeneration is triggered immediately when cancelling a subscription unless the commit_update is set to false.

Theme Engine v2
  • Updated shipping_countries response to return all countries instead of being defaulted to a limit of 50 countries and paginated
  • Fixed a bug that was setting the expire_after_specific_number_of_charges field to null on new subscriptions that were added through the Theme Engine customer portal when the default value for the product was an integer (e.g. 6, 12). Now new subscriptions will inherit the default value from the product record. To implement this functionality you'll need to generate a new theme or update your existing subscription_new.html file (see image below for updates).

    {% if subscription_defaults.expire_after_specific_number_of_charges %}

    {% endif %}

  • Added ability to delay a subscription as a retention strategy when a customer is cancelling their subscription. To implement this functionality you'll need to generate a new theme or update your existing subscription_retention_strategy.html file (see image below for updates).

Nov. 11-22 Updates

fix

Checkout

  • Fixed bug that allowed prepaid cards on checkout when "Allow prepaid cards" was unchecked on the Checkout settings page.
  • Fixed Apple Pay with Braintree bug that only requested customer phone number when required for shipping details and not if billing details was requesting the field. It now requests customer phone when required for either billing or shipping details.

Merchant Portal

  • Fixed bug that was incorrectly identifying certain customers as not having a valid payment method.
  • Fixed bug that calculated incorrectly the number of active subscriptions for certain customers.

Customer Portal

  • Theme Engine v1 & v2 - Fix bug that didn't display an AVS error message to customers that their billing zip code was incorrect when updating their credit card.

3D Secure 2 & European SCA regulation

  • Updated the help text on the re-authentication page to provide additional clarity for the customer when they aren't impacted by the European SCA regulation but their bank flag their account for 3D Secure 2 authentication.

API

Checkout API

  • first_name for billing and shipping address is now optional (not required)

Address API

  • first_name is now optional (not required)

Customer API

  • cardholder_name field has been added to the payment_sources response

Theme Engine v2

Payment sources

  • cardholder_name field has been added to the payment_sources response
  • When a customer updates their credit card then the cardholder_name is saved

Template Update - products_search.html

  • [FIX] When a client is attempting to swap a product the URL directs a customers to adding new product instead of swapping. This template update fixes so that the customer continues the swap workflow.
  • Removed from products_search.html template

    {% if 'preview_theme' | url_param %}
    {% set search_form_action_url = search_form_action_url + '?preview_theme=' + 'preview_theme' | url_param %}
    {% endif %}
  • Added to products_search.html template

    {% if 'preview_theme' | url_param %}

    {% endif %}

Template Update - products_search_swap.html

  • [FIX] When a client is attempting to swap a product the URL directs a customers to adding new product instead of swapping. This template update fixes so that the customer continues the swap workflow.
  • Removed from products_search_swap.html template

    {% if 'preview_theme' | url_param %}
    {% set search_form_action_url = search_form_action_url + '?preview_theme=' + 'preview_theme' | url_param %}
    {% endif %}
  • Added to products_search_swap.html template

    {% if 'preview_theme' | url_param %}

    {% endif %}

Integrations

Oct. 28 - Nov. 8 Updates

Feature

Webhooks

  • New checkout/processed webhook that will be trigged when a checkout is processed via the normal checkout flow or the API. This is replacing the checkout/completed webhook which will be deprecated.

enhancement

Checkout

  • Added provinces for the country of Chile when selecting shipping address province

Bulk Discount Uploader

  • Added error message when uploading discounts that already exist

fix

Customer Portal

  • Fixed error when Braintree kount fraud tool is enabled and customer is updating credit card information
  • Display proper error message in the Customer Portal when a customer is attempting to re-activate a cancelled subscription that has a variant that no longer exists

Merchant Portal

  • Fixed shipping address country drop-down field so that it displays all of the countries

API

Checkout API

  • Removed checkout object from the request body of Create and Update endpoints
  • Removed checkout_charge object from the request body of Process checkout endpoint
  • Allow title and variant_title to be null in the line_items object
  • Added ability to bypass UPS validation for shipping addresses in the United States
  • GET shipping_rates endpoint - In the event Shopify returns of 5xx error when retrieving shipping rates, the error message has been updated to a 4xx error that there was an error with Shopify and to try again later instead of a 5xx error.
  • Updated the note_attributes field to be an array of dictionary objects instead of a single dictionary object
  • When a prepaid card is being used and the merchant doesn't allow prepaid cards then the error has been updated to a 422 error stating prepaid cards are not allowed instead of a 500 error
  • Fixed discount being applied twice when a checkout with a discount code is started via the API then the customer is redirect to the checkout billing information page

Products API

  • Add modifiable_properties and handle fields to the response body for GET product and GET products endpoints

Theme Engine v2
  • Added product data object to the subscription_retention_strategy.html template
  • On the schedule.html page, fixed a validation error when trying to save {{ order.charge.billing_address }} or {{ order.charge.shipping_address }}. Now the page can be saved with the data attributes without causing a validation error.

Sep. 30 - Oct. 11 Updates

enhancement

Braintree/PayPal

  • Added shipping address to Braintree and PayPal transactions

Webhooks

  • New architecture released to send all outbound webhooks

fix
  • Fixed 3D Secure 2 re-authentication page to display the last 4 digits of a customer's credit card
  • Fixed PayPal error that requires US states codes to be 2 characters

Merchant Portal

  • Fixed "Cancel subscription & stop retrying" button
  • Fixed customer names with special characters to display properly
  • Fixed display of currency to store's currency on the create new discount page
  • Fixed the toggle switches to save the selected setting in the "Additional settings" section of the "Notification settings" page

API

Checkout API

  • Updated Process checkout endpoint to handle Stripe's Payment Method tokens
  • Fixed bug that didn't create an order if the checkout only contained a single onetime product
  • Added external_checkout_id and external_checkout_source fields for the Create and Update endpoints

Theme Engine v2
  • Added ability to pass the commit_update field and set to false on subscription update to delay charge regen
  • Fixed shopify_details data not being appended to the product data object when a collection_id is not set on the product

Integrations
  • Ability to remove the Zapier integration