Connect Gelato to Fondoo

publicLive4 min readUpdated

Gelato prints products on demand through a global network of print partners and ships them to your customers. This connection lets your AI agent browse Gelato's catalog, get price and shipping quotes, and create store products from your Gelato templates. With your approval, it can also place orders with Gelato. You need a Gelato API key, and for product creation, your Gelato store ID.

What Fondoo can do with it

Actions, used through connector_action:

  • Read: catalog.list (Gelato catalogs), catalog.get (a product by its product UID), shipping.rates (a Gelato order quote: prices and shipping methods), orders.get and tracking.get (order details, including shipment status).
  • Write: products.create: a product in your Gelato store, created from an existing template.
  • Money (owner approval for agents): orders.create.

Important: Gelato orders are real by default. In Gelato's order API, orderType is order unless you send draft. A normal order goes to production. A draft waits until you convert it in the Gelato dashboard. To create a draft, include "orderType": "draft" in the order data (create order). Always quote shipping before you order.

Fondoo's commerce tools also use the connection:

  • import_supplier_product: create a draft product in your Shopify or WooCommerce store from a Gelato product. Pass a supplierQuote with the real unit cost, shipping and a reference (for example the quote ID).
  • route_order_to_supplier: send a real store order to Gelato. Fondoo fills in shippingAddress from the store order and a stable orderReferenceId. You supply items (product UIDs, quantities and print files) in supplierData, matching the store order. Gelato also needs customerReferenceId and currency, so include them in supplierData. This always needs the owner's approval.
  • get_order_tracking: refresh tracking and give the customer a public tracking link.

Before you start

  • A Gelato account at gelato.com with permission to manage API keys. Only admins or users with that permission can (Gelato support).
  • A credit card or Gelato Wallet on the account, so orders can be paid (billing).
  • A Gelato store and product templates, if you want Fondoo to create products. Fondoo creates products from an existing template. It doesn't design them.

Step by step: get your credentials

  1. Sign in to the Gelato dashboard.
  2. In the left menu, open Developer → API Keys.
  3. Click Add API key, enter a name such as Fondoo, and click Create key.
  4. Copy the key now. Gelato won't show it again after you leave the page.
  5. For product creation, open your store's page in Gelato and copy the Store ID from the web address. Template IDs are on the Templates page.

Gelato API keys have no permission scopes. Fondoo sends the key in the X-API-KEY header.

What goes where:

Fondoo fieldWhat to paste
apiKeythe Gelato API key
storeIdoptional: your Gelato store ID. It's required for products.create

Connect it in Fondoo

In the dashboard

  1. Open Connections.
  2. Under Available, find Gelato (in the Suppliers group) and click Use a key.
  3. Click Open secure key entry (single use, expires after 15 minutes). Paste the key and store ID, then save.
  4. Click Check connection on the new card.

By asking your agent

Example prompt:

Connect my Gelato account. Send me a secure link for the API key, then quote shipping for one poster to Berlin.

The agent calls:

add_connection_key({ provider: "gelato", siteId: "<site id>" })   // secure paste link
test_connection({ connectionId: "<id>" })
connector_action({ connectionId: "<id>", action: "shipping.rates", input: { data: { ...quote request... } } })

For a help link only: connect_service({provider:"gelato", siteId}) (signed, valid 15 minutes).

Over REST: POST https://api.getfondoo.com/v1/ops/<operation> with Authorization: Bearer <your Fondoo API key> and the same JSON, for example POST /v1/ops/add_connection_key with {"provider":"gelato","siteId":"<site id>"}.

Test that it works

  1. Run test_connection. It reads Gelato's catalog list. A pass confirms the key works for catalog.list. Other actions show as "unknown" until used.
  2. Run catalog.get with a product UID.
  3. Get a quote with shipping.rates (Gelato's orders:quote). It needs a recipient, products with files, and a currency.
  4. If you must test ordering, create a draft ("orderType": "draft") and delete it in Gelato.

Troubleshooting

  • 401 Unauthorized. The key is wrong or was deleted. Create a new key and run rotate_connection_key.
  • Product creation fails or returns 404. storeId is missing or wrong, or the template ID doesn't exist in that store.
  • An order went to production when you wanted to test. Gelato's default orderType is order. Cancel it in the Gelato dashboard as soon as you can, and send "orderType": "draft" next time.
  • Order rejected for missing fields. Gelato requires orderReferenceId, customerReferenceId and currency. Fondoo sets the first. Put the other two in supplierData.
  • "POD items and quantities must match the imported supplier variants...". The items in supplierData must match the store order's products and quantities.
  • Rate limits. Gelato doesn't publish API rate limits. Fondoo keeps to 60 actions per minute. If you get 429 responses, slow down and retry.

Limits, data and security

  • What Fondoo stores: the API key, encrypted and never shown again. The store ID is stored as a plain identifier. Fondoo also keeps import mappings, routed order IDs and tracking status.
  • Rotate: create a new key under Developer → API Keys, run rotate_connection_key({connectionId}), then delete the old key.
  • Disconnect: delete_connection({connectionId}) removes the stored key (owner approval for agents). Then delete the key in Gelato.

Gelato's developer pages blocked automated access when this guide was written. The menu names and order fields above come from Gelato's support center and search copies of its docs. Check them against the live pages.