Plugin oficial de Andreani para integrar sus servicios de envío en tu tienda WooCommerce. Permite a tus clientes elegir Andreani como opción de entrega durante el checkout y al merchant gestionar todos los envíos desde el panel de administración.
Disponible exclusivamente para tiendas con zonas de envío en Argentina.
Funcionalidades incluidas:
- Método de envío “Andreani Envios” integrado en las zonas de WooCommerce
- Cálculo de tarifas de envío en tiempo real durante el checkout
- Selección de sucursales Andreani para envíos Puerta a Sucursal
- Cotizador opcional en la página de producto
- Generación automática de órdenes de envío al confirmar el pedido
- Descarga de etiquetas en PDF (solo para clientes Corporativos)
- Grilla administrativa para gestionar todos los envíos desde un solo lugar
- Exportación a CSV de los envíos
- Compatible con Elementor, Divi, Bricks y otros page builders
- Compatible con HPOS (High-Performance Order Storage) de WooCommerce
- API pública para desarrolladores (ver sección “Para desarrolladores”)
Antes de empezar:
Necesitás generar tu Credential ID según tu tipo de cliente:
- Clientes PyME: https://pymes.andreani.com/integraciones/ (seleccioná la opción WooCommerce)
- Clientes Corporativos: https://corporativo.andreani.com/woocommerce
Una vez generada, configurás el método “Andreani Envios” en WooCommerce → Ajustes → Envío → Zonas de envío.
External services
Este plugin se conecta a las APIs de Andreani para obtener información de envíos, calcular tarifas y gestionar órdenes de envío.
Servicio: APIs de Andreani Propósito: Cálculo de tarifas de envío, obtención de información de sucursales y generación de órdenes de envío Datos enviados: – Información del producto (peso, dimensiones, valor) – Código postal de origen y destino – Credenciales de autenticación del cliente con Andreani – Datos de la orden de compra (cuando se genera un envío) – Información del destinatario (nombre, dirección, teléfono, email)
Cuándo se envían los datos: – Durante el cálculo de tarifas de envío en el checkout – Al consultar sucursales disponibles para envíos a sucursal – Al generar una orden de envío después de una compra exitosa
Términos y condiciones: https://www.andreani.com/terminos-y-condiciones Política de privacidad: https://www.andreani.com/politica-de-privacidad
Para desarrolladores
Guía técnica del contrato público estable a partir de 1.5.0. Todo lo listado acá es seguro de usar desde temas, page builders o plugins custom. Los cambios breaking se anuncian en el Changelog.
Modelo de integración
El plugin es zero-config en page builders. No detecta Elementor, Divi, Bricks, etc. — los shortcodes encolan sus assets al momento de renderizarse, así que funcionan automáticamente en cualquier builder que respete el contrato de shortcodes de WordPress.
Modo automático (default): los hooks de WooCommerce inyectan el selector de sucursales y los campos DNI en el checkout clásico. Modo manual: los hooks quedan desactivados, el integrador usa los shortcodes donde quiera.
Se configura en WooCommerce → Envío → (tu zona) → Andreani Envios → Modo de renderizado del checkout.
Shortcodes
[andreani_sucursales]— Selector de sucursales. Carga las sucursales según el CP presente en el formulario más cercano. Soporta múltiples instancias por página.[andreani_dni_field context="billing|shipping"]— Campo DNI/CUIT. El atributocontextaceptabilling(por defecto) oshipping.
Los shortcodes encolan sus assets on-demand — no requieren tildar Forzar carga de assets.
Clases CSS públicas
Contrato estable. Seguras de usar en CSS custom:
.andreani-sucursales-standalone— Wrapper del shortcode de sucursales..andreani-sucursales-select— El<select>de sucursales (funciona en el<tr>legacy y en el wrapper standalone)..andreani-sucursales-details— Bloque con nombre y dirección de la sucursal elegida (dentro del wrapper standalone)..andreani-sucursales-row— Fila del checkout clásico (legacy, solo en modoauto)..andreani-dni-field-shortcode— Wrapper del shortcode de DNI.
El CSS del plugin solo aplica estilos estructurales (layout, spacing). Color, tipografía y font-weight se heredan del tema.
Ejemplo de override desde Apariencia → Personalizar → CSS adicional:
.andreani-sucursales-standalone { background: #f7f7f7; border-radius: 8px; padding: 1rem; }
.andreani-sucursales-select { border: 2px solid #333; }
Filters PHP
andreani_sucursales_markup( string $html, int $instance_id, string $cp_destino )— Modifica el markup del selector.andreani_dni_field_markup( string $html, string $context, array $field_args )— Modifica el markup del campo DNI del shortcode.andreani_should_enqueue_checkout( bool $should, string $razon )— Fuerza o bloquea el encolado eager de assets.$razonpuede seris_checkout,force_enqueueo''.
Ejemplo:
add_filter( 'andreani_sucursales_markup', function( $html, $instance_id, $cp ) {
return '<div class="mi-wrapper-custom">' . $html . '</div>';
}, 10, 3 );
Eventos JS
Emitidos en document como eventos jQuery y CustomEvent nativo — compatibles con listeners tradicionales y modernos.
andreani:ready— El plugin terminó de bindearse.detail: { wcClassic: boolean }.andreani:cp-changed— El CP cambió en algún input.detail: { postcode }.andreani:sucursal-selected— El usuario seleccionó una sucursal.detail: { code, nombre, direccion, wrapper, postcode }.andreani:error— Error de AJAX o validación.detail: { code, message?, postcode?, wrapper? }.
Ejemplo (jQuery):
jQuery( document ).on( 'andreani:sucursal-selected', function( e, detail ) {
console.log( 'Sucursal elegida:', detail.code, detail.nombre );
} );
Ejemplo (vanilla JS):
document.addEventListener( 'andreani:cp-changed', function( e ) {
console.log( 'Nuevo CP:', e.detail.postcode );
} );
API JavaScript
El objeto window.andreaniCheckout expone:
andreaniCheckout.ajaxUrl— URL de admin-ajax.andreaniCheckout.nonce— token (acciónandreani_checkout_nonce).andreaniCheckout.i18n— strings traducidas.andreaniCheckout.refresh( wrapper? )— recarga sucursales para un wrapper específico o todos si se omite el argumento.andreaniCheckout.getSelected( wrapper? )— devuelve{ code, nombre, direccion }de la selección actual onull.andreaniCheckout.init( wrapper? )— bindea selects inyectados dinámicamente (modals, popups de Elementor, etc.).
Ejemplo:
const info = window.andreaniCheckout.getSelected();
if ( info ) console.log( info.nombre );
AJAX y nonce
Endpoint público: andreani_get_sucursales (acepta usuarios no logueados).
Acepta dos nonces durante el ciclo 1.5.x:
* nonce con acción andreani_checkout_nonce (recomendado, propio del plugin).
* security con acción update-order-review (legacy de WC, para código custom que lo use).
El nonce legacy se remueve en una versión mayor futura.
Compatibilidad
- Classic WooCommerce Checkout: soporte completo en modo
autoomanual. - Elementor / Divi / Bricks / Beaver Builder / Breakdance / Oxygen / cualquier builder futuro: modo
manualcon shortcodes. Funciona sin configuración adicional. - WC Blocks Checkout (Gutenberg): sin soporte nativo en 1.5.x (requiere integración por Store API — planificada para una versión mayor futura).
Migración desde 1.4.x
La actualización a 1.5.0 es transparente — el upgrader corre automáticamente al entrar al panel de WP admin y:
- Siembra los defaults de
checkout_modoycheckout_force_enqueuesi faltan. - Normaliza keys de
config_por_modoa slug ascii-safe (fix del envío gratis con nombres acentuados). - Fuerza un re-login contra la API de Andreani para sincronizar credenciales con la nueva persistencia de sesión.
Si tenías código custom que dependía de:
andreani_has_shortcode/andreani_builder_meta_keys(filters internos que no documentamos públicamente): removidos. Ya no son necesarios — los shortcodes encolan solos.- El checkbox Forzar carga de assets: sigue funcionando pero casi nunca es necesario. Úsalo solo como último recurso.
