Magento 2: Comment obtenir le prix final et le prix d'origine de tous les types de produits


11

Comment puis-je obtenir le prix d'origine et le prix final des produits ci-dessous?

  1. Produit simple
  2. Produit configurable
  3. Produit groupé
  4. Produit de groupe

Pour un produit simple, je peux obtenir le prix facilement en utilisant le code ci-dessous.

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

Mais je ne suis pas en mesure d'obtenir le prix original et le prix final pour le produit Configurable , produit Bundle , produit Groupe

Existe-t-il un moyen simple d'obtenir les deux prix de tous les autres types de produits?


ÉDITER :

J'obtiens le prix Prix d' origine et prix final du produit configurable en utilisant le code ci-dessous. et prendre référence à get-price-range-configurable-product-magento-2

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

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

Toute aide serait appréciée! Merci.


vous pouvez obtenir le prix d'origine et le prix final ici <? 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

Avez-vous vérifié ce code? est-ce que ça marche? Ça ne marche pas pour moi.
Chirag Patel du

oui ce code fonctionne pour moi
Rakesh Donga

$_product->getSpecialPrice();ne travaille pas pour moi
Chirag Patel

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

Réponses:


21

Vous pouvez obtenir le prix régulier et le prix final de tous les types de produits en utilisant ci-dessous.

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

      $regularPrice = $basePrice->getMinRegularAmount()->getValue();
      $specialPrice = $product->getFinalPrice();
}
  1. Produit groupé
if ($product->getTypeId() == 'bundle') {
      $regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getMinimalPrice()->getValue();
      $specialPrice = $product->getPriceInfo()->getPrice('final_price')->getMinimalPrice()->getValue();            
}
  1. Produit de groupe
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();
          }
      }
}

Remarque: Dans l'exemple ci-dessus, $ product est le produit actuel.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.