Si vende online en República Dominicana usando Shopify y necesita emitir e-CFs certificados ante la DGII por cada orden, esta integración cierra el círculo. Shopify se queda con la vitrina, el carrito y el checkout; Axentra emite los comprobantes legales, lleva la contabilidad y mantiene el inventario alineado entre el almacén físico y la tienda online.
Estado del módulo: Beta. Las órdenes con e-CF, la sincronización de catálogo e inventario, y las notas de crédito por reembolsos están en producción.
La integración es de una sola dirección por tipo de dato, y conviene tenerlo claro antes de conectar:
| Dato | Dirección |
|---|---|
| Productos y precios | Axentra manda a Shopify |
| Inventario | Axentra manda a Shopify (y Shopify avisa a Axentra de sus propios ajustes) |
| Órdenes | Shopify manda a Axentra |
| Contactos de clientes | Shopify manda a Axentra, junto con la orden |
Nunca se importa nada del catálogo de Shopify hacia Axentra. Si un producto existe en su tienda y no en Axentra, Axentra no lo copia: se lo reporta para que usted lo cree. Su catálogo en Axentra es la fuente de verdad, y esa asimetría es intencional.
Al conectar, las órdenes anteriores de su tienda no se importan. No se crean facturas ni se emiten comprobantes fiscales por ventas que ya ocurrieron antes de la conexión.
Esto es deliberado. Las ventas viejas ya fueron facturadas como usted las haya facturado, y volver a emitirlas generaría comprobantes duplicados ante la DGII, con fecha del día de la conexión en vez de la fecha real de la venta.
A partir del momento en que conecta, cada orden nueva sí genera su factura y su e-CF. El mismo aviso aparece en pantalla antes de que pulse Guardar y validar.
Si alguno de los lados se cae temporalmente, las operaciones se reanudan solas al recuperarse, sin duplicar facturas ni perder eventos.
Vaya a Ajustes → Shopify desde el panel de Axentra.
Necesita tres cosas:
Al terminar de crear la app, Shopify le entrega un Client ID y un Client secret. Esos dos valores son los que va a pegar en Axentra.
El Client secret se muestra una sola vez. Cópielo en el momento; si lo pierde, tendrá que generar uno nuevo desde Shopify.
Este es el error más común al conectar, y da un mensaje poco claro.
Axentra necesita el dominio canónico de su tienda, el que termina en .myshopify.com. Casi nunca es el nombre bonito de la tienda: Shopify genera un identificador propio que puede verse como ceuseh-n1.myshopify.com, sin relación con el nombre del negocio.
Para encontrarlo, entre al panel de Shopify y mire la barra de direcciones: la parte después de /store/ es el identificador de su tienda. También aparece en Configuración → Dominios, marcado como el dominio de myshopify.com.
Si escribe el nombre comercial en vez del canónico, la validación falla con "No se pudo validar la conexión con Shopify", aunque las credenciales sean correctas. Axentra compara el dominio que usted escribe contra el que Shopify reporta, y exige que coincidan, precisamente para que nunca se conecte a la tienda equivocada.
En Ajustes → Shopify:
Axentra valida las credenciales en el momento, contra su tienda real, antes de guardar nada. Si son correctas, la tarjeta pasa a Conectada y se suscriben los eventos automáticamente.
La tarjeta muestra entonces el dominio, la ubicación y el almacén mapeados, las fechas de la última sincronización de productos, de inventario y de la última orden recibida, y cualquier error de la última operación.
Bajo Mapeo de ubicación, seleccione:
Solo un almacén puede alimentar a Shopify a la vez. Si tiene varias bodegas, elija la que usa para envíos online.
Toda orden que entra desde Shopify se factura como consumo: E32 con e-CF activo, o B02 si trabaja con comprobantes físicos.
Nunca se emite un crédito fiscal (E31 o B01) por una venta de la tienda online, aunque el contacto en Axentra tenga un RNC registrado.
La razón es de fondo: en el checkout de Shopify nadie comprueba que quien escribe un RNC sea realmente su dueño. Si aceptáramos ese dato, cualquier comprador podría hacer que se emita un comprobante con valor fiscal a nombre de un contribuyente que no autorizó la venta. Un comprobante de consumo no tiene ese riesgo.
Consecuencia a tener presente: la Norma 05-19 exige RNC del comprador en un E32 de 250,000 pesos o más. Una orden online que supere ese monto no podrá emitir su e-CF, porque no hay RNC que declarar. La factura se registra igual en Axentra; el comprobante hay que gestionarlo aparte. Para ventas grandes a empresas, factúrelas fuera de la tienda online.
Axentra lee la configuración de impuestos de su tienda y se adapta a ella. No hay nada que configurar de este lado.
En Shopify, la opción vive en Configuración → Impuestos y aranceles, en la casilla que indica si los precios ya incluyen impuestos:
Elegir mal aquí desviaría los montos alrededor de un 15%, en una dirección u otra, así que Axentra no lo adivina: lo consulta a su tienda en cada sincronización de catálogo. Si no logra leerlo, la sincronización se detiene con un error en vez de publicar precios equivocados.
Los importes que reporta Shopify se guardan como referencia en las notas de la factura, para que pueda reconciliar; los totales legales siempre se calculan desde su catálogo de Axentra.
| Botón | Qué hace |
|---|---|
| Guardar y validar | Guarda las credenciales tras comprobarlas contra su tienda real. |
| Sincronizar productos ahora | Publica todo su catálogo activo de Axentra en Shopify. Una primera carga grande puede tomar media hora porque Shopify limita la velocidad. |
| Sincronizar inventario ahora | Empuja el stock actual del almacén mapeado para cada producto enlazado. Requiere el mapeo de ubicación configurado. |
| Cancelar sincronización | Aparece cuando hay una sincronización en curso. La detiene en el próximo punto seguro (segundos). |
| Registrar webhooks | Vuelve a suscribir los eventos de Shopify. Úselo si dejó de recibir órdenes o reembolsos. |
| Restablecer enlaces | Borra la correspondencia entre productos de Axentra y Shopify para que la próxima sincronización la reconstruya. |
| Desconectar | Desactiva la integración. Las facturas y productos en Axentra se preservan. |
Cada producto activo en Axentra se publica en Shopify con título, SKU, precio, foto e inventario habilitado. Se publican todos los productos activos, no solo los marcados para la tienda.
Cuando el SKU de un producto suyo coincide con uno que ya existe en Shopify, Axentra actualiza ese producto en vez de crear un duplicado. Conviene saber qué sobrescribe y qué respeta:
| Campo | Comportamiento |
|---|---|
| Precio, SKU, ITBIS | Siempre se actualizan desde Axentra. |
| Nombre y descripción | Se actualizan si en Axentra tienen contenido. Si el campo está vacío en Axentra, no se toca lo que hay en Shopify. |
| Foto | Se publica la de Axentra. Si en Axentra no hay foto, no se borra la que tenga el producto en Shopify. |
| Estado (activo, borrador, archivado) | Nunca se toca. Un producto archivado en Shopify no se vuelve a publicar solo. |
En resumen: Axentra manda cuando tiene un dato, y se calla cuando no lo tiene. Un campo vacío en Axentra nunca vacía lo que ya está publicado en su tienda.
Productos con variantes. Si un producto en Shopify tiene varias variantes (tallas, colores), Axentra no lo modifica y lo reporta como fallido en el resumen de la sincronización. Un producto de Axentra equivale a un producto de una sola variante en Shopify; tocar uno con varias borraría las demás. Para venderlo online, créelo en Axentra como productos separados con SKUs propios.
Sin doble descuento. Cuando entra una orden desde Shopify, el stock baja una sola vez: Shopify descuenta su parte y Axentra registra la venta sin volver a empujar el mismo descuento.
Un producto que nunca ha sido contado en Axentra no se sincroniza (no es lo mismo "sin contar" que "cero"). Uno contado en otro almacén sí publica cero, porque el almacén mapeado honestamente no tiene existencias.
Cuando un cliente compra en su tienda, Axentra:
Si Shopify reporta la orden como pagada, Axentra registra el cobro automáticamente y la factura queda en Pagada. Si no (por ejemplo, un pago pendiente o una orden con reembolso parcial), queda Abierta para que usted registre el cobro cuando corresponda.
Un reembolso en Shopify, parcial o total, crea automáticamente una nota de crédito contra la factura original, emite el comprobante de nota de crédito correspondiente y devuelve el stock al almacén.
Cuando no se puede aplicar la nota de crédito (la factura ya está pagada o anulada, o el monto excede el saldo), el reembolso se guarda en Conciliación → Reembolsos huérfanos para que un operador lo resuelva a mano. Axentra nunca devuelve dinero por su cuenta.
Reembolsos anteriores a la conexión. Solo llegan los reembolsos que ocurren mientras la tienda está conectada. Si una orden fue reembolsada antes de conectar, ese reembolso no entra.
Cuando marca un conduce como despachado, Shopify recibe el número de tracking y la compañía de envío, marca la orden como enviada y notifica al cliente por correo.
La sección Conciliación, dentro de la pantalla de Shopify, reúne todo lo que la integración registró pero no pudo resolver sola. Cada pestaña trae su propia acción.
Órdenes que requieren una decisión humana. El caso más común es Producto sin enlazar: la orden incluye un artículo que no existe en su catálogo de Axentra, así que no se pudo facturar.
La fila le dice exactamente qué falta crear, con el SKU y el nombre del artículo. Cree ese producto en Inventario (el SKU debe coincidir exactamente) y pulse Reprocesar.
Reprocesar vuelve a pedir la orden a Shopify y la factura. Es la única forma de recuperar una orden que quedó pendiente: no se reintenta sola. Si el producto sigue faltando, la orden simplemente queda pendiente otra vez, así que pulsarlo de más no hace daño.
También aparecen aquí las cancelaciones de órdenes ya pagadas, que Axentra nunca reembolsa automáticamente.
Productos que existen en su tienda Shopify y no tienen equivalente en Axentra. Es la lista de trabajo pendiente de su catálogo, y le permite verla completa sin esperar a que una venta falle.
Cada fila indica el motivo:
| Motivo | Qué significa y qué hacer |
|---|---|
| No existe en Axentra | No hay ningún producto con ese SKU. Use Crear en Inventario. |
| Existe pero está inactivo | Sí hay un producto con ese SKU, pero está desactivado. Reactívelo en Inventario; no lo cree de nuevo, el SKU no se puede repetir. |
| Sin SKU en Shopify | La variante no tiene SKU, así que no hay forma de emparejarla. Asígnele un SKU en Shopify primero. |
| Múltiples variantes | El producto tiene varias variantes y la sincronización no lo toca. Créelo en Axentra como productos separados. |
Crear en Inventario abre el formulario normal de producto con el SKU ya escrito. El resto de los datos los llena usted: Axentra no copia nombres, precios ni fotos desde Shopify.
Esta pestaña consulta su tienda en vivo cada vez que la abre, así que tarda unos segundos en catálogos grandes. Si su catálogo es muy extenso, la lista puede venir incompleta y se lo indica en pantalla.
Ninguna acción de conciliación borra registros. Las resoluciones quedan auditadas con la nota que usted escribe.
Shopify a veces dispara varios avisos por la misma orden en cuestión de milisegundos (cuando se crea, cuando se paga, cuando se actualiza). Axentra reconoce que se trata de la misma orden y emite una sola factura, sin importar cuántos avisos lleguen.
Casi siempre es el dominio. Debe ser el dominio canónico .myshopify.com que Shopify genera, no el nombre comercial de la tienda. Vea El dominio correcto de su tienda más arriba.
Si el dominio es correcto, revise que el Client ID y el Client secret correspondan a la app de esa misma tienda, y que la app tenga todos los permisos concedidos e instalada.
La app fue desinstalada, sus permisos cambiaron, o el secret fue regenerado en Shopify. Vuelva a pegar las credenciales y pulse Guardar y validar.
Pulse Registrar webhooks. Shopify da de baja las suscripciones cuando fallan durante un tiempo prolongado, por ejemplo si su sistema estuvo fuera de línea un fin de semana. La operación es segura de repetir.
Búsquela en Conciliación → Necesitan revisión. Si está ahí como Producto sin enlazar, la fila le dice qué SKU falta: créelo en Inventario y pulse Reprocesar.
Recuerde además que las órdenes anteriores a la conexión no se importan. Si es una venta previa a conectar la tienda, no va a aparecer, y es el comportamiento esperado.
Verifique que el Mapeo de ubicación esté configurado, que el almacén mapeado tenga stock real, y que el producto se haya publicado antes con Sincronizar productos ahora. Sin enlace no hay nada que actualizar.
Casi siempre es el mapeo de ubicación desactualizado, típico tras reconectar o cambiar de tienda. Vuelva a seleccionar la ubicación de la lista, guarde, y use Sincronizar inventario ahora para dejar los números en un punto correcto.
Revise también que el producto tenga activado el seguimiento de inventario en Shopify.
El resumen nombra el SKU y el motivo. El caso más frecuente es un producto con varias variantes en Shopify, que la sincronización no toca a propósito para no borrarle las demás variantes.