Magento 2: come ottenere il prezzo finale e il prezzo originale di tutti i tipi di prodotto


11

Come posso ottenere il prezzo originale e il prezzo finale del prodotto indicato di seguito?

  1. Prodotto semplice
  2. Prodotto configurabile
  3. Prodotto in bundle
  4. Prodotto del gruppo

Per un prodotto semplice posso ottenere facilmente il prezzo usando il codice qui sotto.

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

Ma non riesco a ottenere il prezzo originale e il prezzo finale per prodotto configurabile , prodotto in bundle , prodotto del gruppo

Esiste un modo semplice per ottenere entrambi i prezzi di tutti gli altri tipi di prodotti.


MODIFICARE :

Ottengo il prezzo Prezzo originale e Prezzo finale del prodotto configurabile utilizzando il codice seguente. e prendere riferimento da get-price-range-configurable-product-magento-2

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

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

Qualsiasi aiuto sarebbe apprezzato! Grazie.


puoi ottenere il prezzo originale e il prezzo finale qui <? php $ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance (); $ productCollectionFactory = $ objectManager-> get ('\ Magento \ Catalog \ Model \ ResourceModel \ Product \ CollectionFactory'); $ collection = $ productCollectionFactory-> create (); $ Collezione> addAttributeToSelect ( '*'); $ Collezione> addWebsiteFilter (); $ Collezione> addMinimalPrice (); $ Collezione> addFinalPrice (); $ Collezione> addStoreFilter (); $ Collezione> setVisibility ($ objectManager-> get ( '\ Magento \ Catalog \ modello \ prodotto \ visibilità') -> getVisibleInSiteIds ()); ?> <? php foreach ($ collecti
Rakesh Donga,

Hai controllato questo codice? Funziona? Non funziona per me.
Chirag Patel,

sì, questo codice funziona per me
Rakesh Donga,

$_product->getSpecialPrice();non funziona per me
Chirag Patel,

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

Risposte:


21

È possibile ottenere il prezzo normale e il prezzo finale di tutti i tipi di prodotto utilizzando il modo seguente.

  1. Prodotto semplice
$regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getValue();
$specialPrice = $product->getPriceInfo()->getPrice('special_price')->getValue();
  1. Prodotto configurabile
if ($product->getTypeId() == 'configurable') {
      $basePrice = $product->getPriceInfo()->getPrice('regular_price');

      $regularPrice = $basePrice->getMinRegularAmount()->getValue();
      $specialPrice = $product->getFinalPrice();
}
  1. Prodotto in bundle
if ($product->getTypeId() == 'bundle') {
      $regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getMinimalPrice()->getValue();
      $specialPrice = $product->getPriceInfo()->getPrice('final_price')->getMinimalPrice()->getValue();            
}
  1. Prodotto del gruppo
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();
          }
      }
}

Nota: nell'esempio precedente $ product è il prodotto corrente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.