private function getGroupedAssociatedProduct() { $variationName = array_shift($this->variation); //------------------------------ $configGroup = '/order/magento/settings/'; $configKey = 'create_with_first_product_options_when_variation_unavailable'; $configValue = Mage::helper('M2ePro/Module')->getConfig()->getGroupValue($configGroup, $configKey); if ((is_null($variationName) || strlen(trim($variationName)) == 0) && !$configValue) { return null; } //------------------------------ $associatedProducts = $this->magentoProduct->getProductVariationsForOrder(); foreach ($associatedProducts as $product) { // return product if it's name is equal to variation name if (is_null($variationName) || trim(strtolower($product->getName())) == trim(strtolower($variationName))) { return $product; } } return null; }
private function getOptions(Ess_M2ePro_Model_Magento_Product $magentoProduct) { $variation = $this->proxyItem->getLowerCasedVariation(); $magentoOptions = $magentoProduct->getProductVariationsForOrder(); // Variation info unavailable - return first value for each required option // --------------- if (empty($variation)) { $firstOptions = array(); foreach ($magentoOptions as $option) { $firstOptions[$option['option_id']] = $option['values'][0]['value_id']; } return $firstOptions; } // --------------- // Map variation with magento options // --------------- $mappedOptions = array(); foreach ($magentoOptions as $option) { $optionValueLabel = $this->getMappedOptionValueLabel($variation, $option['labels']); if ($optionValueLabel == '') { continue; } $optionValueId = $this->getMappedOptionValueId($optionValueLabel, $option['values']); if (is_null($optionValueId)) { continue; } $mappedOptions[$option['option_id']] = $optionValueId; } // --------------- return $mappedOptions; }