Escríbelas en un papel antes de tocar nada.
.es que vas a comprar.Si cambias el nombre de marca a mitad, tiras la página de Facebook y el dominio. Decídelo ahora, no en la Fase 2.
Si ya usas el correo de Hostinger, ya está resuelto.
No pagues un buzón nuevo por cada tienda. Los correos al cliente (confirmación de pedido, envío, devolución) los manda Shopify desde sus propios servidores, no desde tu buzón.
Puedes decir en voz alta el nombre de la marca, el dominio exacto y el precio de venta sin dudar.
Busca el .es de la marca y págalo.
Ese precio de escaparate solo aplica contratando 3 años o más. A 1 año son 6,99 €. Si la tienda es un test, paga el año y ya está; si vas en serio con la marca, los 3 años salen a cuenta.
En el carrito te va a ofrecer el plan de correo. No lo contrates si no lo necesitas. Shopify manda los correos al cliente desde sus propios servidores.
hPanel → Dominios → tu dominio → DNS / Nameservers. Déjala localizada.
dns-shopify.sh; tú solo tienes que saber llegar aquí.Pega esto en el Terminal cambiando el dominio.
dig +short NS tudominio.es @a.nic.es
Un .es recién comprado tarda de 15 minutos a 24 horas en delegarse. Si el comando sale vacío no es propagación: es que el registro todavía no tiene el dominio. No hay nada que arreglar, es esperar. No toques los DNS ni vuelvas a comprar nada.
Es lo que deja a Claude tocar los DNS por ti. Se hace una sola vez.
athenia-claude.mkdir -p ~/.athenia-tools && pbpaste > ~/.athenia-tools/hostinger.key && chmod 600 ~/.athenia-tools/hostinger.key
El token solo se muestra una vez. Si cierras la ventana sin copiarlo, se acabó: hay que borrarlo y generar otro, y mientras tanto Claude no puede tocar los DNS y el alta se para.
dig +short NS tudominio.es @a.nic.es devuelve algo (los nameservers de Hostinger). Si devuelve vacío, sigue con la Fase 2 y vuelve luego: no bloquea nada.
Ve a facebook.com/pages/create con tu perfil personal ya logueado.
Escribe el nombre exacto de la marca y elige esa categoría, solo esa.
NUNCA elijas "Salud y belleza" ni "Producto médico", aunque Facebook te lo sugiera por el producto. Si lo haces, la página entra en la revisión de anuncios de salud y a partir de ahí Meta te rechaza los creativos uno detrás de otro. Se arregla tarde y mal.
Si la interfaz te sale en inglés, escribir "tienda" no filtra nada. Escribe directamente "Shopping".
Rellena web, teléfono y correo. Nada más.
Deja Location y Hours VACÍOS. Si pones la dirección, Facebook trata la página como negocio físico: la mete en el mapa, activa las valoraciones de ubicación y te aparece gente en la puerta preguntando por el producto. No es una tienda física.
No conectes el número aquí. Pasa de largo.
Un número de teléfono solo puede estar en un sitio a la vez: o en la app de WhatsApp Business, o en la Cloud API. Si lo conectas aquí, lo atas a la app — y luego, para automatizar las confirmaciones de pedido, hay que desvincularlo, esperar y volver a verificarlo. Media mañana perdida.
Terminar el asistente sin añadir nada más.
Si invitas a tus amigos, ensucias el público que Meta aprende de la página: te da seguidores que no compran y el algoritmo empieza a buscar más gente como ellos. Los primeros días de campaña salen caros por esto.
La página existe y en su resumen pone la categoría "Shopping & retail".
Es normal. Avisa a Claude y él te invita como administrador.
El negocio lo creó una aplicación por API, y su único administrador figura como "UnclaimedBusinessUser FromPool". Se intentó invitarte por API con POST /{business}/business_users y no funcionó: el negocio se queda sin invitaciones pendientes y tú sigues sin verlo, así que no puedes ponerle tarjeta ni conectar la app de Facebook e Instagram — es decir, no hay píxel.
La regla nueva, para no repetirlo: los activos de Meta (cuenta publicitaria y píxel incluidos) los creas tú desde tu cuenta, en tu propio negocio. Claude no los crea por API. Si ya hay un negocio huérfano de una tienda anterior, olvídalo y empieza en el tuyo.
Solo si alguien te ha invitado a un negocio que ya existe. Con la regla nueva no hace falta: sáltatelo.
Era el intento de rescatar el negocio huérfano creado por API, y no funcionó: la invitación no llega. Si creas la cuenta publicitaria en tu propio negocio, no hay nada que aceptar. Se deja escrito para que nadie vuelva a intentarlo.
Si alguna vez sí recibes una invitación real: no estar logueado en Facebook en ese navegador hace que el enlace te mande a un login y luego se pierda. Loguéate primero, abre el correo después.
Verás "Full access: Everything" con un aviso rojo encima.
El negocio tiene two_factor_type: all_required. Sin 2FA no se puede administrar aunque seas administrador. No es un fallo, es la configuración del negocio.
Cierra lo que te ofrece y entra directo a la pantalla buena.
Facebook te empuja hacia la passkey. En un Mac sin llavero de iCloud activado eso es un callejón sin salida: acaba pidiéndote meter tu cuenta de Apple entera en el ordenador solo para guardar una llave.
No sigas por ahí. Cierra esa ventana con la X o con "Not now" y ve directo a:
accountscenter.facebook.com/password_and_security
Te va a listar todas tus cuentas. Elige la de Facebook.
Si activas el 2FA en una cuenta de Instagram o en la página, el negocio te sigue bloqueando igual y encima crees que ya está hecho. El 2FA que exige el negocio es el de la persona: tu perfil de Facebook.
App de autenticación, nunca SMS.
Con la misma app de autenticación que usas para Hostinger.
La clave en texto que aparece junto al QR es la llave maestra del 2FA: con ella cualquiera genera tus códigos. No la mandes por chat ni la guardes en texto plano — va al gestor de contraseñas. Los códigos de recuperación sí conviene guardarlos: son los que te salvan si pierdes el móvil.
Tiene que poner "Two-factor authentication is on".
Recarga business.facebook.com.
El negocio aparece en business.facebook.com con sus cuentas y sus páginas dentro.
business.facebook.com/settings/pages → elige el negocio → botón azul Add.
Elige "Add an existing Facebook Page". Las otras dos no:
• Request shared access es para agencias que piden permiso sobre la página de un cliente — se queda esperando una aprobación que nunca llega porque la página es tuya.
• Create a new Facebook Page te crea una página duplicada, y acabas anunciándote desde la vacía.
business.facebook.com/settings/ad-accounts → cuenta de la marca → Configuración de pagos → añadir tarjeta.
Sin método de pago, la cuenta no puede gastar aunque la campaña esté creada y activa. Se queda sin entregar y no avisa en la cara.
Desde la app del móvil: cuenta nueva → pasar a profesional (categoría Tienda) → vincular a la página.
No reutilices una cuenta de Instagram de otra marca. El público y el contenido no tienen nada que ver, y ensucia lo que Meta aprende sobre a quién enseñarle tus anuncios.
tienda-estado.sh <carpeta> <dominio> <slug> dice que hay método de pago y PAGE_ID.
Ve a shopify.com/es/prueba-gratis y créala con tu correo. Sin intermediarios.
NO abras la tienda a través de un tercero tipo storebuild.ai. Te la crean bajo su cuenta de Shopify Partners y después te la transfieren. Al transferirse, la tienda sale de la organización de ellos y no entra en la tuya. Se queda huérfana.
Qué pasa si te lo saltas: ninguna app propia se puede instalar — ni la tuya ni la del proveedor. Todos los botones dan error y no hay ningún mensaje que te diga por qué. Se pierde la tarde entera hasta dar con el camino bueno.
Usa un correo sin cuenta previa de Shopify. Si el correo ya tuvo una tienda, pierdes la promo de 1 $/mes durante 3 meses y pasas a pagar tarifa completa desde el primer día.
Comprueba el plan y el contenido antes de dar nada por hecho.
La transferencia no cuesta la promo: el plan Basic se queda en 1 $/mes hasta el 15-dic-2026. Y ahí ves las comisiones reales de tarjeta: 2,1 % + 0,30 € online. Mételas en tus números, no en el "ya veremos".
Configuración → Plan. Confirma el precio y la fecha de fin de promo.admin.shopify.com → tu tienda → Configuración → Apps y canales de venta → Desarrollar apps → Build apps in Dev Dashboard.
El Dev Dashboard no tiene selector de organización: el contexto te lo da la puerta por la que entras.
Qué pasa si te lo saltas: si abres dev.shopify.com directamente, caes en otra organización, creas la app ahí y no se puede instalar en tu tienda. Todo lo que hagas después está mal y no te avisa nadie.
Create app → nombre → Versions → pegar alcances → App URL cualquiera → Release.
Los alcances van separados por comas, en una sola línea. Estos están probados y funcionan:
write_products,write_content,write_themes,write_shipping,write_orders,write_discounts
write_inventory exige read_locations. Si pides uno sin el otro, Shopify rechaza la concesión entera — no solo ese alcance — y la instalación revienta sin decirte cuál falla.
Home → Installs → "Install app" → elegir la tienda → Instalar.
Ese botón es el instalador oficial y es el que nunca se encuentra. Está en Home, no en Settings ni en Versions. Búscalo ahí y ya está.
Settings → Credenciales → copia el ID de cliente y el Secreto.
El token se pide con client_credentials y caduca a las 24 h. No pasa nada: se renueva solo. No hay que volver a esta pantalla cada día.
Todos estos los hemos pisado. Léelos para no repetirlos.
Qué pasa si lo pulsas: te crea una tienda de pruebas nueva que no es la tuya, sin dominio ni pagos, y te pasas un rato configurando una tienda que no sirve para vender.
No se puede usar este enlace de instalación./oauth/install?client_id=…
No son una ruta documentada y no funcionan. Qué pasa si insistes: te pasas media hora cambiando parámetros de una URL que nunca iba a ir, convencido de que te falta una letra.
failed_grant_with_invalid_scopes. El mensaje te miente.failed_grant_with_invalid_scopes no significa que un alcance esté mal escrito. Lo provoca que la app no tenga concesión posible en esa tienda, o pasar scope= en la URL sin el flujo heredado.
Qué pasa si te lo crees: te pones a quitar y poner alcances uno a uno durante una hora, y el problema estaba en la organización de la app.
• El "Token de automatización" (atkn_) NO es un token de Admin API: es para la CLI en CI/CD. Da 401 siempre, con cualquier llamada.
• No existe la sección "Distribución" en apps de comerciante: solo aparece en apps creadas desde Partners. Si la buscas y no está, no es un despiste tuyo.
• Las apps personalizadas heredadas (crear la app dentro del admin) están muertas desde el 1-ene-2026.
Esto es tuyo a mano, sí o sí. Ve tachando.
No existen las mutaciones shopUpdate, ni de dominios, ni de métodos de pago, ni de preferencias de tienda, ni de checkout. No es cuestión de permisos: Shopify no se lo expone a ninguna app, porque son cosas de dinero, identidad y consentimiento. No pierdas tiempo buscando la llamada: no está.
Las tiendas vienen en America/New_York. Qué pasa si no la cambias: seis horas de desfase — te bailan las horas de corte del proveedor, los informes salen del día equivocado y crees que un día no vendiste nada.
"Información comercial" son los datos fiscales de la empresa (ahí va el domicilio social). "Perfil de la tienda" son nombre y correos. Están en la misma pantalla y es muy fácil rellenar la que no es.
El token responde 200 a /admin/api/2026-07/shop.json.
Prepara tu propia política y tu dirección de devoluciones antes de vender.
Dropea NO gestiona devoluciones por desistimiento, cambio de opinión ni insatisfacción. Solo cubre garantía: producto defectuoso o equivocado.
Qué pasa si no lo tienes en cuenta: cada devolución te cuesta el producto + el envío que ya pagaste, y te quedas con una unidad usada que no puedes revender. Si ofreces "garantía de prueba 30 días" sin meter esto en los números, la oferta que parecía buena te deja en pérdidas.
Formulario de consultas de Dropea → pídeselos al proveedor del producto.
Dropea no te da los datos GPSR. Hay que pedírselos al proveedor con su formulario de consultas, y tarda. Qué pasa si lo dejas para el final: te plantas con la tienda montada y los anuncios listos sin poder publicar la ficha legal.
El ID de dropshipper es numérico y no aparece en el panel. Se saca del token de sesión, campo user_number. Si lo buscas por la interfaz, no está.
Respeta el orden. No intentes adelantarte.
dominio → correo → tienda → app del proveedor → pedidos
No se pueden crear pedidos sin una tienda conectada. Ni siquiera una muestra para ti. Si querías probar el producto antes de montar nada, no se puede: monta primero.
El propio proveedor recomienda no garantizar el cobro con tarjeta al repartidor. Ponlo así en la ficha de producto y en el checkout, para que el cliente lo sepa antes de pedir.
Los tramos de peso cambian el margen del pack.
El pack de 2 sube de tramo de peso, no paga el doble de envío. Sale mucho mejor que dos pedidos sueltos.
Qué pasa si no lo miras: pones el precio del pack a ojo, regalas margen en el 2×1 o lo dejas tan caro que nadie sube de una unidad — y el ticket medio se queda plano.
La tienda aparece conectada en el panel de Dropea, tienes el ID de dropshipper numérico apuntado y sabes cuánto te cuesta el envío de 1 unidad y el de un pack de 2.
dns-shopify.sh <dominio> --aplicar — los registros DNS del dominio hacia Shopify.nueva-tienda.sh <carpeta> "<Marca>" <dominio> — el esqueleto de la tienda.tienda-estado.sh — la radiografía: dominio, correo, Meta y contenido.tienda-checklist.sh <slug> — la tienda por dentro: producto, precios, stock, páginas legales, pie, tema, textos en inglés, contraseña y píxel. Solo lee.crear_campana.py — campaña, conjunto y 3 anuncios, siempre en pausa, sobre la cuenta publicitaria que tú hayas creado.meta-alta.sh se queda solo para consultar.| Fase | Tiempo |
|---|---|
| 0 · Antes de empezar | 5 min |
| 1 · Dominio | 5 min (+ espera del .es, no cuenta) |
| 2 · Página de Facebook | 5 min |
| 3 · Acceso al negocio y 2FA | 10 min |
| 4 · Enganchar la página y pagar | 5 min |
| 5 · La tienda Shopify | 20 min |
| 6 · El proveedor (Dropea) | 10 min |
| Total | ~60 min |
La Fase 3 solo se paga una vez: cuando tu Facebook ya tiene 2FA, la siguiente tienda baja a unos 50 minutos.
Los 20 minutos de la Fase 5 son con esta guía delante. Sin ella fueron cuatro horas.