private function getSourceOptionNames($sourceOption) { $magentoOptionNames = $this->magentoProduct->getVariationInstance()->getTitlesVariationSet(); $resultNames = array(); foreach ($sourceOption as $attribute => $option) { $names = array(); if (isset($magentoOptionNames[$attribute])) { $names = $magentoOptionNames[$attribute]['values'][$option]; } $resultNames[$attribute] = $this->prepareOptionNames($option, $names); } return $resultNames; }
private function getSourceAttributesData() { if (!is_null($this->magentoProduct)) { $magentoAttributesNames = $this->magentoProduct->getVariationInstance()->getTitlesVariationSet(); $magentoStandardVariations = $this->magentoProduct->getVariationInstance()->getVariationsTypeStandard(); $resultData = array(); foreach (array_keys($magentoStandardVariations['set']) as $attribute) { $titles = array(); if (isset($magentoAttributesNames[$attribute])) { $titles = $magentoAttributesNames[$attribute]['titles']; } $resultData[$attribute] = $titles; } return $resultData; } return array_fill_keys($this->getSourceAttributes(), array()); }
protected function getBundleProductDynamicValue(Product $product) { $value = 0; $variationsData = $product->getVariationInstance()->getVariationsTypeStandard(); foreach ($variationsData['variations'] as $variation) { $variationValue = 0; foreach ($variation as $option) { /** @var $childProduct Product */ $childProduct = $this->modelFactory->getObject('Magento\\Product')->setProductId($option['product_id']); $optionValue = (double) $childProduct->getSpecialPrice(); $optionValue <= 0 && ($optionValue = (double) $childProduct->getPrice()); $variationValue += $optionValue; } if ($variationValue < $value || $value == 0) { $value = $variationValue; } } return $this->convertValueFromStoreToMarketplace($value); }