Magento Chile Desarrolladores Magento

¿Tienes una pregunta?

Si usted tiene cualquier pregunta, escriba a continuación lo que está buscando!

Magento 2 – valor “Tan bajo como” (‘As low as’) suma dos veces impuesto.


Magento 2 – valor “Tan bajo como” (‘As low as’) suma dos veces el impuesto en la lista de productos y no así en la vista del producto. Al parecer es un bug, ya que no encontramos aún la razón de aquello. Solo un pequeño arreglo nada elegante, pero funciona. Ir a module-catalog/Pricing/Render/FinalPriceBox.php o rescribir con un nuevo módulo lo siguiente:

public function renderAmountMinimal()
    {
        $id = $this->getPriceId() ? $this->getPriceId() : 'product-minimal-price-' . $this->getSaleableItem()->getId();


		
        $amount = $this->minimalPriceCalculator->getAmount($this->getSaleableItem());
        
        if ($amount === null) {
            return '';
        }

		$minTierPrice = $this->minimalPriceCalculator->getValue($this->getSaleableItem());
		// var_dump($minTierPrice); // work

// var_dump($price);
	
		// var_dump($amount);
		// Nos indica lo siguiente:
		// object(Magento\Framework\Pricing\Amount\Base)#6089 (5) { ["amount":protected]=> float(20141.975801) ["baseAmount":protected]=> NULL ["totalAdjustmentAmount":protected]=> NULL ["adjustmentAmounts":protected]=> array(1) { ["tax"]=> float(5957.4822) } ["adjustments":protected]=> array(0) { } } Tan bajo como $20.142
   
        /*
        return $this->renderAmount(
            $amount,
            [
                'display_label'     => __('As low as'),
                'price_id'          => $id,
                'include_container' => false,
                'skip_adjustments' => true
            ]
        );
        */
		// var_dump($amount);       
               
		// $mycustomMinPrice = round($minTierPrice);
		$mycustomMinPrice	= number_format($minTierPrice, 0, '', '.');
        
       	return __('As low as').' $'. $mycustomMinPrice; // work

    }

Este arreglo lo hemos publicado en Magento Stack Exchange, para ver si damos con una respuesta mejorada, con la contribución de otros desarrolladores Magento.

Si miramos el código original y hacemos un var_dump a $amount nos daremos cuenta que viene con el tax incluido (impuesto). La idea sería quitarle ese tax, para dejar $amount sin el y arroje el precio correcto para “As low as”. Ver el var_dump($amount):

var_dump($amount);

object(Magento\Framework\Pricing\Amount\Base)#6089 (5) { ["amount":protected]=> float(20141.975801) ["baseAmount":protected]=> NULL ["totalAdjustmentAmount":protected]=> NULL ["adjustmentAmounts":protected]=> array(1) { ["tax"]=> float(5957.4822) } ["adjustments":protected]=> array(0) { } } Tan bajo como $20.142
Magento 2 – valor “Tan bajo como” (‘As low as’) suma dos veces impuesto.
5 (100%) 1 voto

Comentarios

Comentarios