All plugins
Commerce

Gelato

A paid order for printed goods becomes a Gelato order, keyed to your order ID

What it does

Gelato works from a lookup table you write. Each line maps one of your VeloCMS product IDs to a Gelato product variant ID. After a buyer completes payment, the plugin looks at every item in the order, drops anything digital or a license, and keeps the items it finds in that table. Those items, with their quantities and the buyer's shipping name, address, email and phone, are posted to Gelato's order API for the store ID you entered. Your VeloCMS order ID travels with the request as Gelato's order reference, and the Gelato order ID that comes back is saved on your order. The request goes out as a regular order the moment payment is confirmed. VeloCMS has no hold or approval step of its own.

Who it's for

Shops that already design products inside Gelato, such as posters, mugs, apparel or wall art, and want paid orders to reach Gelato without copying them across by hand. You will need access to your Gelato dashboard to fetch an API key, your store's UUID and the product variant IDs. Expect a one-time setup in JSON. Anyone hoping to browse and import Gelato products from inside VeloCMS will not find that here.

How it works

  1. Create an API key in your Gelato dashboard, then copy the UUID of the Gelato store your products live in.

  2. Enter both in the plugin, switch on Auto-fulfil orders on Gelato, and fill Variant mapping with pairs such as your product ID and the matching Gelato product variant ID. Save once; there is no separate connection test.

  3. A buyer pays for an order. VeloCMS runs the plugin, which stops early if the order contains nothing physical, the key or store ID is missing, the order is already marked as sent to Gelato, the shipping address is incomplete, or no item is in your table.

  4. Otherwise it posts the matched line items plus the delivery details to Gelato, with your VeloCMS order ID as the order reference.

  5. On success the Gelato order ID and the time are stored on your order and shown under Fulfillment providers on the order page. Each request to Gelato, accepted or refused, is also recorded on the Sync activity page.

Settings you configure

Auto-fulfil orders on Gelato
The master switch. Turning it off and saving also disables the plugin, so paid orders stop going to Gelato.
API Key
Created in Gelato under Settings, API, API Keys. Sent to Gelato in the X-API-KEY header. After saving, the field shows a placeholder instead of the key.
Store ID
The UUID of your Gelato store, typed by hand. Without it nothing is sent, because every order request names this store.
Variant mapping
A JSON object whose keys are VeloCMS product IDs and whose values are Gelato product variant IDs, both as text. Saving fails if the JSON is broken or is not an object.

What it can access

Only when an order is paid does the plugin look at it: the order ID, items and quantities, product types, buyer email, and the recipient's name, street address and phone number. It never touches posts, pages or your member list. The single outside host it contacts is api.gelato.com. Your API key is held encrypted in the plugin settings, while the store ID and variant table are kept as plain text since neither is secret.

Permissions

  • Match your order items to the Gelato products you mapped
  • Read order data after a paid purchase
  • Make network calls to api.gelato.com
  • Store your Gelato API key encrypted
  • Read your chosen Gelato store ID

External network access

This plugin makes requests to the following domains:

  • api.gelato.com

Capabilities

  • commerce:read
  • commerce:write
  • network:fetch
  • ui:settings
  • afterOrderCreate

Screenshots

Gelato admin settings form with an API key field and a variant mapping editor for print-on-demand fulfillment
Connect Gelato and map product variants for automatic print-on-demand fulfillment.

Honest limits

  • Map by product ID. The table accepts variant ID keys, but the order data handed to the plugin today carries only product IDs, so a key written as a VeloCMS variant ID is not matched.

  • There is no catalog import, store picker or connection test in the settings. You copy the store UUID and every Gelato product variant ID from Gelato yourself.

  • Items missing from the table are left out of the Gelato order without warning the buyer, and an order with no mapped items is not sent at all.

  • A missing name, street line, city, postal code or country stops the order from being sent. The skip is logged; nothing is guessed or filled in.

  • A failed call to Gelato, whether an error reply or a timeout, does not affect the sale. The error is logged and the Sync activity page shows a failed entry, but nothing resends it for you.

  • Information flows one way. Gelato order status, shipping costs and tracking numbers are not read back into VeloCMS.

  • Orders paid before you set the plugin up are never sent to Gelato.

Frequently asked questions

Can I sell digital downloads and Gelato prints in one cart?

Yes. Items marked digital or license are filtered out, and only the mapped physical items are posted to Gelato. A cart with nothing physical makes no call to Gelato.

What stops the same order reaching Gelato twice?

Two things. The plugin saves Gelato's order ID on your order and checks it before sending, and it passes your VeloCMS order ID as the order reference. A conflict reply from Gelato is treated as already sent.

Why did an order not show up in Gelato?

The usual causes are an item missing from Variant mapping, a mapping keyed by variant ID instead of product ID, an incomplete shipping address, or an error from Gelato. Each case is logged, and Gelato errors also appear on the Sync activity page.

Does it bring my Gelato products into VeloCMS?

No. Build each product in your VeloCMS store first, then link each one to its Gelato product variant ID in the mapping.

Specifications

Category
Commerce
Price
Included
Version
1.0.0
Source
First-party

Browse more integrations

58 free first-party integrations available.

View all integrations