Improve conversion in Vtex

Customers who know instalments are available buy more often. Add Nelo's instalment message to your product pages, cart, and cart drawer from your theme editor in about five minutes.

Nelo's promotional messaging tells shoppers they can pay in installments before they reach checkout, which is where most of the conversion lift comes from. On Vtex you can have it running without writing any code: install the Nelo app, add three lines to your checkout file, and every message, price and campaign is served by Nelo from then on.

This page covers promotional messaging only. To accept Nelo as a payment method, see Vtex.

How it works

Once the widget is loaded, it renders in three places:

SurfaceWhat the shopper sees
Product pageA financing message near the add-to-cart button ("Paga a quincenas sin tarjeta…"), always calculated from the selected SKU's price.
Checkout, payment listThe Nelo option shows the current campaign label and the Nelo icon, the same way card brands are shown.
Checkout, payment stepWhen the shopper selects Nelo, an explainer card replaces the method's default text: how the installments work and how to repay (SPEI transfer or OXXO).

All copy, styling, prices and the icon are served by Nelo's backend. When a campaign changes, your store updates automatically — you never edit the text yourself.

product page message

checkout payment step

Before you start

You need:

  • Your publishable key, issued by Nelo during onboarding. It is public by design (it appears in your page source) and only grants access to promotional content — it cannot move money or read orders.
  • A developer with Vtex admin access, and the Vtex CLI installed (npm install -g vtex) for the app path.
  • To know your storefront type.
    • Right-click a product image and copy its address: *.vtexassets.comStore Framework; *.vteximg.com.brlegacy CMS portal.
    • Or open your store, right-click, View Page Source and search:
      • __RUNTIME__ or vtex.render-runtimeStore Framework
      • skuJson on a product page and neither of the above → legacy CMS portal
    • Or, with the Vtex CLI:
      • vtex edition get — returns the account's Edition App; a name containing edition-store indicates Store Framework, a business edition indicates otherwise.
      • vtex ls on master — an installed theme app (<account>.store-theme or vtex.store-theme) means the storefront is Store Framework.

Installation

Product pages and checkout are installed separately, because Vtex checkout runs outside Store Framework. Do both:

  1. Product page setup — install the app, or add the loader to your theme or CMS template.
  2. Checkout setup — add the loader to checkout6-custom.js.

Then validate with the checklist below.

Validate

On your workspace URL if you tested first, otherwise on your store.

Product page

  1. Open any product page — the Nelo message appears near the add-to-cart button.
  2. Change size or color — the message stays consistent with the selected SKU.

Checkout

  1. Add a product, go to checkout and reach the payment step.
  2. The Nelo row in the payment list shows the campaign label and the Nelo icon.
  3. Select Nelo — the explainer card replaces the method's default text.
  4. Select another method — its pane renders normally, with no Nelo content left behind.
  5. Select Nelo again — the card is back, and stays correct after cart changes such as a different shipping option.
  6. Place a real test order with Nelo. This is the one check not to skip: messaging must never interfere with order placement.

Troubleshooting

Open DevTools (F12) → Network and filter by nelo.

SymptomWhat it means
No js.nelo.co script on the pageThe loader is missing on that surface: the key is not saved (product pages) or the checkout snippet was not added.
Script loads, no promotional-messages requestsProduct page: placement is still waiting for the page to settle, or something blocked the request — reload once. Checkout: a single request at page load is normal; the card renders only when Nelo is selected.
Requests return 401Wrong or missing key. Re-check it everywhere it was pasted, and in the admin of the exact workspace you are testing.
Uncaught SyntaxError: Unexpected token '<'<script> tags were pasted into checkout6-custom.js. Remove them and keep raw JavaScript.
The message appears below other financing widgets, then jumps above themExpected behavior — see Product page setup. Place the block for a fixed position.
The message stays below the other financing widgetsAlso expected on some themes, for the reason described on that page. Place the block for a fixed position.
The payment row shows only "Nelo", or the icon is missingBoth come from the backend response. With no active campaign, your platform default label stays — this is not an error.
Copy looks oddly worded or translatedBrowser auto-translate is on. The widget serves Spanish copy; turn the translator off.

Good to know

  • Your publishable key is safe in page source. It only authorizes promotional content requests.
  • Nothing blocks checkout. Promotional messaging is presentational: if Nelo's service is unreachable, the message simply does not render and your checkout behaves exactly as before.