本文整理汇总了PHP中Magento\Catalog\Model\Product::getCalculatedFinalPrice方法的典型用法代码示例。如果您正苦于以下问题:PHP Product::getCalculatedFinalPrice方法的具体用法?PHP Product::getCalculatedFinalPrice怎么用?PHP Product::getCalculatedFinalPrice使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Model\Product
的用法示例。
在下文中一共展示了Product::getCalculatedFinalPrice方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFinalPrice
/**
* Returns product final price depending on options chosen
*
* @param float $qty
* @param \Magento\Catalog\Model\Product $product
* @return float
*/
public function getFinalPrice($qty, $product)
{
if ($qty === null && $product->getCalculatedFinalPrice() !== null) {
return $product->getCalculatedFinalPrice();
}
$finalPrice = parent::getFinalPrice($qty, $product);
if ($product->hasCustomOptions()) {
/* @var $typeInstance \Magento\GroupedProduct\Model\Product\Type\Grouped */
$typeInstance = $product->getTypeInstance();
$associatedProducts = $typeInstance->setStoreFilter($product->getStore(), $product)->getAssociatedProducts($product);
foreach ($associatedProducts as $childProduct) {
/* @var $childProduct \Magento\Catalog\Model\Product */
$option = $product->getCustomOption('associated_product_' . $childProduct->getId());
if (!$option) {
continue;
}
$childQty = $option->getValue();
if (!$childQty) {
continue;
}
$finalPrice += $childProduct->getFinalPrice($childQty) * $childQty;
}
}
$product->setFinalPrice($finalPrice);
return max(0, $product->getData('final_price'));
}
示例2: getFinalPrice
/**
* Get product final price
*
* @param float $qty
* @param \Magento\Catalog\Model\Product $product
* @return float
*/
public function getFinalPrice($qty, $product)
{
if ($qty === null && $product->getCalculatedFinalPrice() !== null) {
return $product->getCalculatedFinalPrice();
}
if ($product->getCustomOption('simple_product')) {
$product->setSelectedConfigurableOption($product->getCustomOption('simple_product')->getProduct());
}
//TODO: MAGETWO-23739 catalogrule price must get from simple product.
$finalPrice = $product->getPriceInfo()->getPrice('final_price')->getAmount()->getValue();
$finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);
$finalPrice = max(0, $finalPrice);
$product->setFinalPrice($finalPrice);
return $finalPrice;
}
示例3: getFinalPrice
/**
* Get product final price
*
* @param float $qty
* @param \Magento\Catalog\Model\Product $product
* @return float
*/
public function getFinalPrice($qty, $product)
{
if (is_null($qty) && !is_null($product->getCalculatedFinalPrice())) {
return $product->getCalculatedFinalPrice();
}
$basePrice = $this->getBasePrice($product, $qty);
$finalPrice = $basePrice;
$product->setFinalPrice($finalPrice);
$this->_eventManager->dispatch('catalog_product_get_final_price', array('product' => $product, 'qty' => $qty));
$finalPrice = $product->getData('final_price');
$finalPrice += $this->getTotalConfigurableItemsPrice($product, $finalPrice);
$finalPrice += $this->_applyOptionsPrice($product, $qty, $basePrice) - $basePrice;
$finalPrice = max(0, $finalPrice);
$product->setFinalPrice($finalPrice);
return $finalPrice;
}
示例4: getFinalPrice
/**
* Get product final price
*
* @param float $qty
* @param \Magento\Catalog\Model\Product $product
* @return float
*/
public function getFinalPrice($qty, $product)
{
if ($qty === null && $product->getCalculatedFinalPrice() !== null) {
return $product->getCalculatedFinalPrice();
}
if ($product->getCustomOption('simple_product') && $product->getCustomOption('simple_product')->getProduct()) {
$finalPrice = parent::getFinalPrice($qty, $product->getCustomOption('simple_product')->getProduct());
} else {
$priceInfo = $product->getPriceInfo();
$finalPrice = $priceInfo->getPrice('final_price')->getAmount()->getValue();
}
$finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);
$finalPrice = max(0, $finalPrice);
$product->setFinalPrice($finalPrice);
return $finalPrice;
}
示例5: getFinalPrice
/**
* Retrieve product final price
*
* @param integer $qty
* @param \Magento\Catalog\Model\Product $product
* @return float
*/
public function getFinalPrice($qty, $product)
{
if ($qty === null && $product->getCalculatedFinalPrice() !== null) {
return $product->getCalculatedFinalPrice();
}
$finalPrice = parent::getFinalPrice($qty, $product);
/**
* links prices are added to base product price only if they can be purchased separately
*/
if ($product->getLinksPurchasedSeparately()) {
if ($linksIds = $product->getCustomOption('downloadable_link_ids')) {
$linkPrice = 0;
$links = $product->getTypeInstance()->getLinks($product);
foreach (explode(',', $linksIds->getValue()) as $linkId) {
if (isset($links[$linkId])) {
$linkPrice += $links[$linkId]->getPrice();
}
}
$finalPrice += $linkPrice;
}
}
$product->setData('final_price', $finalPrice);
return max(0, $product->getData('final_price'));
}
示例6: getFinalPrice
/**
* Retrieve product final price
*
* @param float|null $qty
* @param Product $product
* @return float
*/
public function getFinalPrice($qty, $product)
{
if ($qty === null && $product->getCalculatedFinalPrice() !== null) {
return $product->getCalculatedFinalPrice();
}
$finalPrice = $this->getBasePrice($product, $qty);
$product->setFinalPrice($finalPrice);
$this->_eventManager->dispatch('catalog_product_get_final_price', ['product' => $product, 'qty' => $qty]);
$finalPrice = $product->getData('final_price');
$finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);
$finalPrice = max(0, $finalPrice);
$product->setFinalPrice($finalPrice);
return $finalPrice;
}
示例7: getCalculatedFinalPrice
/**
* {@inheritdoc}
*/
public function getCalculatedFinalPrice()
{
$pluginInfo = $this->pluginList->getNext($this->subjectType, 'getCalculatedFinalPrice');
if (!$pluginInfo) {
return parent::getCalculatedFinalPrice();
} else {
return $this->___callPlugins('getCalculatedFinalPrice', func_get_args(), $pluginInfo);
}
}