Magento 2: So erhalten Sie den Endpreis und den Originalpreis aller Produkttypen


10

Wie kann ich den Originalpreis und den Endpreis für das unten angegebene Produkt erhalten?

  1. Einfaches Produkt
  2. Konfigurierbares Produkt
  3. Produkt bündeln
  4. Gruppenprodukt

Für einfache Produkte kann ich den Preis leicht mit dem folgenden Code erhalten.

$finalPrice = $product->getFinalPrice();
$originalPrice = $product->getPrice();

Ich kann jedoch nicht den Originalpreis und den Endpreis für das konfigurierbare Produkt , das Bundle-Produkt oder das Gruppenprodukt erhalten

Gibt es eine einfache Möglichkeit, beide Preise für alle anderen Produkttypen zu erhalten?


EDIT:

Ich erhalte den Preis Originalpreis und Endpreis des konfigurierbaren Produkts unter Verwendung des folgenden Codes. und beziehen Sie sich auf get-price-range-konfigurable-product-magento-2

$basePrice = $product->getPriceInfo()->getPrice('regular_price');

$regularPrice = $basePrice->getMinRegularAmount()->getValue();
$specialPrice = $product->getFinalPrice();

Jede Hilfe wäre dankbar! Vielen Dank.


Den Originalpreis und den Endpreis erhalten Sie hier <? php $ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance (); $ productCollectionFactory = $ objectManager-> get ('\ Magento \ Catalog \ Model \ ResourceModel \ Product \ CollectionFactory'); $ collection = $ productCollectionFactory-> create (); $ collection-> addAttributeToSelect ('*'); $ collection-> addWebsiteFilter (); $ collection-> addMinimalPrice (); $ collection-> addFinalPrice (); $ collection-> addStoreFilter (); $ collection-> setVisibility ($ objectManager-> get ('\ Magento \ Catalog \ Model \ Product \ Visibility') -> getVisibleInSiteIds ()); ?> <? php foreach ($ collecti
Rakesh Donga

Haben Sie diesen Code überprüft? funktioniert es? Es funktioniert nicht bei mir.
Chirag Patel

Ja, dieser Code funktioniert für mich
Rakesh Donga

$_product->getSpecialPrice();arbeitet nicht für mich
Chirag Patel

if($orgprice > $specialprice){ echo $_product->getSpecialPrice(); }
Rakesh Donga

Antworten:


20

Sie können den regulären Preis und den Endpreis für alle Arten von Produkten auf folgende Weise erhalten.

  1. Einfaches Produkt
$regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getValue();
$specialPrice = $product->getPriceInfo()->getPrice('special_price')->getValue();
  1. Konfigurierbares Produkt
if ($product->getTypeId() == 'configurable') {
      $basePrice = $product->getPriceInfo()->getPrice('regular_price');

      $regularPrice = $basePrice->getMinRegularAmount()->getValue();
      $specialPrice = $product->getFinalPrice();
}
  1. Produkt bündeln
if ($product->getTypeId() == 'bundle') {
      $regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getMinimalPrice()->getValue();
      $specialPrice = $product->getPriceInfo()->getPrice('final_price')->getMinimalPrice()->getValue();            
}
  1. Gruppenprodukt
if ($product->getTypeId() == 'grouped') {
      $usedProds = $product->getTypeInstance(true)->getAssociatedProducts($product);            
      foreach ($usedProds as $child) {
          if ($child->getId() != $product->getId()) {
                $regularPrice += $child->getPrice();
                $specialPrice += $child->getFinalPrice();
          }
      }
}

Hinweis: Im obigen Beispiel ist $ product das aktuelle Produkt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.