Dos opciones personalizadas combinadas: el precio de nivel no funciona

11

Estoy configurando productos y precios de nivel en Magento, pero he notado que en un producto simple con opciones personalizadas (ejemplo: camiseta azul, camiseta roja), el precio de nivel no funcionará si los combinamos para alcanzar la cantidad

Los precios de nivel parecen funcionar solo cuando se alcanza la cantidad de una variación de producto, pero no una combinación de dos.

He leído varias respuestas en Stack Overflow y en los foros de Magento, y recomiendan crear productos configurables. Sin embargo, esto puede ser bastante difícil si una tienda tiene muchos productos o muchas variaciones.

¿Conoces alguna solución para aplicar el precio de nivel, con una combinación de variaciones?

Miseria
fuente
¿Puedes precisar cuál es el tipo de camiseta azul y camiseta roja? ¿Son productos individuales sin vínculo entre ellos?
Christophe Ferreboeuf
Serían opciones personalizadas ("azul", "rojo") de una "camiseta" de producto simple. En Magento actualmente, si el Precio de Nivel fuera, digamos, "10 o más obtienes un descuento", funcionaría al comprar 10 Rojos o 10 Azules, pero no cuando compraría 5 + 5 ...
Peanuts
¿Cómo puede saber Magento que estos dos productos están vinculados?
Christophe Ferreboeuf
Bueno, en mi ejemplo solo hay 1 producto (Producto simple), que tiene dos opciones personalizadas (variaciones): azul y rojo. Magento no calcula un precio de nivel cuando agrega dos opciones del mismo Producto simple (aquí estamos hablando de Productos simples, no de Productos configurables). Para los productos configurables, hay una extensión que permite la combinación de precios por niveles ( magentocommerce.com/magento-connect/… ), pero nuevamente, este no es mi caso, tenemos demasiadas opciones para crear un producto por opción).
Maní
Necesitará un módulo personalizado para lograr esto. O si fuera usted, consideraría el uso de productos configurables con el módulo de precio de nivel que mencionó.
paj

Respuestas:

11

El problema aquí es que Magento trata los productos con diferentes opciones personalizadas como diferentes líneas de pedido en el carrito. Por lo tanto, la cantidad para las dos variantes de opciones personalizadas nunca se suma para poder calificar el artículo de presupuesto para un nivel particular de precios escalonados.

Ahora, hacer que esto funcione implicaría un trabajo personalizado. Puedo darte consejos sobre dónde puedes mirar para que funcione en el código.

Revisa Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

En este método, deberá recorrer todos los artículos de cotización y vincular la cantidad escalonada aplicable en cada uno de los artículos de cotización. Digamos que tiene dos variantes A y B con cantidad 1 y 3. Recorrerá los elementos de la cotización y hará algo como:

$quoteItemA->setTieredQty(1+3);
$quoteItemB->setTieredQty(1+3); //ofcourse 1 and 3 are dynamic here

Entonces en Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

En lugar de usar: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

$finalPrice = $product->getFinalPrice($quoteItem->getTieredQty());

Esto implica un trabajo personalizado, pero el enfoque que estoy enumerando debería funcionar con algunos ajustes sobre la marcha a medida que avanza.

Paras Sood
fuente
4

Puedo confirmar, esto funciona

        /* hard coded - start */ 
        $cart = Mage::getModel('checkout/cart')->getQuote();
        $total_qty = 0;
        foreach ($cart->getAllItems() as $item2) {
          if ($item2->getProductId() == $quoteItem->getProductId()) $total_qty+= $item2->getQty();    
        }
        $finalPrice = $product->getFinalPrice($total_qty);
        // $finalPrice = $product->getFinalPrice($quoteItem->getQty());
        /* hard coded - end */ 
usuario7286399
fuente