Los productos de la tienda se suministran de diferentes proveedores. Se requiere crear múltiples pedidos para cada proveedor en función de sus productos en el carrito durante un pago. ¿Hay alguna extensión para lograr esta tarea o debería comenzar a desarrollar un módulo de pago personalizado? ¿Qué pasa con los puntos calientes para crear una visión de extensión de desarrolladores experimentados de Magento? ¿Me puede explicar breve arquitectura de flujo de pago amigable con Magento (tan posible como nivel de código)? Muchas gracias mas!
checkout
code
order-splitting
mageUz
fuente
fuente
Respuestas:
Es factible con bastante facilidad con una reescritura del
checkout/type_onepage
modelo.En esa clase, anule el
saveOrder()
método de la siguiente manera:Pero tenga en cuenta que en Magento un pago está asociado con una factura, y cada factura está asociada con un pedido.
En consecuencia, esto significa que tan pronto como tenga varios pedidos, también habrá dividido los pagos . Por lo tanto, esto solo es factible si el método de pago no requiere la interacción del usuario durante el pago.
ACTUALIZACIÓN : La respuesta original delegada a la
parent::save()
que tenía que serparent:saveOrder()
. Está arreglado en el código de ejemplo ahora.fuente
saveOrder
todavía está presente y activo en Magento CE 1.9 como siempre lo ha estado.Lo siguiente se prueba en CE ver 1.9.0.x
IMPORTANTE Debe personalizar sus métodos de pago para recuperar el total general de la cotización.
fuente
$group[] = $item; // all other items in one order
puede contener varios artículos por pedido, puede modificarlos fácilmente para que cada proveedor tenga los suyos$group
.$quote->Mage::getModel('sales/quote')->load($lastOrder->getQuoteId())
. Entonces hay muchas totales que se pueden recuperar a partir$quote
, uno de los cuales es$quote->getGrandTotal()