Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Price.php
Go to the documentation of this file.
1 <?php
9 
10 class Price extends \Magento\Catalog\Model\Product\Type\Price
11 {
19  public function getFinalPrice($qty, $product)
20  {
21  if ($qty === null && $product->getCalculatedFinalPrice() !== null) {
22  return $product->getCalculatedFinalPrice();
23  }
24  if ($product->getCustomOption('simple_product') && $product->getCustomOption('simple_product')->getProduct()) {
25  $finalPrice = parent::getFinalPrice($qty, $product->getCustomOption('simple_product')->getProduct());
26  } else {
27  $priceInfo = $product->getPriceInfo();
28  $finalPrice = $priceInfo->getPrice('final_price')->getAmount()->getValue();
29  }
30  $finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);
31  $finalPrice = max(0, $finalPrice);
32  $product->setFinalPrice($finalPrice);
33 
34  return $finalPrice;
35  }
36 
40  public function getPrice($product)
41  {
42  if (!empty($product)) {
43  $simpleProductOption = $product->getCustomOption('simple_product');
44  if (!empty($simpleProductOption)) {
45  $simpleProduct = $simpleProductOption->getProduct();
46  if (!empty($simpleProduct)) {
47  return $simpleProduct->getPrice();
48  }
49  }
50  }
51  return 0;
52  }
53 }
_applyOptionsPrice($product, $qty, $finalPrice)
Definition: Price.php:548