Permitiendo un orden negativo, con Gran Total menor que 0

15

Uno de nuestros clientes ha pedido la capacidad de su personal de entrada de pedidos para enviar pedidos con un total negativo. La aplicación ya permite líneas de pedido negativas, lo que funciona bien siempre que el resto del pedido genere un Gran Total positivo.

Parece que Magento se esfuerza mucho por no tener un total de orden negativo. Ver los totales recopilados muestra que Magento aplicará una tarjeta de regalo por el monto inverso. Si desactivo la tarjeta de regalo, aplica el crédito de la tienda (incluso si el crédito no existe). Sospecho que esto es solo una peculiaridad (y posiblemente un arenque rojo).

¿Alguien puede ayudar a determinar dónde Magento fuerza 0 como su cantidad total máxima total y cómo podríamos cumplir con la solicitud? No quiero simplemente forzar el total, ya que quiero que Magento calcule todo normalmente, solo con la asignación de un Gran Total negativo.

El espíritu de la pregunta es la viabilidad técnica, pero una vez que se aborde, me interesarán las "trampas" o pensamientos que puedan disuadir el uso de totales de pedidos negativos desde un punto de vista no técnico.

Morgon
fuente
1
¿Puedes decirnos por qué quieres esto?
Benmarks
@benmarks - Como sé que sabes, a veces 'eso es lo que el cliente quiere' triunfa sobre la lógica y la razón. Quieren dar a sus vendedores (mediante un formulario de pedido personalizado) total libertad en la creación de pedidos y precios (que ya funciona, incluso para líneas de pedido con precios negativos, siempre que el total del pedido sea superior a 0. Esto solo toma un paso más para permitir que todo el pedido sea negativo si se desea). ¡Gracias por cualquier ayuda que usted nos pueda proporcionar!
Morgon
¿Puedes dar un ejemplo del mundo real donde esto sería útil?
James Anelay - TheExtensionLab
¿Cómo va a lidiar con las notas de crédito?
Maikel Koek
@MaikelKoek: el cliente realmente no hace notas de crédito como es, así que no creo que eso tenga ningún impacto.
Morgon

Respuestas:

4

Esto parece una decisión muy arriesgada. Si lo implementó, necesitaría anular demasiado del núcleo, haciendo que el sitio sea extremadamente difícil de actualizar y admitir.

Al realizar una búsqueda en el núcleo de Magento para obtener max(0resultados en las siguientes áreas:

  • Enterprise_CustomerBalance_Model_Observer::creditmemoDataImport()
  • Enterprise_GiftCard_Model_Catalog_Product_Price_Giftcard::getFinalPrice()
  • Mage_Bundle_Model_Product_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Configurable_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Grouped_Price::getFinalPrice()
  • Mage_CatalogRule_Helper_Data::calcPriceRule()
  • Mage_Downloadable_Model_Product_Price::getFinalPrice()
  • Mage_SalesRule_Model_Validator::process()
  • Mage_Tax_Block_Sales_Order_Tax::_initSubtotal()
  • Mage_Tax_Model_Sales_Total_Quote_Tax (multiple uses)

Y muchos más en plantillas en las áreas adminhtml y frontend. Es posible que deba volver a escribir muchos de estos modelos para lograr la funcionalidad deseada.

Es posible que desee considerar las alternativas a continuación:

  • Proporcione al personal de ventas inicio de sesión en el área de administración de Magento y permítales crear pedidos desde allí: control total sobre el precio del artículo, etc.
  • Utilice el crédito de la tienda si el cliente debería recuperar el crédito (supongo que para eso sería un pedido con un total negativo).

Si proporciona un escenario en el que un pedido terminaría con un total negativo, y también el razonamiento detrás de él, entonces la comunidad podrá darle una mejor respuesta. Es difícil resolver un problema como este hasta que comprenda el valor comercial detrás de la decisión.

jharrison.au
fuente
Bueno ans. Me gusta :)
Rama Chandran M