
Este plugin integra el método de envío de Andreani directamente en tu tienda WooCommerce, permitiendo a tus clientes seleccionar Andreani como opción de entrega durante el proceso de compra.
Importante: Este plugin está diseñado exclusivamente para zonas de envío en Argentina.
Funcionalidades incluidas:
Requisitos previos:
Antes de configurar el plugin, necesitarás generar tu Credential ID (hash de autenticación) según el tipo de cliente:
Una vez generada tu credencial, podrás configurar el método de envío “Andreani Envios” en las opciones de WooCommerce (WooCommerce > Ajustes > Envío > Zonas de envío).
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
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.
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.
[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 atributo context acepta billing (por defecto) o shipping.Los shortcodes encolan sus assets on-demand — no requieren tildar Forzar carga de assets.
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 modo auto)..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; }
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. $razon puede ser is_checkout, force_enqueue o ''.Ejemplo:
add_filter( 'andreani_sucursales_markup', function( $html, $instance_id, $cp ) {
return '<div class="mi-wrapper-custom">' . $html . '</div>';
}, 10, 3 );
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 );
} );
El objeto window.andreaniCheckout expone:
andreaniCheckout.ajaxUrl — URL de admin-ajax.andreaniCheckout.nonce — token (acción andreani_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 o null.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 );
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.
auto o manual.manual con shortcodes. Funciona sin configuración adicional.La actualización a 1.5.0 es transparente — el upgrader corre automáticamente al entrar al panel de WP admin y:
checkout_modo y checkout_force_enqueue si faltan.config_por_modo a slug ascii-safe (fix del envío gratis con nombres acentuados).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.