Conectá tu propia página al riel COD de Oktopus
La idea: Oktopus es el riel, no el host. El usuario arma su página donde quiera y le enchufa el checkout contra entrega. Las órdenes entran igual que una landing nativa: anti-fraude de precio + push a Dropi + confirmación por WhatsApp. Él es dueño de su página; el riel lo pone Oktopus.
Hay 3 niveles de libertad:
- Widget — pega un snippet (
Oktopus.checkout({...})), cero backend. - Headless — su propio formulario +
POST /api/orders/createcon su publishable key. - Eject — se lleva una landing de Oktopus como código (HTML y/o React) y la deploya en su Vercel.
0. Precondición: el MCP de Oktopus conectado
Necesitás las tools okto_* disponibles, con una API key secret con scope mcp:invoke (+ stores:write y landings:write, que vienen por default en las keys secret).
- Si las tools no están, guiá: generar la key en Configuración → Plataforma de agentes → API keys (https://www.oktopus.lat/app/configuracion),
export OKTOPUS_API_KEY=okto_live_secret_...(ookto_test_secret_...para sandbox) y reiniciar el cliente. - Verificá con
okto_dashboard_metrics.
1. SIEMPRE empezá por el playbook
Antes de armar o ejectar NADA, llamá okto_page_playbook. Te devuelve, con los datos reales de la cuenta del usuario:
- la estructura que convierte (hero→problema→beneficios→cómo funciona→prueba social→comparación→packs con anclaje→garantía→FAQ→urgencia→checkout),
- los gatillos mentales a usar,
- el estado de pixel + CAPI y el snippet del Meta Pixel con su pixel id,
- confianza COD, mobile/velocidad, errores comunes, checklist.
Construí la página siguiendo ese playbook. No armes "cualquier" página.
2. Encontrá (o creá) el producto
El checkout apunta a un producto de Oktopus (ligado a Dropi).
okto_product_lookup(query) /okto_products_list— encontrar el producto y suproduct_id.- ¿No existe?
okto_product_create(o importá del catálogo Dropi conokto_dropi_products_search+okto_dropi_link). - Confirmá el país con
okto_store_get— el COD y Dropi dependen del país.
3. Armá la página — elegí el camino
Camino A — el usuario quiere SU diseño desde cero
Construí la página (HTML/React/lo que use) siguiendo el playbook del paso 1. Para el checkout, elegí:
- Widget (rápido): dejá un
<div id="oktopus-checkout"></div>y el snippet del paso 4. - Headless (control total): su propio form que hace
POST https://www.oktopus.lat/api/orders/createconAuthorization: Bearer <publishable_key>y body{ product_id, nombre, telefono, departamento, ciudad, direccion, quantity, total_price }. La tienda y el país salen de la llave; las ciudades válidas, deGET /api/geo/cities?country=XX.
Camino B — el usuario ya tiene una landing de Oktopus y la quiere a su medida
Usá okto_landing_eject ({ landing_id, domains, format }, format = html | react | both). Devuelve un map de archivos { files: [{path, content}] } → escribí cada archivo a disco (una escritura por archivo). El checkout ya viene cableado y la publishable key ya acuñada. El proyecto trae el README con cómo deployar + editar.
Si el usuario aún no tiene landing y quiere una base:
okto_landing_generate_fullgenera una con IA, después la ejectás.
4. Acuñá la publishable key + cableá el checkout
Si NO usaste eject (que ya acuña la key), acuñala vos:
okto_checkout_key_create({
domains: ["mitienda.com"], // ⚠️ la key SOLO funciona desde estos dominios
product_id: "uuid-del-producto",
environment: "test" // empezá en test; pasá a "live" al final
})
// → { publishable_key, snippet, ... }
Pegá el snippet que devuelve (o usá la publishable_key en tu form headless). El dominio importa: si la página va a vivir en otro dominio, acuñá otra key o agregá el dominio.
La publishable key es pública (va en el JS del cliente) y de bajo riesgo: solo crea órdenes y solo desde sus dominios.
5. Pixel + CAPI (medición)
Del playbook: agregá el Meta Pixel base en la página (con el pixel id del usuario) y disparás PageView/ViewContent/InitiateCheckout. La conversión Purchase la dispara Oktopus del lado del servidor (CAPI) cuando se crea la orden — también desde la página externa — así que NO hace falta dispararla en el navegador. Si el playbook dice que la CAPI no está lista, guiá al usuario a conectar su pixel/Meta en Oktopus antes de pautar.
6. Verificá con una orden de PRUEBA (no te saltes esto)
Antes de poner la página en producción:
- Acuñá / usá una key
test(environment: "test"). - Hacé un pedido de prueba desde la página (o
okto_order_create_codcontest_mode: true). - Confirmá que la orden aparece con
okto_orders_recent— sin tocar Dropi ni disparar WhatsApp (eso es lo que hace el modo test). - Recién ahí, acuñá la key
livey reemplazá la del snippet.
Reglas de oro
- Playbook primero, siempre — que la página tenga lo que convierte.
- Test antes que live: la key
testcrea órdenes sin tocar Dropi/WhatsApp. - El dominio manda: la publishable key es domain-locked; si cambia el dominio, cambia la key.
- Confirmá antes de pasar a live y antes de cualquier escritura de alto impacto.
- Multi-tenant aislado: la key opera solo la cuenta del usuario; nunca asumas datos de otra cuenta.
- La página es del usuario; Oktopus es el riel (órdenes + Dropi + WhatsApp).