Magento 2 B2B

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

La devolución PunchOut transfiere los productos seleccionados en Magento al sistema de compras del cliente. Normalmente no realiza todavía un pedido. El carrito se convierte en una solicitud que pasa por presupuestos, aprobaciones y el proceso interno del comprador.

Respuesta breve: Magento construye el carrito dentro de una sesión vinculada al comprador. Al enviarlo, la extensión mapea cada línea a campos OCI o a un PunchOutOrderMessage cXML y publica el resultado en la URL autorizada. La plataforma de compras recibe los artículos y continúa su propio flujo.

El recorrido completo

1. Compras abre Magento

El comprador selecciona al proveedor en SAP Ariba, Coupa, un entorno SAP OCI u otra aplicación. El sistema envía identidad, credenciales y un destino de retorno.

Magento valida la solicitud y crea una sesión PunchOut temporal. Las acciones del carrito deben estar ligadas a esa sesión, no tratarse como una visita anónima normal.

2. Magento establece el contexto

El perfil elige vista de tienda, cliente, empresa o grupo. Así conecta la organización externa con las reglas de catálogo y precios de Magento.

El usuario compra productos Magento reales. Disponibilidad, opciones, precios contratados e impuestos deben comprobarse igual que en cualquier cuenta.

3. El comprador devuelve el carrito

En lugar de pasar por el checkout habitual, elige la acción de retorno. La extensión comprueba que carrito y sesión coinciden y carga el mapeo acordado.

OCI genera campos indexados. cXML genera un PunchOutOrderMessage con cabecera y líneas. El navegador envía la respuesta al destino proporcionado por la plataforma y validado por la integración.

4. La plataforma valida los artículos

Suele revisar:

  • referencia del proveedor
  • descripción
  • cantidad y unidad
  • precio unitario y moneda
  • clasificación
  • identificadores de proveedor o contrato
  • campos propios del comprador

Un valor obligatorio ausente o un código inesperado puede provocar rechazo aunque la sesión Magento pareciera correcta.

5. La aprobación continúa fuera de Magento

Los artículos se convierten normalmente en una solicitud. Centro de coste, contabilidad y aprobación permanecen en compras. Aún puede no existir un pedido Magento.

Si el pedido aprobado debe volver, se configura un flujo entrante separado. SoftwareSilo PunchOut puede admitir pedidos entrantes y, dentro de un ciclo documental más amplio, avisos de envío y facturas.

Crear, editar e inspeccionar

Algunas plataformas indican la operación en la solicitud. create inicia un carrito. edit reabre uno devuelto. inspect puede permitir verlo sin modificarlo.

Estos modos necesitan identificadores estables y sesiones cuidadas. Si el cliente los exige, hay que probarlos de forma independiente.

Decisiones de mapeo importantes

Identificador: acuerda si se devuelve SKU Magento, referencia del proveedor u otra referencia contractual.

Unidad: si ambos sistemas usan códigos distintos, una tabla de valores puede traducirlos. La lista permitida debe estar acordada.

Precio: define neto o bruto, moneda, precisión y precios por cantidad.

Clasificación: algunos compradores exigen UNSPSC u otra clasificación en todas las líneas.

Datos propios: documenta significado, fuente y validación de extrinsics cXML y campos OCI personalizados.

Pruebas de aceptación

  1. Un producto simple con cantidad uno.
  2. Varios productos y cantidades.
  3. Producto configurable u opciones, si aplican.
  4. Precio y visibilidad específicos del cliente.
  5. Conversión de unidad y clasificación.
  6. Edición o inspección cuando se requiera.
  7. Sesión caducada y destino no válido.
  8. Doble envío, botón atrás y nuevo acceso.
  9. Aprobación en la plataforma de compras.
  10. Pedido aprobado hacia Magento, si forma parte del alcance.

Conserva una traza saneada con identificador de correlación para los fallos. Debe poder seguirse solicitud, sesión y retorno sin registrar secretos ni datos personales innecesarios.

Preguntas frecuentes

¿La devolución reserva existencias?

No necesariamente. No equivale a un pedido. Define una política para el tiempo entre solicitud, aprobación y pedido final.

¿Puede cambiarse la cantidad después?

Depende de la plataforma y las reglas. Si se permite, decide si el pedido posterior sigue siendo válido frente a precio, producto y cantidad.

¿Por qué aparece otro precio al devolver?

Las causas comunes son contexto de cliente incorrecto, impuestos, moneda, redondeo o un recálculo de la plataforma. Compara el valor mapeado y su interpretación.

¿Qué ocurre si la URL de retorno no es válida?

La integración debe detenerse en vez de enviar datos a un destino no fiable. La validación de URL y hosts permitidos es un control esencial.

Lecturas relacionadas

Artículo anterior Lista de comprobación para implementar PunchOut en Magento 2
Siguiente artículo Magento Open Source PunchOut frente a Adobe Commerce B2B