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.

Chirag Patel
quelle
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.

Chirag Patel
quelle