Extensión Magento 2 Punchout

Extensión PunchOut para Magento 2 con flujos OCI y cXML, acceso por comprador, catálogo y precios del cliente, devolución del carrito y plantillas para SAP Ariba, Coupa y Oracle Procurement.

SoftwareSilo PunchOut conecta Magento 2 con sistemas corporativos de compras mediante OCI y cXML. El comprador inicia el proceso en su plataforma de compras, entra en la tienda sin otro acceso manual, trabaja con el contexto de cliente asignado y devuelve el carrito terminado para su aprobación y pedido.

El comprador sigue utilizando su tienda habitual: El catálogo, la búsqueda, las páginas de producto y el carrito continúan siendo los de Magento. PunchOut cambia el modo de iniciar la sesión y el destino del carrito. No obliga a mantener un segundo catálogo separado.

OCI y cXML en una sola extensión: El módulo principal procesa el acceso y la devolución del carrito mediante OCI, además de PunchOut Setup y Cart Return mediante cXML. Así puede cubrir proyectos OCI orientados a SAP y entornos de compras cXML sin instalar dos módulos de protocolo distintos.

Perfiles preparados para plataformas habituales: El paquete incluye plantillas de mapeo para SAP OCI 4 y 5, SAP Ariba, Coupa, Oracle Procurement y escenarios cXML generales. Las plantillas ofrecen un punto de partida documentado y cada campo se puede adaptar a los requisitos reales del comprador.

Catálogo y precios según el comprador: Cada perfil de comprador puede vincularse con un cliente, una empresa, un grupo de precios, una vista de tienda y un perfil de mapeo de Magento. Al iniciar la sesión PunchOut, Magento puede aplicar la visibilidad de catálogo y los precios de ese contexto. La extensión no mantiene una segunda base de precios.

Devolución del carrito en lugar del checkout: Durante una sesión PunchOut, la acción normal de checkout puede convertirse en una acción de retorno. Magento transforma el carrito en los datos de formulario OCI o en el PunchOutOrderMessage cXML requerido y lo envía al sistema comprador. La aprobación y la creación del pedido permanecen en la plataforma de compras.

Mapeos sin una variante de código por comprador: En administración se asignan valores de productos, clientes, direcciones y carrito de Magento a los campos que espera el sistema externo. Los campos obligatorios, las conversiones, el formato y las claves personalizadas se mantienen en perfiles reutilizables.

Control de productos y precios: De forma predeterminada, los precios de Magento son la referencia para las operaciones de carrito. Si una integración controlada necesita aceptar precios entrantes, se puede activar expresamente en la configuración de la tienda. Las validaciones de moneda y transferencia evitan devolver carritos incompletos o incoherentes.

Más que la primera entrega del carrito: El módulo dispone de endpoints para pedidos de compra entrantes, avisos de expedición salientes y facturas salientes. Una cola de documentos procesa mensajes con reglas de reintento para que un fallo temporal de conexión no obligue a reconstruir cada mensaje manualmente.

Seguridad para cada conexión: Las credenciales se almacenan cifradas. Las solicitudes pueden comprobarse mediante rangos IP permitidos, firmas, credenciales de protocolo y autenticación adicional de transporte. Las URL de retorno se validan antes de enviar datos de carrito o documentos a un destino externo.

Herramientas para pruebas y soporte: El simulador administrativo genera solicitudes OCI y cXML repetibles. Las trazas relacionan cada paso mediante un identificador de correlación y conservan datos saneados, de modo que ambas partes dispongan de información útil cuando falle la configuración o la transferencia.

Para Magento Open Source y Adobe Commerce: SoftwareSilo PunchOut está pensado para tiendas B2B que necesitan conectar un catálogo Magento existente con los sistemas de compras de sus clientes. Resulta especialmente útil cuando varios compradores requieren credenciales, contextos de cliente, mapeos o formatos de retorno distintos y el comercio quiere administrarlos en Magento.

Endpoints OCI y cXML

Procese setup y transferencias Punchout con rutas dedicadas OCI y cXML para integración estandarizada.

Perfiles de comprador en admin

Gestione perfiles de comprador con asignación de protocolo, estado activo y credenciales cifradas.

Ciclo de contexto por token

Controle sesiones Punchout mediante token, correlación y estados de ciclo de vida para operación reproducible.

API de carrito tokenizada

Use endpoints de alta, actualización, baja y consulta para operaciones externas de carrito por contexto Punchout.

Perfiles de mapeo con transformadores

Configure mapeos de campos, reglas obligatorias y transformaciones por protocolo sin bifurcaciones de código.

Despliegue basado en plantillas

Inicie perfiles de mapeo desde plantillas para acelerar onboarding y reducir riesgo de configuración.

Validación de seguridad por capas

Combine verificación IP, firma, autenticación de comprador y control de URL de retorno para operación segura.

Idempotencia y control de reintentos

Procese solicitudes repetidas de forma determinista para evitar duplicidades y transferencias inestables.

Visor de trazas con exportación

Analice tráfico Punchout con listado de trazas, detalle y exportación JSON con correlación.

Simulador para validación técnica

Genere solicitudes de prueba reproducibles con firma y salida cURL para validar integración más rápido.

Compatibilidad y palabras clave de integración

Encaja en escenarios SAP OCI y flujos cXML con SAP Ariba, Coupa y Oracle Procurement, además de gobierno por perfiles de comprador y reglas de mapeo.

  • Versión actual1.2.0
  • Compatible con Magento 2.4.6 - 2.4.9
  • Compatible con PHP 8.1 - 8.5

Si su entorno difiere de los requisitos indicados, podemos verificar la compatibilidad con antelación. Contáctenos por el formulario de contacto.

punchout

Version 1.2.0 - 2026-08-28

Added
  • cXML 1.1 and 1.2 profile discovery with Buyer-specific capabilities and Store View URLs
  • Buyer-specific storefront destinations, including the cart, Store homepage, CMS pages, categories and internal Store paths
  • Line-level cXML order confirmations with accept, reject and backorder decisions, expected delivery dates and targeted CLI commands
  • Filterable and exportable analytics for sessions, cart returns, Magento orders, revenue, Buyer performance and transferred products
Changed
  • Cart transfer, authentication, request decoding and outbound documents use extensible handlers with consistent cXML and OCI behavior
  • Confirmations, ship notices and invoices use a durable queue with endpoint validation, automatic recovery and safe retry and archive actions
  • Inbound orders use Magento's native customer, address, payment, price and tax processing, including recoverable order updates
  • PunchOut administration now has its own top-level menu, with standard grids, actions and operational diagnostics
Fixed
  • cXML Buyer credentials, returned-cart snapshots and outbound documents retain the correct Buyer, Store View and transport identity throughout the order lifecycle
  • cXML and OCI requests and cart returns preserve protocol versions, operations, product identifiers, numeric precision and custom fields
  • Cart and inbound-order processing prevents completed-session changes, cross-customer quote access, duplicate lines and incorrect NET or GROSS tax conversion
  • OCI product-detail and direct-add sessions complete without redirect loops or failed AJAX cart returns
  • Admin line-confirmation delivery dates follow the active locale while outbound protocol dates remain ISO formatted

Version 1.1.0 - 2026-08-18

Added
  • Complete cXML OrderRequest processing with configurable acknowledgement, validation and Magento order creation modes, including customer, product, address, shipping, payment and email policies
  • Returned-cart validation with configurable line matching, price and quantity policies, retained cart snapshots and duplicate-order protection
  • Buyer identity mapping and just-in-time Magento customer creation with Magento's native account confirmation rules
  • OCI 4.0 and 5.0 product detail flows, including direct product pages and OCI 5.0 direct item selection
  • An Admin workspace for inbound orders with filtering, manual review, processing, retry and protected deletion actions
  • Store-view debug logging for PunchOut setup, cart return, inbound orders and document delivery
Changed
  • cXML setup now returns a standard PunchOutSetupResponse and creates an isolated PunchOut cart while preserving and restoring the customer's normal Magento session
  • cXML edit and inspect sessions now rebuild the supplied cart, with inspect remaining read-only and Magento remaining authoritative for prices
  • Customer activation now follows Magento's account lockout, confirmation and global or per-website account-sharing rules
  • Outbound confirmation, shipment and invoice documents now use persistent buyer routing instead of the short-lived browser session and support safe queued delivery and manual handling of uncertain outcomes
  • The Admin simulator now uses a Magento UI form with live request preview and opens the storefront in a separate tab
  • Product and protocol mappings now support Store-view product attributes, OCI-specific identifiers and standard OCI delivery and manufacturer fields
Fixed
  • cXML cart returns now preserve the original BuyerCookie, Store View, customer context and standards-compliant cXML envelope throughout the complete return flow
  • NET and GROSS cart prices now use Magento's completed quote and tax calculation for the active Store View, customer and address
  • Product mapping rules now provide the actual Store-view product attributes and readable option labels
  • Request replay is isolated by PunchOut context and retains the original response status and body for failed requests
  • Invoice and shipment documents now contain consistent cXML totals, order-line references, units of measure and carrier tracking information
  • Sensitive OCI and cXML credentials, BuyerCookie values and Magento form keys are consistently masked in traces and exports

Version 1.0.11 - 2026-08-04

Changed
  • Replaced the module information block with the shared Extension Manager extension
Fixed
  • Fixed Punchout session context creation to reject missing buyer IDs and invalid token expiration configuration instead of persisting fallback values
  • Fixed Punchout session currency and simulator defaults to resolve store/configuration values instead of hardcoded EUR/NET defaults
  • Fixed outbound invoice and queue processing to avoid generating documents with fallback buyer or currency values

Version 1.0.10 - 2026-06-18

Added
  • Added explicit store-scoped options for allowing inbound cart item prices and sandbox-only insecure outbound TLS endpoints
Changed
  • Kept outbound document TLS certificate verification enabled by default
  • Made Magento pricing authoritative for Punchout cart API operations by default
Fixed
  • Fixed admin buyer profile saving so explicitly selected `All Store Views` scope is preserved for global buyer profiles
  • Fixed the admin simulator shop-session launch to avoid false popup-blocked errors when the browser successfully opens the storefront tab
  • Made Punchout return auto-submit pages CSP-compatible for OCI and cXML storefront return flows
  • Improved cXML and hook URL validation for IPv6 endpoints, PunchOutOrderMessage buyer cookies, non-negative transfer prices, and mixed-currency cart returns
  • Improved trace sanitization for sensitive key-value payloads at the end of a trace body

Version 1.0.9 - 2026-06-08

Fixed
  • Fixed OCI buyer authentication to accept uppercase `PASSWORD` and `pwd` request password fields
  • Fixed mapping rule application for customers without custom attributes or addresses
  • Fixed Punchout custom quote item prices to remain locked during Magento total recollection

Version 1.0.8 - 2026-05-19

Fixed
  • Fixed simulator endpoint probing to validate hook URLs with the Punchout hook URL validator and to keep TLS certificate verification enabled
  • Fixed mutating admin Punchout actions to require POST-only routing
  • Fixed Punchout persistence and cleanup table resolution to respect Magento database table prefixes

Version 1.0.7 - 2026-05-08

Fixed
  • Restrict Punchout simulator admin access to the dedicated simulator ACL resource
  • Require POST-only routing for mutating external Punchout cart, session, and document endpoints
  • Resolve global buyer profiles for store-scoped Punchout requests while preferring store-specific buyer profiles

Version 1.0.6 - 2026-04-18

Added
  • Added real outbound ASN and invoice delivery to buyer `hook_url` targets, including generated fallback cXML payloads when no valid raw payload is provided
  • Added queue payload hydration for persisted ASN and invoice jobs so existing queue rows can still be delivered with reconstructed business data
Changed
  • Queue processing now applies batch size configuration per store instead of using one shared global batch window
Fixed
  • cXML return payloads now preserve `edit` and `inspect` operations instead of always returning `operationAllowed="create"`
  • Store-scoped Punchout configuration is now resolved consistently from the active Punchout context for storefront operation policy, trace logging, and checkout return labels
  • OCI buyer authentication now cleanly separates protocol credentials from transport authentication, so request `USER` and `password` are no longer overridden by transport `Authorization: Basic` headers
  • Trace sanitization now masks sensitive JSON and XML payload values such as shared secrets, passwords, and buyer cookies before they are persisted
  • ASN and invoice outbound processing now fails and retries correctly when downstream delivery returns transport-level HTTP errors
  • Invoice and ASN delivery now return explicit delivery failure metadata instead of being marked successful without a real outbound request

Version 1.0.5 - 2026-03-07

Changed
  • Improved admin buyer credential UX for stored OCI and cXML secrets
  • Added explicit change toggles for secret replacement in buyer edit forms

Version 1.0.4 - 2026-03-06

Added
  • Improve admin mapping template loading feedback when template data is invalid
Fixed
  • Resolve Punchout request security against the active context store for cart, transfer, and logout endpoints
  • Compare Punchout context expiration timestamps in UTC to avoid timezone-dependent session handling

Version 1.0.3 - 2026-03-05

Fixed
  • Skip queue processing if Punchout is not enabled on specific store

Version 1.0.2 - 2026-03-02

Fixed
  • Fixed admin mapping profile editing so existing Punchout target keys stay populated after reload instead of appearing empty

Version 1.0.1 - 2026-02-27

Added
  • Admin document queue management with dedicated queue grid/actions and cron processing support
  • Operation policy enforcement for storefront punchout operations and simulator endpoint probing tools
  • Extended mapping/profile administration with reusable template copy flow and richer simulator controls
Fixed
  • Buyer save handling now normalizes nested admin form payloads consistently
  • OCI and cXML transfer endpoints now return explicit HTTP `200` for successful and idempotent replay responses
  • cXML PO cancel processing and integration flow coverage were stabilized

Version 1.0.0 - 2026-02-26

Added
  • Initial release
punchout-iframe

Version 1.0.0 - 2026-08-24

Added
  • Initial release
Preguntas específicas del módulo
¿Qué es una extensión PunchOut para Magento 2?

Una extensión PunchOut conecta la tienda Magento de un proveedor con el sistema de compras de su cliente. El comprador inicia el proceso en la plataforma de compras, entra en un contexto autenticado de Magento, llena el carrito y lo devuelve para aprobación en lugar de terminar el checkout habitual.

¿Qué protocolos PunchOut admite SoftwareSilo?

SoftwareSilo PunchOut admite OCI y cXML en la extensión principal. Ambos protocolos cubren el inicio de la sesión y la devolución del carrito, aunque utilizan métodos distintos de autenticación, estructura de mensajes y mapeo de campos.

¿SoftwareSilo PunchOut funciona con SAP Ariba?

Sí. SAP Ariba PunchOut se conecta mediante cXML. La extensión incluye plantillas orientadas a Ariba para setup y devolución del carrito, también con variantes Level 2. El mapeo final debe comprobarse con la configuración concreta del comprador.

¿Se puede conectar Coupa con Magento 2 mediante PunchOut?

Sí. Las conexiones de Coupa usan cXML Setup y PunchOutOrderMessage. SoftwareSilo incluye plantillas orientadas a Coupa y permite adaptar credenciales, campos y comportamiento de retorno a la cuenta real de Coupa.

¿Es compatible con Oracle Procurement?

Sí. La extensión incluye plantillas cXML orientadas a Oracle para setup y devolución del carrito. Como las configuraciones pueden variar, las identidades, los campos obligatorios y el callback deben validarse durante las pruebas de integración.

¿Jaggaer está disponible de forma inmediata?

El paquete actual no incluye una plantilla específica para Jaggaer, por lo que no lo presentamos como una integración inmediata. Un proyecto de Jaggaer con flujos cXML compatibles puede evaluarse y configurarse mediante el mapeo cuando se conozcan sus requisitos exactos.

¿Cuál es la diferencia entre OCI y cXML PunchOut?

OCI suele usar parámetros de formulario del navegador y es habitual en compras orientadas a SAP. cXML intercambia mensajes XML estructurados y se utiliza con SAP Ariba, Coupa y Oracle Procurement. El sistema de compras del cliente normalmente determina el protocolo necesario.

¿Cómo funciona la devolución del carrito PunchOut en Magento 2?

Durante la sesión PunchOut, el comprador llena el carrito de Magento y elige la acción de retorno. La extensión valida el carrito, crea los datos de formulario OCI o el PunchOutOrderMessage cXML y los envía a la URL autorizada. La plataforma de compras gestiona después la aprobación y el pedido.

¿Cómo se gestionan compradores y credenciales?

Cada conexión tiene un perfil con protocolo, ámbito de tienda, identidades, credenciales, contexto de cliente y mapeo. Los secretos se almacenan cifrados. Pueden utilizarse perfiles globales o específicos por tienda cuando una instalación contiene varias vistas.

¿Los compradores PunchOut ven catálogos y precios específicos?

Sí, cuando el perfil resuelve el contexto correcto del cliente Magento. Magento puede aplicar la visibilidad de catálogo y los precios del cliente, empresa, grupo de precios y tienda. El resultado también depende de los módulos de catálogo y precios instalados.

¿Puede cambiar el mapeo para cada cliente de compras?

Sí. Los perfiles de mapeo definen campos de origen, claves de destino, valores obligatorios, formato, transformaciones y conversiones. Se puede partir de una plantilla incluida y adaptarla sin mantener una variante del módulo para cada comprador.

¿Puede el sistema de compras modificar directamente el carrito Magento?

La extensión ofrece endpoints ligados al token para añadir, actualizar, eliminar y consultar artículos del carrito durante la sesión PunchOut. Esto permite una sincronización controlada antes de devolver el carrito final.

¿Cómo se evitan transferencias duplicadas?

Los flujos de transferencia y documentos admiten claves de idempotencia. Un reintento idéntico puede devolver el resultado guardado, mientras que reutilizar la misma clave con contenido distinto se trata como conflicto. Esto reduce duplicados después de timeouts o fallos de red.

¿Qué controles de seguridad están disponibles?

Las conexiones pueden usar credenciales del comprador, rangos IP permitidos, firmas de solicitudes, validación HTTPS de la URL de retorno y autenticación adicional como Basic o Bearer. La combinación necesaria debe acordarse con el socio de compras antes de producción.

¿Cómo se prueba una conexión OCI o cXML antes de producción?

El simulador de administración genera solicitudes OCI y cXML repetibles, muestra el endpoint y proporciona una salida cURL. Los equipos pueden probar acceso, cambios de carrito, datos de retorno, errores de autenticación y reintentos antes de conectar la cuenta productiva.

¿Cómo se investigan los errores de PunchOut?

Las trazas muestran protocolo, dirección, estado, datos de correlación e información saneada de la solicitud. El identificador compartido ayuda a los equipos de Magento y compras a seguir una transacción por setup, carrito, transferencia y documentos.

¿Admite pedidos de compra, avisos de expedición y facturas?

El módulo ofrece un endpoint para pedidos de compra entrantes y flujos salientes para avisos de expedición y facturas. Los documentos salientes pueden pasar por una cola con tamaño de lote, límite de reintentos y demora configurables.

¿PunchOut funciona con Magento Open Source y Adobe Commerce?

La extensión está diseñada para tiendas Magento 2 y puede utilizarse en proyectos Magento Open Source y Adobe Commerce. Antes de implantarla deben revisarse la versión, el tema, el modelo de clientes, los módulos de precios y los requisitos de compras.

¿Es obligatorio utilizar un gateway PunchOut externo?

No se necesita un gateway externo para los flujos OCI y cXML incluidos. La extensión funciona en Magento y se comunica con el sistema de compras. Puede añadirse un gateway si el proyecto necesita servicios o protocolos fuera de este alcance.

¿Qué información se necesita para iniciar un proyecto PunchOut?

El comprador debe facilitar protocolo, identidades y credenciales, formato de login o setup, URL de retorno, solicitudes de ejemplo, campos de carrito, reglas de moneda, cuenta de prueba y proceso de aceptación. Para documentos cXML también deben definirse pedido, expedición y factura.

¿Cuánto tarda una implantación PunchOut?

No existe una duración fija fiable. Una plantilla adecuada y un socio de pruebas disponible reducen el trabajo. Los mapeos personalizados, las revisiones de seguridad, los precios específicos y los mensajes adicionales aumentan el alcance. La estimación debe hacerse tras revisar payloads reales.

¿Los invitados pueden utilizar una conexión PunchOut?

PunchOut se basa en una relación autenticada con el comprador, no en una sesión anónima. La solicitud del sistema de compras identifica el perfil y establece el contexto de cliente que utilizará Magento.

¿Qué precio se utiliza si el sistema de compras envía precios de artículos?

De forma predeterminada mandan los precios de Magento. Los precios entrantes se ignoran salvo que la tienda los habilite expresamente para una integración controlada. Así una solicitud externa no sustituye los precios de Magento por accidente.

¿Una instalación Magento puede atender a varios compradores PunchOut?

Sí. Los perfiles separan credenciales, protocolo, tienda, contexto de cliente y mapeo. Varios clientes de compras pueden usar la misma instalación Magento sin compartir una única configuración de conexión.

Preguntas generales
¿Para cuántas instalaciones de Magento es válida la licencia?

La licencia es válida para una instalación de Magento, incluido el funcionamiento multisitio. Además, el módulo puede instalarse en cualquier número de servidores de desarrollo o staging. Encontrará más detalles en nuestros términos de licencia.

¿La instalación está incluida en el precio?

La instalación y la configuración no están incluidas en el precio. Si lo desea, le apoyamos en una integración fluida en su sistema.

¿Cómo instalo un módulo?

Composer es el gestor de paquetes de PHP y Magento 2 lo utiliza para instalar módulos y sus dependencias. Después de la compra, encontrará los comandos correspondientes en Licencias dentro de su cuenta de cliente. Primero añada el repositorio privado de SoftwareSilo y su token de licencia. Después instale el paquete indicado con composer require y ejecute php bin/magento setup:upgrade y php bin/magento cache:clean.

¿Qué métodos de pago están disponibles?

Puede pagar con tarjeta de crédito (Stripe) o por transferencia bancaria (pago por adelantado). En pagos con tarjeta, el pedido se procesa de inmediato y las credenciales de acceso se envían directamente en un correo electrónico de seguimiento.

¿Cómo es el proceso de pedido?

Después del pago con tarjeta de crédito, recibirá de inmediato las credenciales para obtener el módulo mediante Composer. En caso de transferencia bancaria, el acceso se concede una vez abonada la factura.

Necesito una modificación personalizada del módulo. ¿Es posible?

Las solicitudes personalizadas no son un problema. Adaptamos nuestros módulos de Magento 2 a su proyecto y mantenemos una versión interna dedicada para saber exactamente qué se ejecuta en su sistema durante el soporte.

¿Puedo instalar una versión demo localmente?

En la página de detalle de cada módulo, puede solicitar su propia instancia de demostración y probar el módulo a fondo durante 7 días. Sin embargo, no ofrecemos una versión de demo local.

¿Está encriptado el código fuente?

No, el código fuente de nuestros módulos no está encriptado. Si necesita una personalización, puede enviarnos una solicitud. Le responderemos en breve con una propuesta sin compromiso.

¿Cómo funcionan las actualizaciones y el soporte?

Puede añadir un paquete de soporte a su pedido. Incluye asistencia, así como actualizaciones y mejoras relacionadas con el módulo. No se requiere una suscripción continua.

Ya tengo una licencia. ¿Cómo hago una actualización?

Puede completar la actualización de licencia aquí. Si tiene un paquete de soporte activo, recibirá las actualizaciones automáticamente mediante Composer. Si su paquete de soporte ha vencido, puede renovar su licencia aquí o en su cuenta.

Tengo otra pregunta, ¿cómo puedo contactarlos?

Puede contactarnos en cualquier momento a través de Correo electrónico.

Punchout

×

Ideal para estas industrias y casos de uso

Integración con ERP y compras

Conecte sistemas de compras por OCI o cXML directamente con catálogo y carrito de Magento 2.

Flujos Punchout por comprador

Controle accesos, perfiles y mapeos por comprador para una operación de integración clara.

Integraciones seguras ante reintentos

Estabilice transferencias ante incidencias de red con procesamiento idempotente.

Varios socios con mapeos dedicados

Mantenga reglas de campo específicas por socio y protocolo sin ramas de código paralelas.

Soporte y análisis con trazas

Resuelva incidencias de integración más rápido con correlación, detalle y exportación.

Validación técnica antes del go-live

Verifique endpoints y payloads mediante simulador administrativo antes de producción.

Pruébelo antes de comprar

Solicite una demo personal y pruebe el módulo con datos de ejemplo realistas en el panel de administración de Magento y en la tienda. Así podrá comprobar con calma si encaja con sus requisitos y procesos.

Documentación técnica

Guías prácticas de Magento 2, documentación para desarrolladores y referencias de API para la instalación, configuración y solución de problemas.

Ir a la base de conocimiento

¿Necesita una solución personalizada?

¿Sus requisitos van más allá de las funciones de nuestros módulos para Magento 2? Desarrollamos módulos para Magento 2 e integraciones adaptadas a sus procesos empresariales.

Solicitar ahora