Organ&co Tonica B2B
Guía de usuario
Canal mayorista para tu tienda Shopify
assets/{id}.png (ej. settings-email-presupuesto.png). Pendientes: catalogo-coleccion-tabla, inicio-checklist.Organ&co Tonica B2B — Guía de usuario para merchants
Versión: 1.0 · Idioma: Español (Argentina) · Audiencia: Dueños de tienda, ecommerce managers, equipos de ventas B2B.
Contenido
- Introducción
- Requisitos previos
- Primeros pasos — checklist de 10 pasos
- Inicio
- Configuración
- Grupos de clientes
- Listas de precios
- Descuentos B2B
- Aprobaciones
- Formulario de registro
- Acceso y visibilidad
- Simulador
- La tienda: qué ve tu cliente
- Tema y bloques
- Mis cotizaciones (cuentas de cliente)
- Flujos del día a día
- Preguntas frecuentes
- Apéndice técnico
1. Introducción
Organ&co Tonica B2B es una aplicación que se instala dentro de tu panel de Shopify Admin y convierte tu tienda en un canal mayorista sin reemplazar nada de lo que ya tenés.
¿Qué resuelve?
Con Organ&co Tonica B2B podés:
- Crear grupos de clientes (Distribuidores, Hoteleros, Revendedores, etc.) con condiciones distintas.
- Definir listas de precios con porcentajes de descuento, precios fijos por producto y tramos por cantidad.
- Gestionar el registro y aprobación de clientes mayoristas desde un formulario configurable.
- Controlar quién ve cada precio, puede agregar al carrito o cotizar, según el estado del cliente.
- Restringir colecciones, productos y URLs a clientes B2B aprobados.
- Generar cotizaciones como borradores de pedido (Draft Orders) en Shopify.
- Sincronizar los descuentos B2B con el checkout de Shopify.
¿Qué NO hace?
- No reemplaza Shopify B2B nativo (el módulo de Companies de Shopify Plus).
- No envía emails automáticos al aprobar un cliente. Para eso, configurá un Shopify Flow con el tag
b2b:approved. - No diseña ni modifica el tema de la tienda: el merchant activa los bloques y embeds manualmente.
- No es facturación electrónica: el email de presupuesto que envía es el de Shopify (invoice del borrador).
2. Requisitos previos
Antes de instalar Organ&co Tonica B2B, verificá que tu tienda cumpla con lo siguiente:
- Shopify Online Store activo (cualquier plan).
- Tema 2.0 (o superior) habilitado — necesario para activar los App Embeds y bloques de la extensión.
- Cuentas de cliente nuevas habilitadas en Shopify si querés usar la sección "Mis cotizaciones" en el perfil del comprador.
- Acceso de administrador en Shopify para instalar apps y editar el tema.
2.1 Glosario
Antes de arrancar, familiarizate con estos términos que vas a ver en toda la guía:
| Término | Significado |
|---|---|
| Grupo de clientes | Segmento B2B (ej. Hoteleros). Al aprobar un cliente, Shopify recibe el tag b2b:slug. |
| Lista de precios | Reglas de precio del grupo: % general, precios especiales, tramos por cantidad. |
| Visible para el usuario | Opción en cada descuento: si está off, el cliente solo ve el precio final (sin tachado ni leyenda). |
| Precio especial / override | Precio fijo o % por producto, variante o colección. |
| Descuento por volumen | Tramos por cantidad con % o precio fijo adicional. |
| Perfil B2B | Solicitud de alta mayorista de un cliente (pendiente / aprobado / rechazado / suspendido). |
| Visitante | No inició sesión en la tienda. |
| Retail | Logueado pero sin perfil B2B aprobado. |
| Pendiente | Se registró como B2B y espera la aprobación del merchant. |
| Aprobado | B2B activo con grupo asignado; ve precios mayoristas y puede cotizar. |
| Cotización / presupuesto | Borrador de pedido creado desde el Quote Drawer. |
| Quote Drawer | Panel lateral de la tienda donde el cliente arma y envía su presupuesto. |
| URL restringida | Ruta de la tienda solo accesible para clientes aprobados. |
| Intranet B2B | Modo de confinamiento donde el cliente aprobado solo navega dentro de las URLs permitidas. |
| Badge Auto | Marca en las URLs del grupo que indica que la app las creó automáticamente. |
3. Primeros pasos — checklist de 10 pasos
Seguí este orden para poner en marcha el canal B2B:
- ☐ Instalá Organ&co Tonica B2B desde el Partner Dashboard o el enlace de instalación.
- ☐ Abrí la app → sección Inicio (esto registra webhooks y configura la app en tu tienda).
- ☐ En Configuración: activá la app, definí la moneda y los días de vigencia de cotizaciones.
- ☐ Creá tu primer Grupo de clientes (ej. Distribuidores).
- ☐ Creá una Lista de precios y asociala al grupo.
- ☐ En Acceso y visibilidad: configurá la matriz de estados (quién ve precios, quién cotiza).
- ☐ Activá Descuentos B2B → Sincronizar todos (para que los precios apliquen en checkout).
- ☐ Configurá el Formulario de registro con los campos que necesitás.
- ☐ En el editor de tema: activá B2B Mode y Quote Drawer como App Embeds.
- ☐ Probá el flujo completo: registro → aprobación → cotización.
Tip: Podés probar cualquier configuración de precios desde el Simulador antes de publicarla.

4. Inicio
La pantalla de Inicio es el punto de partida cada vez que entrás a la app.
Qué encontrás:
- Banner de pendientes: si hay clientes esperando aprobación, aparece un aviso con enlace directo a Aprobaciones.
- Checklist de configuración: muestra qué pasos del setup están completos y cuáles faltan.
- Tarjetas estadísticas: cantidad de grupos, listas de precios, clientes pendientes y aprobados.
- Accesos rápidos: Borradores, Clientes, Acceso y visibilidad, Simulador.
- Instrucciones de tema: guía rápida para activar los bloques B2B en el editor de tema.
Qué pasa en la tienda:
- Sin completar el checklist, el canal B2B puede estar incompleto: sin precios B2B visibles, sin cotizador activo, etc.
5. Configuración
Encontrás esta sección en el menú lateral de la app.
Interruptor global
El toggle de activación enciende o apaga todo el canal B2B en la tienda. Al desactivarlo, la tienda vuelve a funcionar como retail normal para todos los usuarios, pero no se borran ninguno de los datos (grupos, listas, perfiles B2B).
Cotizaciones
| Campo | Función |
|---|---|
| Días de vigencia | Cuántos días tiene validez un presupuesto enviado. |
| Moneda | Moneda en que se muestran los precios B2B. |
Icono del cotizador
Configurá si el botón para abrir el Quote Drawer aparece en el header, flotante o ambos, y el texto de accesibilidad del ícono.
Quote Drawer
Define el título del panel lateral (ej. "Mi presupuesto").
Pedido rápido
Activá o desactivá el enlace de pedido rápido (carga masiva por SKU) en la barra B2B.
Email de presupuesto
| Campo | Función |
|---|---|
| Auto-envío | Enviar el email de Shopify automáticamente al crear el borrador. |
| Link de pago | Incluir o no el link de pago en el email. |
| BCC staff | Emails del equipo que reciben copia del presupuesto. |
| Asunto y mensaje | Texto personalizable del email. |
Mis cotizaciones
Si tus clientes usan Cuentas de cliente nuevas de Shopify, ingresá aquí el ID de la página de Mis cotizaciones para que el login y post-login los lleven directo ahí.
Qué pasa en la tienda:
- App desactivada = todos ven la tienda como retail.
- Email off = no llega mail de Shopify al cliente cuando el merchant crea el borrador.
6. Grupos de clientes
Los grupos son el corazón de la segmentación B2B. Cada grupo tiene sus propias reglas de precio, acceso y comportamiento en la tienda.
Listado de grupos
La pantalla principal muestra todos los grupos con: nombre, slug, % de descuento base, estado (activo/inactivo) y cantidad de clientes.
Crear o editar un grupo
| Campo | Descripción |
|---|---|
| Nombre | Ej. Distribuidores (visible en el admin). |
| Slug | Identificador único en minúsculas, ej. distribuidores. Se usa como tag en Shopify: b2b:distribuidores. |
| Etiqueta en storefront | Texto opcional que ve el cliente en la barra B2B. |
| % descuento grupo | Porcentaje base para el descuento automático en checkout. Ponelo en 0 si no querés descuento general y usás solo overrides o tramos. |
| Plazo de pago | Informativo, aparece en cotizaciones. |
| Pedido mínimo | Informativo. |
| Activo | Un grupo inactivo no recibe nuevas asignaciones. |
Detalle del grupo
Dentro de cada grupo encontrás:
Clientes del grupo: listado de clientes aprobados con ese grupo. Podés buscar por nombre o email, importar en masa por tag, o quitar clientes individualmente.
URL del catálogo del grupo: la ruta de la colección principal de ese grupo, ej. /collections/hoteleros. Es obligatoria si usás redirecciones automáticas o el Catálogo por colección. Sin esta URL configurada, las redirecciones no funcionan.
URLs y redireccionamiento: reglas de URL específicas para ese grupo (bloquear o redirigir). Las generadas automáticamente desde Catálogo por colección muestran el badge Auto.
Qué pasa en la tienda:
- Al aprobar a un cliente y asignarle este grupo, recibe el tag
b2b:slugen Shopify. - Ve los precios de la lista de precios asociada al grupo.
- Accede al catálogo del grupo y es redirigido fuera de colecciones restringidas.
7. Listas de precios
Cada lista se asocia a un único grupo y define cómo se calculan los precios para esos clientes.
Configuración general
| Campo | Función |
|---|---|
| Nombre | Identificación interna de la lista. |
| Grupo | Segmento B2B al que aplica. |
| Tipo / valor / dirección | Descuento general (% o monto fijo) sobre el precio de lista. |
| Visible para el usuario | Si está desmarcado (default): el cliente ve solo el precio final, sin precio tachado ni texto de descuento. Si está marcado: ve el precio anterior tachado y la leyenda del descuento. |
| Activa | Lista inactiva = no aplica en la tienda. |

Exclusiones
Productos o colecciones que no reciben el descuento general de esta lista.
Precios especiales (producto o colección)
Overrides que ganan sobre el ajuste general:
- Producto / variante: precio fijo o % para un SKU concreto.
- Colección: precio fijo o % para todos los productos de una colección.
Cada override tiene su checkbox Visible para el usuario (default: desmarcado). En la tabla podés cambiarlo sin volver a cargar el precio.
Descuentos por volumen
Grupos de tramos (5+, 10+, 20+ cajas, etc.) con alcance:
- Toda la lista (GLOBAL)
- Colecciones, productos o variantes seleccionadas
Un grupo = un alcance + varios tramos. El checkbox Visible para el usuario aplica a todo el grupo (default: marcado).

Duplicar lista
Desde el detalle: Duplicar lista → formulario precargado → elegir grupo destino → Guardar copia. Copia exclusiones, overrides y tramos. Luego sincronizá Descuentos B2B.
⚠️ Importante: los precios en tienda los calcula la app. Para que el descuento también aplique en checkout, sincronizá en Descuentos B2B (cap. 8).
Qué pasa en la tienda:
- Con descuento invisible, el cliente ve solo el precio B2B recalculado (sin tachado ni “% off”).
- Con descuento visible, ve precio tachado + leyenda.
- La tabla Descuentos por volumen en la PDP solo aparece si el producto tiene tramos configurados.
- Los precios B2B también se muestran en grillas de colección (embed B2B Collection Prices).
8. Descuentos B2B
Esta sección muestra el estado de sincronización entre tus listas de precios y el sistema de descuentos automáticos de Shopify.
¿Qué son los descuentos sincronizados?
Cuando un cliente B2B aprobado llega al checkout, Shopify aplica automáticamente el descuento de su grupo gracias a un "descuento automático" vinculado al tag b2b:slug. Organ&co Tonica B2B crea y actualiza esos descuentos por vos.
Pantalla de descuentos
La tabla muestra cada grupo con:
- % efectivo aplicado en checkout.
- Estado: Sincronizado, Pendiente sincronización, Sin descuento.
Cuándo sincronizar
Sincronizá siempre que:
- Cambiés el % de descuento de un grupo.
- Modifiques una lista de precios.
- Agregues o quitás tramos por cantidad.
Podés sincronizar todos los grupos a la vez o uno por uno desde la pantalla.
⚠️ Los precios fijos por variante (overrides) no se replican exactamente en el checkout vía descuentos automáticos. Para casos de precio exacto, usá el flujo de cotización/borrador.
Qué pasa en la tienda:
- Sin sincronizar: el precio B2B aparece en la tienda pero el checkout cobra el precio retail.
- Sincronizado: el checkout aplica el descuento automáticamente para clientes con el tag del grupo.
9. Aprobaciones
Esta es la bandeja de entrada de todos los clientes que se registraron como B2B.
Filtros disponibles
Filtrá por estado: Pendiente · Aprobado · Rechazado · Suspendido.
Acciones sobre un cliente
Aprobar: elegís el grupo al que lo asignás. El cliente pasa a estado Aprobado y recibe el tag B2B en Shopify.
Rechazar: el perfil queda rechazado. El cliente no tiene acceso B2B.
Suspender: revocás el acceso sin borrar el perfil. Podés reactivarlo después.
También podés realizar acciones masivas: seleccionás varios clientes y aprobás/rechazás/suspendés de una vez.
Qué pasa en la tienda:
- Cliente pendiente: no ve catálogo B2B, ve mensaje de espera.
- Cliente aprobado: barra B2B visible, precios mayoristas, acceso al cotizador.
- Cliente suspendido: pierde acceso B2B inmediatamente.
Nota sobre emails: Organ&co Tonica B2B no envía un email automático al aprobar. Para notificar al cliente, configurá un Shopify Flow que se dispare con el tag b2b:approved.
10. Formulario de registro
Configurá cómo y qué datos pedís a quienes quieran registrarse como clientes B2B.
Presentación del formulario
Elegí dónde se muestra el formulario:
- Drawer: se abre como panel lateral al hacer click en el botón de registro.
- Incrustado en página: se muestra dentro de una página de la tienda (ej.
/pages/registro-b2b).
Campos configurables
Activá y marcá como obligatorios los campos que necesitás:
- Nombre y apellido (obligatorio siempre)
- Empresa (recomendado para B2B)
- CUIT (clave para clientes en Argentina)
- Teléfono
- Dirección
- Tipo de cliente (selector con los grupos disponibles)
- Campos personalizados adicionales
Auto-aprobación
Si activás esta opción, los clientes que completen el formulario quedan aprobados automáticamente (sin revisión manual). Útil si no necesitás validar empresa por empresa.
Textos
Personalizá el texto del botón de envío y el mensaje que ve el cliente al completar el formulario exitosamente.
11. Acceso y visibilidad
Esta sección tiene tres pestañas que controlan el comportamiento B2B en toda la tienda.
Pestaña 1 — Por estado de cliente
Definí qué puede hacer cada tipo de visitante en la tienda.
| Estado | Ver precios | Agregar al carrito | Cotizar | Uso típico |
|---|---|---|---|---|
| Visitante | Configurable | No | No | Público general |
| Retail | Sí | Sí | No | Compra minorista normal |
| Pendiente | No | No | No | Espera aprobación |
| Aprobado | Precios B2B | No* | Sí | Mayorista cotiza |
\* En el modelo B2B típico: el aprobado cotiza y el merchant convierte la cotización en pedido.
Qué pasa en la tienda:
- Según esta configuración, la app muestra u oculta precios, el botón de carrito y el botón de cotización.
- Los cambios aplican en tiempo real sin necesidad de deploy.
Pestaña 2 — Catálogo por colección
Controlá qué grupos tienen acceso a cada colección del catálogo.

Para cada colección elegís uno de estos modos:
| Modo | Significado |
|---|---|
| Todos los grupos | Sin restricción. Cualquier cliente B2B aprobado puede verla. |
| Solo estos grupos | Solo los grupos seleccionados tienen acceso. El resto es redirigido al catálogo de su grupo. |
| Oculta para estos grupos | Los grupos seleccionados no la ven. El resto sí puede acceder. |
Al guardar, la app crea automáticamente las reglas de redirección en cada grupo afectado. Esas reglas aparecen en el grupo con el badge Auto.
⚠️ Para que las redirecciones funcionen, cada grupo debe tener configurada su URL de catálogo (en Grupos de clientes → detalle del grupo).
Sección avanzada: al final de la pestaña encontrás reglas puntuales por producto individual (colapsado por defecto).
Qué pasa en la tienda:
- Las colecciones configuradas como restringidas no aparecen en grillas para grupos sin acceso.
- Si un cliente intenta entrar por URL directa, es redirigido al catálogo de su grupo.
Pestaña 3 — Por URL e intranet
URLs restringidas:
Ingresá rutas de la tienda (ej. /pages/b2b-landing, /collections/hoteleros) que solo clientes B2B aprobados pueden ver. Cualquier otro perfil ve una pantalla de "Acceso restringido" con botones de login y registro B2B.
Podés configurar el mensaje que aparece en esa pantalla y un banner de beneficios (hasta 6 tarjetas) debajo del gate.
Intranet B2B:
El modo intranet confina al cliente B2B aprobado dentro de un conjunto de rutas permitidas. Si intenta navegar fuera de esas rutas, es redirigido a la URL de inicio B2B.
Nota: las rutas de colección creadas automáticamente desde "Catálogo por colección" se gestionan solas. En "Por URL" solo agregás rutas extra como páginas o secciones adicionales.
12. Simulador
El simulador te permite probar cómo se ven los precios sin entrar a la tienda.
Cómo usarlo:
- Elegí el grupo de clientes.
- Buscá el producto.
- Ingresá la cantidad.
- El simulador muestra el precio retail y el precio B2B resultante, con el desglose de tramos si aplica.
Usalo siempre que cambiés listas de precios o tramos por cantidad para verificar que los cálculos sean correctos antes de publicar.
13. La tienda: qué ve tu cliente
Por estado
| Estado | Experiencia |
|---|---|
| Visitante en URL restringida | Pantalla de gate: "Esta sección es exclusiva para clientes B2B. Iniciá sesión o registrate." |
| Retail | Precios normales y carrito según configuración. Sin acceso a cotizador. |
| Pendiente | Banner "Tu solicitud está en revisión". Sin precios B2B ni cotizador. |
| Aprobado | Barra B2B visible, precios mayoristas en PDP y grillas, botón "Agregar a cotización". |
Cotizador (Quote Drawer)
El Quote Drawer es el panel lateral desde donde el cliente B2B arma y envía su presupuesto.
Paso a paso:
- El cliente navega el catálogo y hace click en "Agregar a cotización" en un producto.
- Abre el drawer desde el ícono del header o el botón flotante.
- Revisa las líneas (productos, cantidades, precios B2B).
- Toca "Enviar presupuesto".
- El sistema crea un borrador de pedido en Shopify. Si el auto-envío está activo, también llega el email.
- El cliente ve el mensaje de éxito (configurable en Configuración).
Pedido rápido
El enlace de pedido rápido aparece en la barra B2B para clientes aprobados. Abre una pantalla donde pueden cargar productos en cantidad por SKU sin navegar el catálogo.
14. Tema y bloques
Para que Organ&co Tonica B2B funcione en la tienda, el merchant debe activar los App Embeds y en algunos casos agregar bloques en las plantillas.
App Embeds
Ruta: Tienda online → Personalizar → App embeds (ícono de puzzle).
| Embed | Función |
|---|---|
| B2B Mode | Motor principal: policy, precios, gate de acceso, barra B2B, bloqueo de paths. |
| Quote Drawer | Panel lateral de cotización. |
| B2B Collection Prices | Muestra precios B2B en las tarjetas de grilla de colección. |
| B2B Guard | Previene el "flash" de contenido antes de cargar la policy (recomendado para intranet). |
| B2B Navigation | Menú específico para clientes B2B (usa el menú de Shopify que vos configures). |
Configuración del embed B2B Mode
El embed de B2B Mode tiene ajustes propios en el editor de tema:
- Colores de la barra B2B.
- Textos del gate de acceso restringido.
- ID de página "Mis cotizaciones" (debe coincidir con lo que configuraste en Configuración).
- URL de la página de registro B2B.
Bloques en plantillas
Para algunos casos necesitás agregar bloques específicos dentro de plantillas:
| Bloque | Plantilla | Para qué |
|---|---|---|
| Add to Quote Button | Producto | Botón "Agregar a cotización" en la PDP. |
| Formulario registro B2B | Página | Si usás el formulario incrustado en una página fija. |
| B2B Pricing | Producto B2B | Bloque de precio B2B en PDP (si usás plantilla alternativa). |
15. Mis cotizaciones (cuentas de cliente)
Si tus clientes usan las cuentas de cliente nuevas de Shopify, podés activar la extensión "Mis cotizaciones" que les muestra un historial de sus presupuestos.
Cómo activarla
- Hacé deploy de la app (desde tu equipo técnico:
npm run deploy). - En Shopify Admin: Configuración → Checkout → Personalizar (editor de Checkout and accounts).
- Navegá a Cuentas de cliente.
- Activá la extensión Mis cotizaciones.
- (Opcional) Activá Mis cotizaciones (enlace) en el perfil, o agregá el enlace de navegación manualmente.
Qué ve el cliente
- Listado de todos sus borradores enviados desde el Quote Drawer.
- Estado de cada cotización (borrador, enviado, completado).
- Link para ver el detalle y el invoice.
Requisito: los borradores deben tener visibleToCustomer: true para aparecer en esta extensión. La app lo configura automáticamente al crearlos desde el Quote Drawer.
16. Flujos del día a día
16.1 Nuevo registro → aprobación
- Revisá la sección Aprobaciones (hay un banner si hay pendientes).
- Abrí la ficha del cliente y verificá empresa y CUIT.
- Hacé click en Aprobar y elegí el grupo.
- (Opcional) Configurá un Flow en Shopify con el tag
b2b:approvedpara enviarle un email de bienvenida al cliente.
16.2 Cotización recibida
- En Shopify Admin: Pedidos → Borradores.
- Abrí el borrador del cliente y revisá las líneas y precios B2B.
- Convertilo en pedido o ajustá manualmente si es necesario.
- Enviá la factura si no salió automáticamente (botón "Enviar factura" en el borrador).
- El cliente lo puede ver en Mis cotizaciones en su cuenta.
16.3 Cambiar precios
- En App → Listas de precios: editá el porcentaje, override o tramo deseado.
- O en Grupos de clientes: cambiá el % base del grupo.
- En Descuentos B2B → Sincronizar grupo (o todos).
- Verificá el resultado en el Simulador.
16.4 Suspender un cliente
- En App → Aprobaciones: buscá al cliente.
- Abrí su ficha → Acción → Suspender.
- El cliente pierde acceso B2B inmediatamente; el perfil queda guardado.
- Podés reactivarlo con Aprobar en cualquier momento.
17. Preguntas frecuentes
¿Por qué no veo los precios B2B en la tienda?
Verificá que: (1) la app esté activa en Configuración, (2) el cliente esté Aprobado con grupo asignado, (3) el embed B2B Mode esté activado en el editor de tema.
¿Por qué no puedo cotizar?
La opción de cotizar se activa en Acceso y visibilidad → estado Aprobado → columna "Cotizar". También verificá que el embed Quote Drawer esté activo y que el botón esté en la plantilla de producto.
¿Por qué el catálogo pide login?
La URL está en la lista de URLs restringidas. Solo clientes aprobados pueden entrar. Si no era la intención, revisá Acceso y visibilidad → Por URL.
¿Llega un email cuando el cliente se registra?
No automáticamente. Organ&co Tonica B2B no envía emails propios. Configurá un Shopify Flow que se dispare con el tag b2b:approved para notificar al cliente cuando lo aprobás.
¿Desactivar la app borra los grupos y datos?
No. El interruptor global solo oculta el canal B2B en la tienda. Todos los grupos, listas de precios y perfiles se conservan.
¿Cuál es la diferencia entre cotización y pedido?
Una cotización es un borrador de pedido. El cliente envía el presupuesto desde el Quote Drawer y el merchant lo convierte en pedido cuando hay acuerdo. El cliente no paga directamente desde el drawer.
¿Por qué el precio en la tienda es diferente al que aparece en el checkout?
Porque los Descuentos B2B no están sincronizados. Hacé click en Descuentos B2B → Sincronizar luego de cada cambio de precios.
¿Qué es el badge "Auto" en las URLs del grupo?
Son rutas creadas automáticamente por la app cuando configurás el Catálogo por colección. Indican que la redirección la gestiona la app y no debés borrarlas manualmente.
¿Qué hace "Visible para el usuario" en listas de precios?
Controla si el cliente nota el descuento. Desmarcado: solo precio final. Marcado: precio tachado + texto (ej. “5% off” o “Descuento por volumen”). El descuento se aplica igual en ambos casos.
¿Por qué no aparece la tabla "Descuentos por volumen" en un producto?
Solo se muestra cuando hay tramos de volumen configurados para ese producto, variante o colección. Si solo tiene descuento general o precio especial, no aparece el bloque.
18. Apéndice técnico: para tu equipo técnico
Esta página resume lo que el equipo de desarrollo necesita saber para instalar, mantener y extender Organ&co Tonica B2B. No contiene jerga de negocio: está pensada para devs.
Stack: Remix 2.15 + Prisma + PostgreSQL + Shopify App Remix + Polaris. Theme extension en extensions/quoting-drawer.
Hosting: Railway (app principal) o Vercel (producción alternativa). Base de datos en Railway Postgres o Neon.
Deploy: npm run deploy publica la configuración de Shopify y las extensiones (tema + Customer Accounts). El hosting se actualiza por separado (push → Railway, o Vercel CI).
Variables de entorno requeridas: SHOPIFY_API_KEY, SHOPIFY_API_SECRET, SHOPIFY_APP_URL (igual al application_url del toml activo), DATABASE_URL, DATABASE_URL_UNPOOLED, SCOPES, NODE_ENV=production.
Primer install en una tienda nueva: después de migrar la base de datos, reinstalar la app en la tienda para recrear la sesión OAuth.
Webhooks: app/uninstalled, app/scopes_update, draft_orders/create (shop-specific, se registran en afterAuth).
Customer Account UI: tras deploy, activar manualmente en Shopify Admin → Configuración → Checkout → editor de cuentas de cliente.
App proxy: /apps/tonica-b2b/ → {application_url}/api/. El subpath depende del shopify.app*.toml activo en el deploy.
Documentación técnica: consultar los archivos AI-CONTEXT.md, TONICA-B2B-SYSTEM-DOCUMENTATION.md y DEPLOYMENT-AND-OPS.md en el repositorio.
Organ&co Tonica B2B — wearetonicadev. Para soporte técnico, contactar al equipo de desarrollo.