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.142Magento Chile Google+