item = $item; return $this; } /** * Calculate configured price * * @return float */ protected function calculatePrice() { $value = 0.; /** @var \Magento\GroupedProduct\Model\Product\Type\Grouped $typeInstance */ $typeInstance = $this->getProduct()->getTypeInstance(); $associatedProducts = $typeInstance ->setStoreFilter($this->getProduct()->getStore(), $this->getProduct()) ->getAssociatedProducts($this->getProduct()); foreach ($associatedProducts as $product) { /** @var Product $product */ /** @var \Magento\Wishlist\Model\Item\Option $customOption */ $customOption = $this->getProduct() ->getCustomOption('associated_product_' . $product->getId()); if (!$customOption) { continue; } $finalPrice = $product->getPriceInfo() ->getPrice(FinalPrice::PRICE_CODE) ->getValue(); $value += $finalPrice * ($customOption->getValue() ? $customOption->getValue() : 1); } return $value; } /** * Price value of product with configured options * * @return bool|float */ public function getValue() { return $this->item ? $this->calculatePrice() : parent::getValue(); } }