private function inspectAndFixProductOptionsIds(\Ess\M2ePro\Model\Listing\Product $listingProduct, $magentoVariations) { /** @var \Ess\M2ePro\Model\Listing\Product\Variation[] $listingProductVariations */ $listingProductVariations = $listingProduct->getVariations(true); if (empty($listingProductVariations)) { return; } foreach ($listingProductVariations as $listingProductVariation) { $listingProductVariationOptions = $listingProductVariation->getOptions(); foreach ($magentoVariations as $magentoVariation) { $magentoVariationOptions = $magentoVariation['options']; if (!$this->isEqualVariations($magentoVariationOptions, $listingProductVariationOptions)) { continue; } foreach ($listingProductVariationOptions as $listingProductVariationOption) { foreach ($magentoVariationOptions as $magentoVariationOption) { if ($listingProductVariationOption['attribute'] != $magentoVariationOption['attribute'] || $listingProductVariationOption['option'] != $magentoVariationOption['option']) { continue; } if ($listingProductVariationOption['product_id'] == $magentoVariationOption['product_id']) { continue; } $listingProductVariationOption['product_id'] = $magentoVariationOption['product_id']; $this->getHelper('Component\\Ebay')->getModel('Listing\\Product\\Variation\\Option')->setData($listingProductVariationOption)->save(); } } } } }
private function updateListingsProductChange(\Ess\M2ePro\Model\Listing\Product $listingProduct) { $this->activeRecordFactory->getObject('ProductChange')->addUpdateAction($listingProduct->getProductId(), \Ess\M2ePro\Model\ProductChange::INITIATOR_INSPECTOR); foreach ($listingProduct->getVariations(true) as $variation) { /** @var $variation \Ess\M2ePro\Model\Listing\Product\Variation */ foreach ($variation->getOptions(true) as $option) { /** @var $option \Ess\M2ePro\Model\Listing\Product\Variation\Option */ $this->activeRecordFactory->getObject('ProductChange')->addUpdateAction($option->getProductId(), \Ess\M2ePro\Model\ProductChange::INITIATOR_INSPECTOR); } } }