public function isAddedNewVariationsAttributes(Ess_M2ePro_Model_ListingsProducts $listingProduct) { if (!$listingProduct->isListingTypeFixed() || !$listingProduct->getListingTemplate()->isVariationMode() || $listingProduct->getMagentoProduct()->isSimpleTypeWithoutCustomOptions()) { return false; } $magentoVariations = $this->prepareMagentoVariations($listingProduct->getMagentoProduct()->getProductVariations()); $currentVariations = $this->prepareCurrentVariations($listingProduct->getListingsProductsVariations(true)); if (!isset($magentoVariations[0]) && !isset($currentVariations[0])) { return false; } if (!isset($magentoVariations[0]) || !isset($currentVariations[0])) { return true; } if (count($magentoVariations[0]['options']) != count($currentVariations[0]['options'])) { return true; } return false; }
public function updateAfterAction(Ess_M2ePro_Model_ListingsProducts $listingProduct, $saveEbayQtySold = false) { if (!$listingProduct->isListingTypeFixed() || !$listingProduct->getListingTemplate()->isVariationMode() || $listingProduct->getMagentoProduct()->isSimpleTypeWithoutCustomOptions()) { return; } // Delete Variations //----------------------------- $productVariations = $listingProduct->getListingsProductsVariations(true); foreach ($productVariations as $variation) { /** @var $variation Ess_M2ePro_Model_ListingsProductsVariations */ $variation->isDelete() && $variation->deleteInstance(); } //----------------------------- // Update Variations //----------------------------- $productVariations = $listingProduct->getListingsProductsVariations(true); foreach ($productVariations as $variation) { /** @var $variation Ess_M2ePro_Model_ListingsProductsVariations */ $dataForUpdate = array('ebay_price' => $variation->getPrice(), 'add' => Ess_M2ePro_Model_ListingsProductsVariations::ADD_NO, 'delete' => Ess_M2ePro_Model_ListingsProductsVariations::DELETE_NO, 'status' => Ess_M2ePro_Model_ListingsProducts::STATUS_LISTED); if ($saveEbayQtySold) { $dataForUpdate['ebay_qty_sold'] = is_null($variation->getEbayQtySold()) ? 0 : $variation->getEbayQtySold(); $dataForUpdate['ebay_qty'] = $variation->getQty() + $dataForUpdate['ebay_qty_sold']; } else { $dataForUpdate['ebay_qty_sold'] = 0; $dataForUpdate['ebay_qty'] = $variation->getQty(); } if ($dataForUpdate['ebay_qty'] <= $dataForUpdate['ebay_qty_sold']) { $dataForUpdate['status'] = Ess_M2ePro_Model_ListingsProducts::STATUS_SOLD; } if ($dataForUpdate['ebay_qty'] <= 0) { $dataForUpdate['status'] = Ess_M2ePro_Model_ListingsProducts::STATUS_NOT_LISTED; } $variation->addData($dataForUpdate)->save(); } //----------------------------- }
protected function addImagesData(Ess_M2ePro_Model_ListingsProducts $listingProduct, array &$requestData) { $requestData['images'] = array('gallery_type' => $listingProduct->getListingTemplate()->getGalleryType(), 'images' => $listingProduct->getImagesForEbay()); }