Mercado Framer turns your Framer site into a store. You add products in a web dashboard, sync them to the CMS to design with, and buyers pay through Mercado Pago Checkout Pro. The money goes straight to your account.
Price, stock, images and files are edited on the web, not in the CMS.
Server-checked payments
The server prices every order from the dashboard. Nobody can change the amount from the browser.
Physical and digital
Shipping through Mercado Envíos and private downloads after payment.
For AI agents
Use these docs with your agent
Working with Claude, ChatGPT, Cursor or another agent? Copy this prompt and paste it at the start of the conversation. It explains how Mercado Framer works (concepts, components, CMS fields, common mistakes) so the agent helps you without guessing.
Give your agent context
Context prompt · Markdown · 130 lines
# Mercado Framer: context for agents
You're helping someone who sells (or wants to sell) on their Framer site with **Mercado Framer**. Treat this document as the source of truth. If something isn't covered here, say so instead of guessing, and point to the docs: https://mercadoframer.com/docs?lang=en
## What it is
Mercado Framer lets a Framer site take payments with Mercado Pago Checkout Pro, without code. It has three parts:
1. **Web dashboard** (https://mercadoframer.com/dashboard): products are created and edited here, and orders, customers and settings live here. It's the source of truth for the catalog.
2. **Framer plugin** (Mercado Framer): connects the Mercado Pago account, creates and syncs the “Productos” CMS collection, and inserts the storefront components into the project.
3. **Storefront components**: code components (files named “MP …”) that run on the published site: buy buttons, cart, price, gallery, etc.
Every sale goes straight to the seller's Mercado Pago account. Each connected Framer project is one store.
## Key rules
- Products are created and edited **only in the dashboard**, never in the Framer CMS.
- “Productos” is a plugin-managed collection that mirrors the dashboard. Any manual edit (items or new fields) is overwritten on the next Sync.
- **Price and stock are checked live at checkout.** The server re-totals with the dashboard's prices and checks stock and status. CMS values are for display and design: a sale never depends on syncing.
- After changing products in the dashboard, press **Sync** on the collection (or “Sync now” in the plugin) and **publish** the site so the published CMS updates.
- Connecting Mercado Pago is always done by the person, in the plugin, through Mercado Pago's official authorization. Never ask for or handle passwords, tokens, keys or card details.
- Digital product files are private: they never go in the CMS or on a page.
## Flow
Dashboard (products) → Sync → “Productos” CMS collection → Framer pages with the components → the buyer pays on Mercado Pago → returns to the thank-you page → once approved, stock goes down, emails go out and downloads unlock.
## The dashboard
- Sign in: from the plugin (Home or Products tab → “Manage products”) or at https://mercadoframer.com/login with “Sign in with Mercado Pago” (the same account as the plugin; shows all its stores, session lasts 30 days) or with an email link.
- Product fields:
- Name (required).
- Description: plain text; paragraphs separated by a blank line.
- Images: the first is the main image. JPG, PNG, WebP or GIF; up to 20.
- Price and Compare-at price: when compare-at is higher, it shows struck through with the % off.
- Stock: with “Track stock” it goes down on every approved sale; untracked means no limit.
- Status: Active (visible and buyable) or Draft (hidden, not buyable).
- Type: Physical (weight in g and size “height x width x length” in cm, for Mercado Envíos) or Digital (a file up to 50 MB).
- Slug: the product URL ends in /slug; unique within the store.
- Archiving removes the product from the store, and from the collection on the next Sync. Past orders keep it.
- Sections: Overview (30 days, best sellers, products with 5 units or fewer), Orders (every checkout: Approved, Pending, In process, Rejected, Cancelled, Refunded), Customers (buyers with an approved payment) and Settings (currency ARS, BRL, MXN, CLP, COP, PEN or UYU; digital delivery by email and/or on the thank-you page, at least one; Mercado Envíos; platform fee).
## The “Productos” collection
- The plugin creates it: Products tab → “Create collection & sync” (if the name is taken, it's “Productos 2”). After that it updates with the collection's **Sync** button in the CMS.
- One item per non-archived product. Drafts arrive as CMS drafts (not published). The item slug is the product slug.
- Images uploaded to the dashboard are moved to Framer on sync.
- Field IDs (stable; display names follow the plugin's language):
| id | display name | type | content |
|---|---|---|---|
| `title` | Name | text | product name |
| `price` | Price | number | current price |
| `compareAtPrice` | Compare-at price | number | 0 if none |
| `discount` | Discount % | number | rounded %; 0 if none |
| `description` | Description | formatted text | paragraphs |
| `image` | Image | image | main image |
| `gallery` | Gallery | image list | all images, in order |
| `stock` | Stock | number | units; 0 if stock isn't tracked |
| `inStock` | In stock | yes/no | yes if units are left or stock isn't tracked |
| `tracksStock` | Tracks stock | yes/no | stock is limited |
| `isDigital` | Digital | yes/no | digital product |
| `productId` | Product ID | text | the product's public ID |
| `weight` | Weight (g) | number | 0 if not set |
| `dimensions` | Size (cm) | text | “height x width x length” |
## Storefront components
Added from the plugin's **Components** tab: one at a time (Product, Cart and Checkout sections → “Add”) or as blocks from **Pages** (“Product detail”, “Buy box” and “Thank-you page”, built on the open page). Each creates a code file in the project already wired to the store and styled with the **Style** tab. Don't edit those files' code or replace them with your own components; to update them, Components has a ↻ button on each and “Update all”.
Shared behaviour:
- On a detail page, product components detect the product from the **last part of the URL** (the slug) and read price, stock and images live. That's why they go on the “Productos” detail page (for example /shop/:slug).
- Price properties at 0 and images empty = live automatic detection. Bind them to CMS fields only in listings (Collection List), where the URL doesn't identify a product.
- On the canvas they show a real product from the store (or a sample). Cart, payment result, stock badge and variant selector have a Preview property (canvas only) to design each state.
- All of them have a Language property (English / Español).
| File | What it does | Key properties |
|---|---|---|
| MP Add to Cart / MP Buy Now | Buy button (same component, different Action). Adds to the cart without exceeding stock, or goes straight to Mercado Pago asking for the buyer's email. Reads “Out of stock” or, if the product isn't found, “Unavailable”. | Action (Add to cart / Buy now / Both), Return page, Email (On click / Always), Quantity, Show stock, Low stock at, Product ID + Title/Price/Image (empty = from URL), Cart label, Buy label, appearance |
| MP Product Gallery | Main image, thumbnails and full screen (keyboard, swipe, Esc) | Image 1–4 (empty = product images), Fit, Ratio, Thumbnails, Lightbox, appearance |
| MP Price | Price in the store currency's format; shows nothing if the product isn't found | Price (0 = live), Currency (empty = store's, even with Price bound), Show ($ 1,990 / ARS 1,990 / number), Language (format), Color, Font |
| MP Compare-at Price | Struck-through compare-at price; hidden when there's no discount | Compare at (0 = live), Currency, Show, Strikethrough, Hide if empty |
| MP Discount Badge | “{n}% OFF” pill; hidden at 0% | Percent (0 = automatic; in listings ← `discount`), Price, Compare at, Label, Hide if 0%, Style (Solid / Soft) |
| MP Stock Badge | “In stock”, “Only N left” or “Out of stock”, live | Low stock at, Untracked (In stock / Hide), Style (Dot / Pill), per-state labels, colors |
| MP Variant Selector | Options dropdown or pills (size, color). The option travels to the cart and order as text; it doesn't change price or stock | Options (comma-separated; default S, M, L), Style (Dropdown / Pills), Label, Placeholder, appearance |
| MP Quantity Selector | − / + capped at stock | Style (Split / Joined), appearance |
| MP Cart | A button with the item count that opens the cart (items, subtotal, email and “Checkout with Mercado Pago”). The cart lives in the buyer's browser | Trigger (Floating = fixed to a corner / Inline = an icon, e.g. in the navbar), Opens as (Drawer / Popover), Side, Return page, Open on add, Hide if empty, appearance |
| MP Checkout Result | On the thank-you page: reads the order from the URL and shows the outcome with order number and total (approved, processing, not completed, refunded, not found). When approved it empties the cart and shows downloads (if enabled); otherwise the items stay in the cart; while processing it refreshes itself | Store link (“Back to the store” button), Link label, Align, appearance |
Notes:
- Quantity and variant connect to the button on the same page automatically.
- Return page (buttons and cart): the thank-you page path, for example /thank-you. Empty, the buyer returns to the same page. Mercado Pago adds the order to the URL on return.
- The collection has no variants field: Variant Selector options are typed into the property and are the same for every product on that page. Without variants, don't use it.
- Buy button in a listing: bind Product ID ← `productId` and Title, Price, Image ← `title`, `price`, `image` so the cart can show them. Checkout always charges the dashboard price.
- The cart's Currency only applies to older items: new items use the store currency.
## Store structure
1. **Listing** (/shop): a Collection List of “Productos”. Per card: `image`, `title`, price (`price`), badge (MP Discount Badge with Percent ← `discount`), an “Out of stock” label visible when `inStock` is false, and a link to the item's detail page (optional: MP Add to Cart with Product ID ← `productId`).
2. **Detail** (/shop/:slug, the “Productos” CMS detail page): MP Product Gallery, `title`, MP Price, MP Compare-at Price, MP Discount Badge, MP Stock Badge, MP Variant Selector (optional), MP Quantity Selector, MP Add to Cart and/or MP Buy Now, and `description` in a formatted text. Automatic values at 0 or empty.
3. **Thank you** (/thank-you): MP Checkout Result with Store link = /shop.
4. **Cart**: MP Cart once, on a shared element (Trigger Inline inside the navbar, or Floating in a footer or layout). The “Product detail” block in Components → Pages adds one too: keep just one.
Return page for buttons and cart → /thank-you.
## Digital products
A private file (up to 50 MB) uploaded in the dashboard. Once the payment is approved, the buyer gets download links by email and/or on the thank-you page (Settings → Digital delivery). Links are per order and expire (email links after 30 days). No shipping.
## Shipping (Mercado Envíos)
Optional: Settings → Shipping, with Mercado Envíos enabled on the Mercado Pago account. Each physical product needs weight (g) and size (cm, for example 10x20x30); when missing, 500 g and 10 × 10 × 10 cm are used. Mercado Pago asks for the address and quotes at checkout. If it rejects shipping for that account, checkout continues without it.
## Stock
Goes down when the payment is approved. Checkout checks there's enough when it starts. Sales update the dashboard instantly; the CMS `stock` and `inStock` change on the next Sync (the detail page always shows the live value).
## Common mistakes
- Product components outside the detail page: they can't find the product.
- Detail URL with an old slug (changed in the dashboard, not synced).
- Price bound on the detail page: it shows the CMS value instead of the live one. Leave it at 0.
- Empty Return page: the buyer lands back on the product page and never sees the result.
- Opening /thank-you directly: shows “Order not found”. Normal without an order in the URL.
- Syncing without publishing: the site keeps showing the previous CMS.
- Editing “Productos” by hand or adding fields: overwritten on Sync.
- Building custom payment components: always use the plugin's.
## Troubleshooting
- Button reads “Unavailable” or the price is empty: on the “Productos” detail page? product Active? current slug? synced and published?
- Old price on the site: Sync and publish. Checkout already charges the new price.
- Images not uploading on Sync: run Sync again.
- Payment “processing”: wait for Mercado Pago to confirm; the order updates on its own.
- Can't insert components: the Framer plan or mode doesn't allow code components, or edit access is missing.
- Email not received: check spam and Settings → Digital delivery.
## Mercado Framer MCP (optional)
If the person connected the Mercado Framer MCP (key created in the dashboard → Settings → AI agents), you have tools for their store: `get_store`, `list_products`, `get_product`, `create_product`, `update_product`, `bulk_update_products`, `duplicate_product`, `archive_products` and, if the key allows it, `list_orders`, `get_order`, `list_customers`, `sales_overview`. Create products as drafts, ask before activating or archiving, and remember they need Sync on “Productos” and a publish afterwards. Digital files are uploaded only from the dashboard.
## Don't
- Don't ask for or handle credentials, tokens, passwords or payment details.
- Don't invent properties, fields or steps that aren't here.
- Don't publish the site without the person's confirmation.
Paste it as is, at the start of the conversation. It contains nothing private about your store, so it's safe to share.
How it works
Mercado Framer has three parts: the dashboard, where your products, orders and settings live; the Framer plugin, which connects Mercado Pago, creates the “Productos” collection and inserts the components; and the storefront components, which run on your published site.
From your dashboard to a paid order
Catalog
DashboardYou create and edit productsSource of truth
SyncThe plugin copies the catalog
CMS “Productos”You design with its fields
You publish the site
Sale
Your siteBuy buttons and cart
Mercado PagoCheckout Pro takes payment
OrderStock, emails and downloads
At checkout the server reads price, stock and status straight from the dashboard. A sale never depends on Sync.
What happens in a purchase
1The buyer adds products to the cart (or taps Buy now) and types their email.
2The server totals the order with the dashboard's prices, checks stock and creates the order.
3Mercado Pago charges with your account's payment methods: cards, account money, installments and more.
4The buyer returns to your thank-you page, which confirms the payment result.
5Once the payment is approved, stock goes down, emails go out and downloads unlock.
Get started in 5 minutes
From an empty project to your first sale. You need a Framer project and a Mercado Pago account that can receive payments.
1
Open the plugin
In your Framer project, open Mercado Framer from the Plugins panel or from the Framer Marketplace. It runs inside Framer: there's nothing to install.
2
Connect Mercado Pago
Tap Connect Mercado Pago and authorize with your seller account, the one that receives the money. A Mercado Pago tab opens; when you finish, the plugin connects on its own. Each Framer project is one store.
3
Add your products
In the plugin's Products tab, tap Manage products. The dashboard opens, already signed in. Create each product with a name, price, images, stock and, if it's digital, the file.
4
Create the “Productos” collection
Back in the plugin → Products → Create collection & sync. A collection managed by Mercado Framer appears in your CMS, with all your products.
5
Build the pages
Create the “Productos” detail page (for example /shop/:slug), open it and in the plugin use Components → Pages → Product detail to insert the gallery, prices, stock, variants, quantity, buttons and cart in one go. Add a listing and a thank-you page: see Store pages.
6
Set the return page
On the cart and the Buy now button, set Return page to your thank-you page, for example /thank-you. The Payment Result component goes there, with Store link pointing to your listing.
7
Publish and test
Publish the site and make a small purchase from a Mercado Pago account other than yours. The order shows up in the dashboard → Orders.
The dashboard
The dashboard is where you run the store: products, orders, customers and settings. It's the source of truth for your catalog.
Signing in
From the plugin:Home or Products tab → Manage products. You're in right away, no password.
Without Framer: at /login, press Sign in with Mercado Pago and authorize with the same account you connected in the plugin. You see all your stores and stay signed in for 30 days, so you can bookmark it. You can also ask for an email link (expires in 15 minutes, works once).
Several stores: if you sign in by email and have more than one connected project, switch stores from the dashboard menu.
Products
Every product has these fields. In the table you can edit price, compare-at price, stock and status without opening the product, change the status of several at once, duplicate and archive.
Name
Required. It's the title on your site and at checkout.
Description
Plain text. Separate paragraphs with a blank line; it arrives in the CMS as formatted text.
Images
The first one is the main image; drag to reorder. JPG, PNG, WebP or GIF, up to 20 per product. They're optimized on upload.
Price and compare-at price
When the compare-at price is higher than the price, it shows struck through and the % off is calculated.
Stock
With Track stock on, it goes down with every approved sale. Untracked sells without a limit.
Status
Active: visible and can be bought. Draft: hidden in Framer and can't be bought.
Type
Physical: gets shipped, with weight and size for Mercado Envíos. Digital: a file is delivered after payment.
Product URL
The slug: the product page ends in /slug. It's generated from the name and is unique in your store.
Overview, orders and customers
Overview
Revenue and sales for the last 30 days, best sellers, latest orders and products to restock (5 units or fewer).
Orders
Every checkout, paid or not, with its status: Approved, Pending, In process, Rejected, Cancelled or Refunded. The detail shows products, buyer, shipping address and the Mercado Pago payment.
Customers
Everyone with an approved payment: name, email, phone, ID number, city, number of orders and total spent.
Settings
Currency
The currency you charge in: ARS, BRL, MXN, CLP, COP, PEN or UYU.
Digital delivery
Email the downloads, show them on the thank-you page, or both. At least one must stay on.
Shipping
Charge shipping with Mercado Envíos. See Shipping.
Account and Framer
Mercado Pago connection, account email, platform fee, Framer project and collection.
Syncing with Framer
The plugin creates a CMS collection called Productos, managed by Mercado Framer. It mirrors the dashboard exactly, so it isn't edited by hand.
How to sync
1
The first time
Plugin → Products → Create collection & sync. If another collection is already called “Productos”, the new one is named “Productos 2”.
2
Every time you change something
In the Framer CMS, open the “Productos” collection and press Sync. It runs in the background and tells you how many products it synced. You can also use Sync now in the plugin.
3
Publish
CMS changes reach your site when you publish it.
What Sync does
Adds and updates every product, and removes the ones you archived from the collection.
Drafts arrive as CMS drafts: they aren't published.
Uploads the images you added in the dashboard to Framer. It happens once; if one fails, the next Sync retries it.
Keeps your products in order.
Never includes a digital product's file.
Collection fields
Use these fields to bind text, images and properties on your pages. Display names follow the plugin's language; the IDs never change, so your bindings don't break. Each item's slug is the product's slug.
Field
Content
titleName
TextThe product name.
pricePrice
NumberCurrent price.
compareAtPriceCompare-at price
NumberStruck-through price. 0 if none.
discountDiscount %
NumberRounded discount. 0 if none.
descriptionDescription
Formatted textThe description, in paragraphs.
imageImage
ImageMain image.
galleryGallery
Image listEvery image, in order.
stockStock
NumberUnits available. 0 if the product doesn't track stock.
inStockIn stock
Yes / NoYes when units are left or the product doesn't track stock.
tracksStockTracks stock
Yes / NoYes when stock is limited.
isDigitalDigital
Yes / NoDigital product.
productIdProduct ID
TextThe product's public ID: the one the cart and orders use.
weightWeight (g)
NumberWeight in grams. 0 if not set.
dimensionsSize (cm)
TextHeight x width x length, for example 10x20x30.
Already had a products collection?
If you built your store on your own CMS collection, import it into the dashboard once: plugin → Products → Already have a products collection? → pick it → Import to dashboard. Fields are matched automatically (title and price at least) and item IDs are kept, so carts and past orders keep working. Then sync “Productos” and bind your pages to it.
Components
Components are added from the plugin's Components tab: one at a time (Product, Cart and Checkout sections) or several at once from Pages. Each one creates a code file in your project (for example “MP Buy Now”) already wired to your store and styled with the Style tab. From then on you use them like any component: from Assets → Code or by duplicating the instance.
How they behave
They find the product from the URL
On the detail page, product components recognize the product from the last part of the URL, the slug. That's why they belong on the “Productos” detail page.
They read live values
With price properties at 0 and images empty, they read price, stock and images from the server, always current. Bind them to CMS fields only in listings.
They show up on the canvas
In the editor they display a real product from your store (or a sample). The cart, payment result, stock badge and variant selector have a Preview property to design each state.
They update from the plugin
If a component is already in the project, the ↻ button next to Add brings it to the latest version, and Update all does it for every one. In Style, Save and update re-applies your new style to the ones you already added.
Reference
Buy button
Adds to the cart or goes straight to Mercado Pago.
MP Add to CartMP Buy Now
One component with two actions. Add to cart adds the product with the quantity and variant picked on the page, never past the stock, and confirms with “Added”. Buy now asks for the buyer's email (for the receipt) and takes them to Mercado Pago. Out of stock it reads “Out of stock”; if it can't find the product, “Unavailable”.
Where it goes: Detail page. Also in a listing, with Product ID bound.
Properties
Action
Add to cart, Buy now or Both (two buttons).
Return page
Your thank-you page, for example /thank-you. Empty, the buyer returns to the same page. Shown with Buy now or Both.
Email
On click (the field appears after the first tap) or Always (always visible).
Quantity · Show stock · Low stock at
A built-in quantity stepper, the units left and an “Only N left” note (from 5 by default).
Product ID · Title · Price · Image
Empty: detects the product from the URL. In a listing, bind Product ID to Product ID, and Title, Price and Image to Name, Price and Image so the cart can show them.
Cart label · Buy label
Your own labels. Empty, they use the language defaults.
Language
English or Español.
Appearance
Background, Text, Font, Radius, Padding and Gap.
Product gallery
Main image, thumbnails and full screen.
MP Product Gallery
Shows the product's images with thumbnails. Tapping the main image opens it full screen, with arrow keys, swipe and Esc to close.
Where it goes: Detail page.
Properties
Image 1–4
Empty: uses the product's images. Fill or bind them only to show other images.
Fit
Contain (whole image), Cover (crops) or Stretch.
Ratio
Square, 4:5, 3:4, 16:9 or Original.
Thumbnails · Thumb size
Show the thumbnails, and their size.
Lightbox
Open the image full screen on tap.
Language
For screen reader labels.
Appearance
Backdrop, Selected, Radius and Gap.
Price
The product price, with its currency.
MP Price
Shows the price in your currency's format, for example $ 1,990. While loading it shows a soft placeholder; if it can't find the product, it shows nothing.
Where it goes: Detail page. In listings, with Price bound.
Properties
Price
0: live price from the URL. In a listing, bind it to the Price field.
Currency
Empty: your store's currency, even with Price bound.
Show
$ 1,990, ARS 1,990 or just the number.
Language
The number format: 1,990 or 1.990.
Appearance
Color and Font.
Compare-at price
The previous price, struck through.
MP Compare-at Price
Shows the compare-at price struck through, and hides itself when there's no discount.
Where it goes: Detail page, next to the price.
Properties
Compare at
0: live value from the URL. In a listing, bind it to Compare-at price.
Currency · Show · Language
Same as Price.
Strikethrough · Hide if empty
Strike the value and hide it when there is none.
Appearance
Color and Font.
Discount badge
A “20% OFF” pill.
MP Discount Badge
Works out the discount between price and compare-at price, and hides itself at 0%.
Where it goes: Detail page or listing cards.
Properties
Percent
0: automatic. In a listing, bind it to Discount %.
Price · Compare at
Another option in listings: bind both prices and it calculates.
Label
The text; {n} is the number. Defaults to {n}% OFF.
Hide if 0%
Hides when there's no discount.
Style
Solid or Soft.
Appearance
Background, Text, Radius and Font.
Stock badge
“In stock”, “Only N left” or “Out of stock”, live.
MP Stock Badge
Shows the stock status of the product on the page, live from the dashboard. Products that don't track stock show as “In stock” or hide the badge, your choice.
Where it goes: Detail page, near the buttons.
Properties
Low stock at
From how many units it shows “Only N left”. 0 = never.
Untracked
For products that don't track stock: In stock, or Hide.
Style
Dot or Pill.
In stock · Low stock · Out of stock
Your own labels; {n} is the units left.
Language
English or Español.
Appearance
A color per state, and Font.
Preview
Canvas only: which state to show while you design.
Variant selector
Size, color or any other option.
MP Variant Selector
A dropdown or a row of pills with the options you type. The chosen option travels to the cart and the order (for example “T-shirt — M”); it doesn't change price or stock.
Where it goes: Detail page, before the buttons.
Properties
Options
A comma-separated list, for example S, M, L, XL.
Style
Dropdown or Pills.
Label · Placeholder
The title above the options (empty hides it) and the text when nothing is picked.
Language
English or Español.
Appearance
Colors for the trigger, the dropdown and the picked option; Font and Height.
Preview
Canvas only: shows the dropdown open.
Quantity selector
− / + capped at stock.
MP Quantity Selector
Picks how many units to buy, never more than the stock available. Buttons on the same page use that quantity.
Where it goes: Detail page, before the buttons.
Properties
Style
Split (two separate buttons) or Joined (one piece).
Language
For screen reader labels.
Appearance
Font, Number, Icons, Border, Background, Button size, Radius and Gap.
Cart
Cart and checkout, on every page.
MP Cart
A button with the item count that opens the cart: products, subtotal, an email field and Checkout with Mercado Pago. The cart is stored in the buyer's browser; shipping, when it applies, is calculated at checkout.
Where it goes: Once, on an element that's on every page: navbar, footer or layout.
Properties
Trigger
Floating (a button fixed to a corner) or Inline (an icon wherever you put it, for example in the navbar).
Opens as · Side · Offset
Drawer (side panel) or Popover, which side, and how far from the edge.
Return page
Your thank-you page, for example /thank-you.
Open on add · Hide if empty
Open the cart when a product is added, and hide it while empty.
Currency
Only for older carts: new items use your store's currency.
Language
English or Español.
Appearance
Accent, On accent, Icon, Panel, Panel text, Radius and Font.
Preview
Canvas only: shows the open cart with sample items.
Payment result
Confirms the payment on your thank-you page.
MP Checkout Result
Reads the order from the URL Mercado Pago returns with and shows the outcome with the order number and total: approved, processing, not completed, refunded or not found. When approved, it empties the cart and shows downloads (if they're on in Settings). When not completed, the products stay in the cart. While processing, the page updates on its own.
Where it goes: Your thank-you page.
Properties
Store link · Link label
Where the “Back to the store” button goes, for example /shop, and its text. Empty hides the button.
Align
Center or Left.
Language
English or Español.
Appearance
Text, Accent, On accent, Radius and Font.
Preview
Canvas only: which state to show while you design.
Store pages
A complete store has three pages, plus the cart on all of them. The paths are suggestions: use your own.
Listing
/shop
A Collection List of “Productos”
Image, name and price bound
Badge Percent → Discount %
A link to the detail (or a button with Product ID)
Detail
/shop/:slug
The “Productos” CMS detail page
Gallery, prices and discount
Variant, quantity and buttons
Bound description
Thank you
/thank-you
The Payment Result component
Return page for buttons and cart
Store link → your listing
The detail page
Create it as the detail page of the “Productos” collection, so each product's URL ends in its slug and the components find it on their own. Leave Price, Compare at, Percent, Product ID and the gallery images at 0 or empty: on this page they read everything live. Bind a text to Name and a formatted text to Description.
The listing
Use a Collection List connected to “Productos”, with text and images bound to its fields. In a listing the URL doesn't identify a product, so components you place inside need their properties bound: on Price, Price → Price; on the Discount badge, Percent → Discount %; and to buy from the card, on the Buy button, Product ID → Product ID (plus Title, Price and Image for the cart). To show “Out of stock”, use the In stock field for visibility.
The thank-you page
A regular page with the Payment Result component. Mercado Pago returns to it with the order in the URL, whether the payment was approved or not. Set Store link to your listing to show the “Back to the store” button.
Digital products
Sell ebooks, templates, courses or any file. Delivery is automatic.
1
Mark the product as Digital
In the dashboard, choose Type → Digital and upload the file to deliver, up to 50 MB.
2
Choose how it's delivered
In Settings → Digital delivery: by email, on the thank-you page, or both.
3
Done
When the payment is approved, the buyer gets their download links through the channels you chose.
How the file stays protected
The file is private: it's stored separately, never published to Framer and never in the CMS.
Download links are unique to each order and expire. Email links last 30 days; if the thank-you page shows downloads, it makes fresh links each time the buyer opens it again.
Digital products don't ship.
If an older product delivers a file hosted in Framer (public), upload the file in the dashboard to make it private.
Shipping
For physical products you can charge shipping with Mercado Envíos. It's optional.
1
Turn on Mercado Envíos in your account
It has to be available and enabled on your Mercado Pago account, with your dispatch address.
2
Turn it on in the dashboard
Settings → Shipping → Charge shipping with Mercado Envíos.
3
Add weight and size
On every physical product: weight in grams and size in centimeters (height x width x length, for example 10x20x30).
How it's quoted
At checkout, Mercado Pago asks for the address and quotes shipping.
The order is quoted as one package: weights add up and heights stack.
If a product is missing data, 500 g and a 10 × 10 × 10 cm box are used.
The shipping address is saved on the order detail in the dashboard.
Stock
Turn on Track stock on the product and enter the quantity available. Untracked sells without a limit.
It goes down on approved payment
Not when adding to the cart or starting checkout: an abandoned checkout doesn't hold units.
It's checked at checkout
When checkout starts, the server confirms there's enough stock. If not, the buyer sees a notice and no payment is created.
Components respect it
The quantity selector and the button never go past what's available (counting what's already in the cart). The button warns “Only N left” and reads “Out of stock” at 0; the Stock badge shows it wherever you like.
The CMS catches up on Sync
Sales update the dashboard instantly. Stock and In stock in “Productos” change on the next Sync; the detail page always shows the live value.
Using AI agents
You can build and maintain your store with an AI agent such as Claude, ChatGPT, Cursor or Codex. These prompts give it exactly the context it needs to do it well.
Connect your agent to Framer
Framer has an official connection for external agents. In a terminal with Node.js 24 or newer, run:
$ npx @framer/agent@latest setup
Then open your agent, give it your project link and authorize access in the browser the first time. More in Framer's help center. If you already use an MCP server for Framer, that works too.
The Mercado Framer MCP: products from your agent
Besides Framer, your agent can connect straight to your store with our MCP server to create and edit products, change prices and stock in bulk, or review orders. It's free and works with Claude, Cursor, VS Code and any MCP client.
1In the dashboard, go to Settings → AI agents (MCP) and press New key. Choose whether the agent can read orders and customers.
2Copy the key: it's shown only once. The dashboard gives you the command or config ready for Claude Code, Cursor / VS Code and Claude Desktop.
3Ask the agent for what you need: “add these 10 products as drafts”, “raise every t-shirt price by 10%”, “which products are low on stock?”.
create_productCreate products with price, stock, description, images (https URLs) and shipping. They start as drafts.
update_productChange any field of a product.
bulk_update_productsStatus, price, compare-at price or stock for many products at once.
duplicate_product · archive_productsDuplicate as a draft or archive (the agent asks you first).
list_orders · get_order · list_customers · sales_overviewRead-only, and only if the key has orders access.
Each key belongs to one store, is stored hashed and can be revoked anytime. An agent can never charge, refund or see your Mercado Pago credentials, and digital files are uploaded only from the dashboard. After product changes, press Sync on the collection and publish.
Who does what
Your agent does
Builds the listing, product and thank-you pages
Places and configures the components
Binds the “Productos” fields
Reviews everything and asks before publishing
You do
Connect Mercado Pago in the plugin: it's your account
Add products in the dashboard (or let the agent do it with the MCP)
Create the collection and add components from the plugin
Approve publishing
The whole store, end to end
Paste this prompt into an agent connected to your project. It builds the listing, product page, cart and thank-you page; it stops at every step that's yours to do and never publishes without asking.
Build your store with an agent
Kickoff prompt · Markdown · 75 lines
# Build my store with Mercado Framer
Act as a Mercado Framer and Framer expert. Your goal: a complete, working store in my Framer project, with products from the Mercado Framer dashboard and payments through Mercado Pago. Work step by step: before each step tell me what you'll do, and verify the result after.
If I gave you the Mercado Framer context prompt, follow it. If not, read https://mercadoframer.com/docs?lang=en before starting.
## Essentials
- Products live in the dashboard (https://mercadoframer.com/dashboard); the plugin copies them into the “Productos” CMS collection with the Sync button.
- The “MP …” components are added from the plugin and, on the detail page, detect the product from the URL slug, with live price and stock.
- “Productos” fields: `title`, `price`, `compareAtPrice`, `discount`, `description`, `image`, `gallery`, `stock`, `inStock`, `tracksStock`, `isDigital`, `productId`, `weight`, `dimensions`.
## Rules
- Some steps only I can do (in the plugin or with my account). When you reach one, stop, tell me exactly what to click and wait for my confirmation.
- Never ask me for passwords, tokens, keys or card details, and don't try to connect Mercado Pago yourself.
- Don't edit the “Productos” collection or its fields: the plugin manages it.
- Don't write your own payment components or change the code of the “MP …” files.
- Respect the site's style: existing fonts, colors, spacing and components.
- Don't publish without my explicit confirmation.
## 0. Before you start, ask me
- The site's language (for the components' Language property).
- Paths: /shop, /shop/:slug and /thank-you by default.
- Whether my products have variants (size, color…) and which ones.
- Whether I sell physical products, digital ones, or both.
## 1. Connect to my Framer project
Use Framer's agent connection (Framer Agent: if it isn't installed, `npx @framer/agent@latest setup`, needs Node.js 24 or newer) or the Framer MCP server you have set up. If you don't have it, ask me for the project link. Before moving on, confirm you can read pages, the CMS and components.
## 2. Plugin and Mercado Pago (I do this)
Ask me to open the Mercado Framer plugin in the project and confirm it's connected to Mercado Pago. If it isn't: “Connect Mercado Pago”, and I authorize in the tab that opens. Wait for my confirmation.
## 3. Products in the dashboard
Ask me whether I already have Active products in the dashboard (https://mercadoframer.com/dashboard). If the Mercado Framer MCP is connected (tools like `list_products` and `create_product`), you can check and add them yourself: create them as drafts, show me the result and activate them only with my OK. If it isn't, remind me how to get there (plugin → Products → “Manage products”) and what to fill in: name, price, images, stock; the file if it's digital (I always upload that in the dashboard); weight and size if I use Mercado Envíos.
## 4. The “Productos” collection
Find the collection managed by Mercado Framer (named “Productos”, or “Productos 2” if the name was taken).
- If it doesn't exist, ask me: plugin → Products → “Create collection & sync”.
- If it exists, ask me to press **Sync** on the collection.
Then confirm it has the fields above and one item per active product.
## 5. Components in the project (I do this)
Check which “MP …” code components already exist. Ask me to add the missing ones from the plugin → Components (each “Add” creates the file already wired to my store): MP Product Gallery, MP Price, MP Compare-at Price, MP Discount Badge, MP Stock Badge, MP Quantity Selector, MP Add to Cart, MP Buy Now, MP Cart, MP Checkout Result, and MP Variant Selector only if there are variants. Alternative: with the detail page open, plugin → Components → Pages → “Product detail” → “Build on this page”. Before configuring each component, read its properties with your Framer tools; don't guess them.
## 6. Listing page (/shop)
Create /shop with a Collection List connected to “Productos”. Each card: image (`image`), name (`title`), price (`price`, formatted in my currency), MP Discount Badge with Percent bound to `discount` (it hides itself at 0%), an “Out of stock” label visible when `inStock` is false, and a link to the item's detail page. If I want buying from the card, add MP Add to Cart with Product ID ← `productId` and Title, Price, Image ← `title`, `price`, `image`. A tidy grid on desktop, one or two columns on mobile.
## 7. Detail page (/shop/:slug)
Create the “Productos” CMS detail page at /shop/:slug. Two columns on desktop, one on mobile:
- Left: MP Product Gallery.
- Right: name (`title`); MP Price next to MP Compare-at Price and MP Discount Badge; MP Stock Badge; MP Variant Selector (only if needed, with my options in Options); MP Quantity Selector; MP Add to Cart and MP Buy Now (or one with Action = Both); description (`description`) in a formatted text.
- Leave Price, Compare at, Percent, Product ID and the gallery images at 0 or empty: on this page they read everything live from the URL.
- Language = the site's language. Return page = /thank-you on the buttons.
## 8. Cart
Put MP Cart once on an element that's on every page: inside the navbar with Trigger = Inline if there is one; otherwise Trigger = Floating in a footer or layout. If we used the “Product detail” block, there's already one on the detail page: move it so there aren't two. Return page = /thank-you. Language = the site's language.
## 9. Thank-you page (/thank-you)
Create /thank-you with MP Checkout Result centered and Store link = /shop (the component already shows the heading, the status and the “Back to the store” button). Language = the site's language. Keep it out of the main navigation.
## 10. Review
Check every page on desktop and mobile: product components are on the detail page, Return pages point to /thank-you, no CMS fields are bound where values must stay at 0, and listing and detail look right with real products. If a binding or property can't be set with your tools, tell me exactly what to do by hand (page, element, property and field).
## 11. Publish (with permission)
Show me a summary of the changes and ask whether to publish. Publish only after my “yes”. Then suggest a small test purchase from another Mercado Pago account (you can't pay yourself) and checking the order in the dashboard → Orders.
## Final checklist
- [ ] Framer connected; plugin connected to Mercado Pago.
- [ ] Active products in the dashboard; “Productos” collection synced.
- [ ] Needed “MP …” files in the project.
- [ ] /shop: Collection List with image, name, price, discount, “Out of stock” and a link to the detail.
- [ ] /shop/:slug: gallery, price, compare-at price, discount, stock, variants (if any), quantity, buttons and description; automatic values at 0.
- [ ] MP Cart once, visible on every page.
- [ ] /thank-you with MP Checkout Result and Store link = /shop; Return page = /thank-you on buttons and cart.
- [ ] Right language on every component.
- [ ] Published with my confirmation; test purchase done.
Works best after the context prompt. If you want other paths or another language, edit it before pasting.
Just want your agent to understand Mercado Framer? Use the context prompt.
FAQ
What we get asked most, and how to fix the common problems.
The button says “Unavailable”
The component found no active product with the URL's slug. Check that it's on the “Productos” detail page, that the product is Active and that the URL uses its current slug. If you changed the slug in the dashboard, sync and publish.
I changed a price and the site shows the old one
Components on the detail page read the price live; what's stale is whatever comes from the CMS (bound text, listings). Press Sync on the collection and publish. Checkout always charges the dashboard price.
A product isn't on the site
Make sure it's Active (drafts aren't published), that you synced after creating it and that you published the site after the Sync.
Sync says some images weren't uploaded
Framer didn't accept them that time. Press Sync again and they're retried. They keep displaying in the meantime.
The thank-you page says “Order not found”
It was opened without an order in the URL. Check that Return page on the buttons and the cart points to that page: Mercado Pago returns there with the order.
The payment is “processing”
Some payment methods take a while to clear. The thank-you page refreshes on its own and the order updates once Mercado Pago confirms it; that's when stock goes down and emails go out.
I can't add components
Your Framer plan or mode doesn't allow code components, or you don't have edit access to the project. Open the plugin from the canvas, with edit access.
Can the cart go in my navbar?
Yes: on the Cart, choose Trigger → Inline and place it inside your navbar. With Floating it's a button fixed to a corner of the screen.
Can people buy from the listing?
Yes: put a Buy button in the card and bind Product ID to “Product ID”, and Title, Price and Image to Name, Price and Image. Checkout always charges the dashboard price.
The buyer didn't get the email
Ask them to check spam. If you sell digital products, check Settings → Digital delivery. The email goes out when the payment is approved, to the address the buyer typed.
How do I open the dashboard without Framer?
At /login, with Sign in with Mercado Pago (the same account as the plugin) or with an email link to that account's address.
How much does it cost?
Mercado Pago charges its usual fees on every sale. There's also a platform fee, shown in Settings in the dashboard and the plugin.
Can I have several stores?
Yes. Each connected Framer project is a store. If they share a Mercado Pago email, you switch between them from the dashboard.
How do I disconnect Mercado Pago?
Plugin → Settings → Disconnect Mercado Pago. Your products and orders are kept; while disconnected, you can't take payments.
Security & privacy
The essentials of how we protect your payments and your buyers' data.
Payments on Mercado Pago
Payments are processed by Mercado Pago. We never see or store card details.
Your account, your money
You connect through Mercado Pago's official authorization, without sharing your password. Money goes straight to your account and you can disconnect anytime.
Tamper-proof amounts
Price, stock and status are checked on the server. Nobody can change the amount from the browser.
Private files
Digital files are delivered only after an approved payment, through links that expire.
Secure sessions
You open the dashboard from the plugin or with a one-time link sent to your email. Mercado Pago credentials are stored encrypted.
Buyer data
We keep what's needed to fulfil each order: name, email, phone, ID number and shipping address. Only you see it, in your dashboard.