From ce9a0db2b8b86a3d14e611e15e7fa47c392d7a20 Mon Sep 17 00:00:00 2001 From: alectimison-maker Date: Tue, 28 Jul 2026 01:31:18 +0800 Subject: [PATCH 1/3] agent: add adapter for Mercado Libre --- src/chrome/src/agent/adapters.js | 16 +++++++++++++ src/firefox/src/agent/adapters.js | 16 +++++++++++++ test/run.js | 40 +++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) diff --git a/src/chrome/src/agent/adapters.js b/src/chrome/src/agent/adapters.js index 86edbfe1f..921c6a3fd 100644 --- a/src/chrome/src/agent/adapters.js +++ b/src/chrome/src/agent/adapters.js @@ -16279,6 +16279,22 @@ const ADAPTERS = [ - Pre-orders / "Made to order" listings have a longer ship date — surface that to the user before buying.`, }, + // ─── Regional — Mercado Libre / Mercado Livre (LATAM) ──────────────── + // Start with the AR, MX, and BR storefronts requested in CONTRIBUTING.md. + // Other country sites need separate localization research before inclusion. + { + name: 'mercado-libre', + category: 'general', + matches: (url) => /^https?:\/\/(?:[a-z0-9-]+\.)*(?:mercadolibre\.com\.(?:ar|mx)|mercadolivre\.com\.br)\//.test(url), + notes: ` +- Mercado Libre/Livre is a multi-seller MARKETPLACE with localized UI. Argentina/Mexico use Spanish labels such as "Comprar ahora", "Agregar al carrito", and "Otras opciones de compra"; Brazil uses "Comprar agora", "Adicionar ao carrinho", and "Outras opções de compra". Follow the labels for the current country — do not mix the Spanish and Portuguese flows. +- Catalog product pages can group the same product from many sellers. The main buy box represents ONE seller/offer, while "Otras opciones de compra"/"Outras opções de compra" may have a different price, seller reputation, shipping cost, or arrival date. Compare the active offer before quoting or adding it. +- Variant trap: choose required color, size ("talle"/"talla"/"tamanho"), capacity, voltage, flavor, or other variation BEFORE adding. A variation can change stock, seller, price, and delivery; read back the selected variation from the product page or cart. +- LOCATION-FIRST shipping: set the destination postal code ("código postal" in AR/MX, "CEP" in BR) before promising availability, freight, free shipping, pickup, or an arrival date. Re-check these in the cart because they depend on both destination and seller. +- Displayed discounts and installment amounts ("cuotas"/"parcelas") may depend on the payment method, and the listing price can exclude shipping. Use "Agregar/Adicionar ao carrito" when choices still need review; verify seller, variations, quantity, shipping, and the final payable total before any consequential "Comprar ahora/agora" action. +- Search/result hosts such as listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, and lista.mercadolivre.com.br may redirect automation to /gz/account-verification. If that verification wall appears, STOP and ask the user to complete it manually; do not retry, bypass it, or claim that results were inspected.`, + }, + // ─── Regional — Türkiye (TR) ────────────────────────────────────────── // Regional adapters are the project's #1 wanted contribution (CONTRIBUTING.md); // Türkiye is top of the priority list. Add more TR sites (trendyol, diff --git a/src/firefox/src/agent/adapters.js b/src/firefox/src/agent/adapters.js index eede90d57..eb66f645e 100644 --- a/src/firefox/src/agent/adapters.js +++ b/src/firefox/src/agent/adapters.js @@ -16277,6 +16277,22 @@ const ADAPTERS = [ - Pre-orders / "Made to order" listings have a longer ship date — surface that to the user before buying.`, }, + // ─── Regional — Mercado Libre / Mercado Livre (LATAM) ──────────────── + // Start with the AR, MX, and BR storefronts requested in CONTRIBUTING.md. + // Other country sites need separate localization research before inclusion. + { + name: 'mercado-libre', + category: 'general', + matches: (url) => /^https?:\/\/(?:[a-z0-9-]+\.)*(?:mercadolibre\.com\.(?:ar|mx)|mercadolivre\.com\.br)\//.test(url), + notes: ` +- Mercado Libre/Livre is a multi-seller MARKETPLACE with localized UI. Argentina/Mexico use Spanish labels such as "Comprar ahora", "Agregar al carrito", and "Otras opciones de compra"; Brazil uses "Comprar agora", "Adicionar ao carrinho", and "Outras opções de compra". Follow the labels for the current country — do not mix the Spanish and Portuguese flows. +- Catalog product pages can group the same product from many sellers. The main buy box represents ONE seller/offer, while "Otras opciones de compra"/"Outras opções de compra" may have a different price, seller reputation, shipping cost, or arrival date. Compare the active offer before quoting or adding it. +- Variant trap: choose required color, size ("talle"/"talla"/"tamanho"), capacity, voltage, flavor, or other variation BEFORE adding. A variation can change stock, seller, price, and delivery; read back the selected variation from the product page or cart. +- LOCATION-FIRST shipping: set the destination postal code ("código postal" in AR/MX, "CEP" in BR) before promising availability, freight, free shipping, pickup, or an arrival date. Re-check these in the cart because they depend on both destination and seller. +- Displayed discounts and installment amounts ("cuotas"/"parcelas") may depend on the payment method, and the listing price can exclude shipping. Use "Agregar/Adicionar ao carrito" when choices still need review; verify seller, variations, quantity, shipping, and the final payable total before any consequential "Comprar ahora/agora" action. +- Search/result hosts such as listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, and lista.mercadolivre.com.br may redirect automation to /gz/account-verification. If that verification wall appears, STOP and ask the user to complete it manually; do not retry, bypass it, or claim that results were inspected.`, + }, + // ─── Regional — Türkiye (TR) ────────────────────────────────────────── // Regional adapters are the project's #1 wanted contribution (CONTRIBUTING.md); // Türkiye is top of the priority list. Add more TR sites (trendyol, diff --git a/test/run.js b/test/run.js index c99a712d8..356811de5 100644 --- a/test/run.js +++ b/test/run.js @@ -2387,6 +2387,46 @@ test('matches apple store pages', () => { assert.equal(getActiveAdapter('https://secure.store.apple.com/shop/checkout')?.name, 'apple'); }); +test('matches Mercado Libre LATAM storefronts and includes marketplace guidance', () => { + const trustedUrls = [ + 'https://mercadolibre.com.ar/', + 'https://www.mercadolibre.com.ar/notebook/p/MLA123', + 'https://listado.mercadolibre.com.ar/notebook', + 'https://articulo.mercadolibre.com.ar/MLA-123-notebook-_JM', + 'https://www.mercadolibre.com.mx/notebook/p/MLM123', + 'https://listado.mercadolibre.com.mx/notebook', + 'https://mercadolivre.com.br/', + 'https://www.mercadolivre.com.br/notebook/p/MLB123', + 'https://lista.mercadolivre.com.br/notebook', + 'https://produto.mercadolivre.com.br/MLB-123-notebook-_JM', + ]; + for (const url of trustedUrls) { + assert.equal(getActiveAdapter(url)?.name, 'mercado-libre'); + assert.equal(getActiveAdapterFx(url)?.name, 'mercado-libre'); + } + + const rejectedUrls = [ + 'https://mercadolibre.com.ar.phishing.example/notebook', + 'https://mercadolivre.com.br.evil.example/notebook', + 'https://example.com/mercadolibre.com.mx/notebook', + // Other country storefronts need their own localized research before inclusion. + 'https://www.mercadolibre.cl/notebook', + ]; + for (const url of rejectedUrls) { + assert.notEqual(getActiveAdapter(url)?.name, 'mercado-libre'); + assert.notEqual(getActiveAdapterFx(url)?.name, 'mercado-libre'); + } + + const adapter = getActiveAdapter('https://www.mercadolibre.com.mx/notebook/p/MLM123'); + const firefoxAdapter = getActiveAdapterFx('https://www.mercadolivre.com.br/notebook/p/MLB123'); + assert.match(adapter?.notes || '', /MARKETPLACE/); + assert.match(adapter?.notes || '', /Otras opciones de compra/); + assert.match(adapter?.notes || '', /Outras opções de compra/); + assert.match(adapter?.notes || '', /CEP/); + assert.match(adapter?.notes || '', /account-verification/); + assert.equal(firefoxAdapter?.notes, adapter?.notes); +}); + test('matches sahibinden.com and includes anti-bot guidance', () => { assert.equal(getActiveAdapter('https://www.sahibinden.com/')?.name, 'sahibinden'); assert.equal(getActiveAdapter('https://sahibinden.com/kategori/vasita')?.name, 'sahibinden'); From f3d36f67e1c10ee2f224d94568ee4abc6fa9b565 Mon Sep 17 00:00:00 2001 From: Emre Sokullu Date: Mon, 27 Jul 2026 23:27:13 +0300 Subject: [PATCH 2/3] agent: tighten Mercado Libre adapter notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - replace blended ES/PT labels ("Agregar/Adicionar ao carrito", "Comprar ahora/agora") with per-locale label lists; those strings match no control on either storefront and contradicted the don't-mix-locales rule in the first bullet - distinguish catalog pages (/p/MLA…, /p/MLM…, /p/MLB…), which carry the multi-seller offer list, from single-seller -_JM listings, which do not - warn that checkout continues on a Mercado Pago host where the adapter no longer fires, so the final total must be confirmed there - date the volatile UI labels per CONTRIBUTING.md - lock both fixes with test assertions Co-Authored-By: Claude Opus 5 --- src/chrome/src/agent/adapters.js | 12 ++++++------ src/firefox/src/agent/adapters.js | 12 ++++++------ test/run.js | 4 ++++ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/chrome/src/agent/adapters.js b/src/chrome/src/agent/adapters.js index 921c6a3fd..7eaa7cbe6 100644 --- a/src/chrome/src/agent/adapters.js +++ b/src/chrome/src/agent/adapters.js @@ -16287,12 +16287,12 @@ const ADAPTERS = [ category: 'general', matches: (url) => /^https?:\/\/(?:[a-z0-9-]+\.)*(?:mercadolibre\.com\.(?:ar|mx)|mercadolivre\.com\.br)\//.test(url), notes: ` -- Mercado Libre/Livre is a multi-seller MARKETPLACE with localized UI. Argentina/Mexico use Spanish labels such as "Comprar ahora", "Agregar al carrito", and "Otras opciones de compra"; Brazil uses "Comprar agora", "Adicionar ao carrinho", and "Outras opções de compra". Follow the labels for the current country — do not mix the Spanish and Portuguese flows. -- Catalog product pages can group the same product from many sellers. The main buy box represents ONE seller/offer, while "Otras opciones de compra"/"Outras opções de compra" may have a different price, seller reputation, shipping cost, or arrival date. Compare the active offer before quoting or adding it. -- Variant trap: choose required color, size ("talle"/"talla"/"tamanho"), capacity, voltage, flavor, or other variation BEFORE adding. A variation can change stock, seller, price, and delivery; read back the selected variation from the product page or cart. -- LOCATION-FIRST shipping: set the destination postal code ("código postal" in AR/MX, "CEP" in BR) before promising availability, freight, free shipping, pickup, or an arrival date. Re-check these in the cart because they depend on both destination and seller. -- Displayed discounts and installment amounts ("cuotas"/"parcelas") may depend on the payment method, and the listing price can exclude shipping. Use "Agregar/Adicionar ao carrito" when choices still need review; verify seller, variations, quantity, shipping, and the final payable total before any consequential "Comprar ahora/agora" action. -- Search/result hosts such as listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, and lista.mercadolivre.com.br may redirect automation to /gz/account-verification. If that verification wall appears, STOP and ask the user to complete it manually; do not retry, bypass it, or claim that results were inspected.`, +- Multi-seller MARKETPLACE, localized per country. As of 2026-07 — AR/MX (Spanish): "Comprar ahora", "Agregar al carrito", "Otras opciones de compra". BR (Portuguese): "Comprar agora", "Adicionar ao carrinho", "Outras opções de compra". Use the current site's language only; a blended label matches no control on either storefront. +- Catalog pages (path contains /p/MLA…, /p/MLM…, /p/MLB…) group MANY sellers under one product: the buy box is ONE seller's offer, and the "otras opciones"/"outras opções" list holds others at a different price, shipping cost, and reputation — compare before quoting. Single-seller listings (articulo.mercadolibre.com.*/…-_JM, produto.mercadolivre.com.br/…-_JM) have no such list; don't hunt for it there. +- Variant trap: pick every required option — color, size ("talle" AR / "talla" MX / "tamanho" BR), capacity, voltage, flavor — BEFORE adding. A variation can change stock, price, seller, and delivery; read the selection back from the cart. +- LOCATION-FIRST: set the destination postal code ("código postal" AR/MX, "CEP" BR) before stating availability, shipping cost, free shipping, pickup, or arrival date. Re-check in the cart — these depend on destination AND seller. +- Listed prices exclude shipping, and headline discounts/installments ("cuotas" AR/MX, "parcelas" BR) can depend on payment method. Add to cart while choices are open; confirm seller, variation, quantity, shipping, and final payable total before buy-now. Checkout then continues on a Mercado Pago host, where this guidance no longer applies — confirm the total there too. +- Search hosts (listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, lista.mercadolivre.com.br) can redirect automation to /gz/account-verification. If that wall appears, STOP and ask the user to complete it manually — do not retry, bypass, or claim results were read.`, }, // ─── Regional — Türkiye (TR) ────────────────────────────────────────── diff --git a/src/firefox/src/agent/adapters.js b/src/firefox/src/agent/adapters.js index eb66f645e..95ac4700f 100644 --- a/src/firefox/src/agent/adapters.js +++ b/src/firefox/src/agent/adapters.js @@ -16285,12 +16285,12 @@ const ADAPTERS = [ category: 'general', matches: (url) => /^https?:\/\/(?:[a-z0-9-]+\.)*(?:mercadolibre\.com\.(?:ar|mx)|mercadolivre\.com\.br)\//.test(url), notes: ` -- Mercado Libre/Livre is a multi-seller MARKETPLACE with localized UI. Argentina/Mexico use Spanish labels such as "Comprar ahora", "Agregar al carrito", and "Otras opciones de compra"; Brazil uses "Comprar agora", "Adicionar ao carrinho", and "Outras opções de compra". Follow the labels for the current country — do not mix the Spanish and Portuguese flows. -- Catalog product pages can group the same product from many sellers. The main buy box represents ONE seller/offer, while "Otras opciones de compra"/"Outras opções de compra" may have a different price, seller reputation, shipping cost, or arrival date. Compare the active offer before quoting or adding it. -- Variant trap: choose required color, size ("talle"/"talla"/"tamanho"), capacity, voltage, flavor, or other variation BEFORE adding. A variation can change stock, seller, price, and delivery; read back the selected variation from the product page or cart. -- LOCATION-FIRST shipping: set the destination postal code ("código postal" in AR/MX, "CEP" in BR) before promising availability, freight, free shipping, pickup, or an arrival date. Re-check these in the cart because they depend on both destination and seller. -- Displayed discounts and installment amounts ("cuotas"/"parcelas") may depend on the payment method, and the listing price can exclude shipping. Use "Agregar/Adicionar ao carrito" when choices still need review; verify seller, variations, quantity, shipping, and the final payable total before any consequential "Comprar ahora/agora" action. -- Search/result hosts such as listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, and lista.mercadolivre.com.br may redirect automation to /gz/account-verification. If that verification wall appears, STOP and ask the user to complete it manually; do not retry, bypass it, or claim that results were inspected.`, +- Multi-seller MARKETPLACE, localized per country. As of 2026-07 — AR/MX (Spanish): "Comprar ahora", "Agregar al carrito", "Otras opciones de compra". BR (Portuguese): "Comprar agora", "Adicionar ao carrinho", "Outras opções de compra". Use the current site's language only; a blended label matches no control on either storefront. +- Catalog pages (path contains /p/MLA…, /p/MLM…, /p/MLB…) group MANY sellers under one product: the buy box is ONE seller's offer, and the "otras opciones"/"outras opções" list holds others at a different price, shipping cost, and reputation — compare before quoting. Single-seller listings (articulo.mercadolibre.com.*/…-_JM, produto.mercadolivre.com.br/…-_JM) have no such list; don't hunt for it there. +- Variant trap: pick every required option — color, size ("talle" AR / "talla" MX / "tamanho" BR), capacity, voltage, flavor — BEFORE adding. A variation can change stock, price, seller, and delivery; read the selection back from the cart. +- LOCATION-FIRST: set the destination postal code ("código postal" AR/MX, "CEP" BR) before stating availability, shipping cost, free shipping, pickup, or arrival date. Re-check in the cart — these depend on destination AND seller. +- Listed prices exclude shipping, and headline discounts/installments ("cuotas" AR/MX, "parcelas" BR) can depend on payment method. Add to cart while choices are open; confirm seller, variation, quantity, shipping, and final payable total before buy-now. Checkout then continues on a Mercado Pago host, where this guidance no longer applies — confirm the total there too. +- Search hosts (listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, lista.mercadolivre.com.br) can redirect automation to /gz/account-verification. If that wall appears, STOP and ask the user to complete it manually — do not retry, bypass, or claim results were read.`, }, // ─── Regional — Türkiye (TR) ────────────────────────────────────────── diff --git a/test/run.js b/test/run.js index 356811de5..c617a5486 100644 --- a/test/run.js +++ b/test/run.js @@ -2424,6 +2424,10 @@ test('matches Mercado Libre LATAM storefronts and includes marketplace guidance' assert.match(adapter?.notes || '', /Outras opções de compra/); assert.match(adapter?.notes || '', /CEP/); assert.match(adapter?.notes || '', /account-verification/); + // Checkout leaves the matched hosts, so the notes must hand the total off. + assert.match(adapter?.notes || '', /Mercado Pago/); + // Blended ES/PT labels match no real control on either storefront. + assert.doesNotMatch(adapter?.notes || '', /Agregar\/Adicionar|ahora\/agora|carrito\/carrinho/); assert.equal(firefoxAdapter?.notes, adapter?.notes); }); From 83cea01ae45acc37b5f793894c5fe405279ea819 Mon Sep 17 00:00:00 2001 From: Emre Sokullu Date: Mon, 27 Jul 2026 23:32:04 +0300 Subject: [PATCH 3/3] agent: cut generic e-commerce bullets from Mercado Libre adapter Adapter notes ride along with every first-turn request on the site, so they should carry only what the model cannot infer. Drops the variant- selection and price-excludes-shipping/installments bullets, which are generic marketplace advice, and folds the postal-code rule into one line. Keeps the site-specific content: locale-exact buy labels, the catalog vs single-seller URL split, the Mercado Pago hand-off, and the account-verification stop. Notes go 2041 -> 1217 chars (5 bullets), from 5th-largest adapter to 19th of 74. Co-Authored-By: Claude Opus 5 --- src/chrome/src/agent/adapters.js | 9 ++++----- src/firefox/src/agent/adapters.js | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/chrome/src/agent/adapters.js b/src/chrome/src/agent/adapters.js index 7eaa7cbe6..c271c50c4 100644 --- a/src/chrome/src/agent/adapters.js +++ b/src/chrome/src/agent/adapters.js @@ -16287,11 +16287,10 @@ const ADAPTERS = [ category: 'general', matches: (url) => /^https?:\/\/(?:[a-z0-9-]+\.)*(?:mercadolibre\.com\.(?:ar|mx)|mercadolivre\.com\.br)\//.test(url), notes: ` -- Multi-seller MARKETPLACE, localized per country. As of 2026-07 — AR/MX (Spanish): "Comprar ahora", "Agregar al carrito", "Otras opciones de compra". BR (Portuguese): "Comprar agora", "Adicionar ao carrinho", "Outras opções de compra". Use the current site's language only; a blended label matches no control on either storefront. -- Catalog pages (path contains /p/MLA…, /p/MLM…, /p/MLB…) group MANY sellers under one product: the buy box is ONE seller's offer, and the "otras opciones"/"outras opções" list holds others at a different price, shipping cost, and reputation — compare before quoting. Single-seller listings (articulo.mercadolibre.com.*/…-_JM, produto.mercadolivre.com.br/…-_JM) have no such list; don't hunt for it there. -- Variant trap: pick every required option — color, size ("talle" AR / "talla" MX / "tamanho" BR), capacity, voltage, flavor — BEFORE adding. A variation can change stock, price, seller, and delivery; read the selection back from the cart. -- LOCATION-FIRST: set the destination postal code ("código postal" AR/MX, "CEP" BR) before stating availability, shipping cost, free shipping, pickup, or arrival date. Re-check in the cart — these depend on destination AND seller. -- Listed prices exclude shipping, and headline discounts/installments ("cuotas" AR/MX, "parcelas" BR) can depend on payment method. Add to cart while choices are open; confirm seller, variation, quantity, shipping, and final payable total before buy-now. Checkout then continues on a Mercado Pago host, where this guidance no longer applies — confirm the total there too. +- Multi-seller MARKETPLACE. As of 2026-07 the buy controls are AR/MX "Comprar ahora" / "Agregar al carrito" / "Otras opciones de compra"; BR "Comprar agora" / "Adicionar ao carrinho" / "Outras opções de compra". Use one locale's labels, never a blend of the two. +- Catalog pages (path contains /p/MLA…, /p/MLM…, /p/MLB…) group MANY sellers under one product: the buy box is ONE offer, and "Otras opciones de compra"/"Outras opções de compra" lists the rest at different prices and arrival dates — open it before quoting a price. Single-seller listings (articulo.mercadolibre.com.*, produto.mercadolivre.com.br, paths ending -_JM) have no such list. +- Shipping cost and arrival date are computed from the destination "código postal" (AR/MX) / "CEP" (BR) and differ per seller. Set it before stating either, and re-check in the cart. +- Buy-now hands off to a Mercado Pago host where this guidance stops applying — confirm the final total there. - Search hosts (listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, lista.mercadolivre.com.br) can redirect automation to /gz/account-verification. If that wall appears, STOP and ask the user to complete it manually — do not retry, bypass, or claim results were read.`, }, diff --git a/src/firefox/src/agent/adapters.js b/src/firefox/src/agent/adapters.js index 95ac4700f..2f58e93a0 100644 --- a/src/firefox/src/agent/adapters.js +++ b/src/firefox/src/agent/adapters.js @@ -16285,11 +16285,10 @@ const ADAPTERS = [ category: 'general', matches: (url) => /^https?:\/\/(?:[a-z0-9-]+\.)*(?:mercadolibre\.com\.(?:ar|mx)|mercadolivre\.com\.br)\//.test(url), notes: ` -- Multi-seller MARKETPLACE, localized per country. As of 2026-07 — AR/MX (Spanish): "Comprar ahora", "Agregar al carrito", "Otras opciones de compra". BR (Portuguese): "Comprar agora", "Adicionar ao carrinho", "Outras opções de compra". Use the current site's language only; a blended label matches no control on either storefront. -- Catalog pages (path contains /p/MLA…, /p/MLM…, /p/MLB…) group MANY sellers under one product: the buy box is ONE seller's offer, and the "otras opciones"/"outras opções" list holds others at a different price, shipping cost, and reputation — compare before quoting. Single-seller listings (articulo.mercadolibre.com.*/…-_JM, produto.mercadolivre.com.br/…-_JM) have no such list; don't hunt for it there. -- Variant trap: pick every required option — color, size ("talle" AR / "talla" MX / "tamanho" BR), capacity, voltage, flavor — BEFORE adding. A variation can change stock, price, seller, and delivery; read the selection back from the cart. -- LOCATION-FIRST: set the destination postal code ("código postal" AR/MX, "CEP" BR) before stating availability, shipping cost, free shipping, pickup, or arrival date. Re-check in the cart — these depend on destination AND seller. -- Listed prices exclude shipping, and headline discounts/installments ("cuotas" AR/MX, "parcelas" BR) can depend on payment method. Add to cart while choices are open; confirm seller, variation, quantity, shipping, and final payable total before buy-now. Checkout then continues on a Mercado Pago host, where this guidance no longer applies — confirm the total there too. +- Multi-seller MARKETPLACE. As of 2026-07 the buy controls are AR/MX "Comprar ahora" / "Agregar al carrito" / "Otras opciones de compra"; BR "Comprar agora" / "Adicionar ao carrinho" / "Outras opções de compra". Use one locale's labels, never a blend of the two. +- Catalog pages (path contains /p/MLA…, /p/MLM…, /p/MLB…) group MANY sellers under one product: the buy box is ONE offer, and "Otras opciones de compra"/"Outras opções de compra" lists the rest at different prices and arrival dates — open it before quoting a price. Single-seller listings (articulo.mercadolibre.com.*, produto.mercadolivre.com.br, paths ending -_JM) have no such list. +- Shipping cost and arrival date are computed from the destination "código postal" (AR/MX) / "CEP" (BR) and differ per seller. Set it before stating either, and re-check in the cart. +- Buy-now hands off to a Mercado Pago host where this guidance stops applying — confirm the final total there. - Search hosts (listado.mercadolibre.com.ar, listado.mercadolibre.com.mx, lista.mercadolivre.com.br) can redirect automation to /gz/account-verification. If that wall appears, STOP and ask the user to complete it manually — do not retry, bypass, or claim results were read.`, },