Wenn Sie die Anzeige der Magento 2 Staffelpreise (tier prices) auf der Produktseite eines konfigurierbaren Produktes anpassen möchten, kann es sein, dass Sie die vendor/magento/module-configurable-product/Pricing/Render/TierPriceBox.php Klasse überschreiben müssen. Gehen Sie folgendermassen vor:
Fügen Sie den folgenden Inhalt in die di.xml Ihrer Extension ein:
1 2 3 |
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> <preference for="Magento\ConfigurableProduct\Pricing\Render\TierPriceBox" type="Vendor\Module\Pricing\Render\TierPriceBox" /> </config> |
Erstellen Sie nun die Klasse TierPriceBox.php in folgendem Pfad: Vendor/Module/Pricing/Render/TierPriceBox.php
Fügen Sie den folgenden Code in die soeben erstelle Klasse ein und passen Sie z.B. die toHtml() Funktion an:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Vendor\Module\Pricing\Render; use Magento\Catalog\Pricing\Price\TierPrice; /** * Responsible for displaying tier price box on configurable product page. */ class TierPriceBox extends \Magento\ConfigurableProduct\Pricing\Render\FinalPriceBox { /** * @inheritdoc */ public function toHtml() { // Hide tier price block in case of MSRP or in case when no options with tier price. if (!$this->isMsrpPriceApplicable() && $this->isTierPriceApplicable()) { return parent::toHtml(); } return ''; } /** * Check if at least one of simple products has tier price. * * @return bool */ private function isTierPriceApplicable() { $product = $this->getSaleableItem(); foreach ($product->getTypeInstance()->getUsedProducts($product) as $simpleProduct) { if ($simpleProduct->isSalable() && !empty($simpleProduct->getPriceInfo()->getPrice(TierPrice::PRICE_CODE)->getTierPriceList()) ) { return true; } } return false; } } |
TierPriceBox.php für konfigurierbares Produkt überschreiben
Sie benötigen Unterstützung bei der Umsetzung dieser Lösung oder Sie haben die passende Lösung für Ihr Magento Problem noch nicht gefunden? Kontaktieren Sie mich und ich helfe Ihnen bei Ihrem Magento Projekt!