Magento 2:如何获取所有类型产品的最终价格和原始价格


11

如何获得以下类型产品的原始价格最终价格

  1. 简单的产品
  2. 可配置产品
  3. 捆绑产品
  4. 集团产品

对于简单的产品,我可以使用以下代码轻松获得价格。

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

但是我无法获得可配置产品捆绑产品集团产品的原始价格最终价格

是否有任何简便的方法可以同时获得所有其他类型产品的价格。


编辑:

我使用以下代码获得价格可配置产品的原始价格最终价格。并参考get-price-range-configurableableproduct-magento-2

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

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

任何帮助,将不胜感激!谢谢。


您可以在这里获得原始价格和最终价格<?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

您是否检查过此代码?工作正常吗?它对我不起作用。
Chirag Patel

是的,这段代码对我
有用

$_product->getSpecialPrice();不适用于我
Chirag Patel

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

Answers:


21

您可以通过以下方式获得所有类型产品的正常价格最终价格

  1. 简单产品
$regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getValue();
$specialPrice = $product->getPriceInfo()->getPrice('special_price')->getValue();
  1. 可配置产品
if ($product->getTypeId() == 'configurable') {
      $basePrice = $product->getPriceInfo()->getPrice('regular_price');

      $regularPrice = $basePrice->getMinRegularAmount()->getValue();
      $specialPrice = $product->getFinalPrice();
}
  1. 捆绑产品
if ($product->getTypeId() == 'bundle') {
      $regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getMinimalPrice()->getValue();
      $specialPrice = $product->getPriceInfo()->getPrice('final_price')->getMinimalPrice()->getValue();            
}
  1. 集团产品
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();
          }
      }
}

注意:在上面的示例中,$ product是当前产品。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.