diff --git a/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Gallery.php b/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Gallery.php index e866aadf7..7c0438410 100644 --- a/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Gallery.php +++ b/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Gallery.php @@ -9,6 +9,8 @@ class Ess_M2ePro_Block_Adminhtml_Renderer_Description_Gallery extends Ess_M2ePro_Block_Adminhtml_Renderer_Description_Abstract { + private $galleryId; + //######################################## public function __construct() @@ -24,4 +26,40 @@ public function __construct() } //######################################## + + public function getGalleryId() + { + if (is_null($this->galleryId)) { + $this->galleryId = substr(sha1( + 'gallery-' . $this->getData('index_number') . json_encode($this->getGalleryImages()) + ), 20); + } + return $this->galleryId; + } + + //######################################## + + public function isModeGallery() + { + return $this->getData('linked_mode') == Ess_M2ePro_Helper_Module_Renderer_Description::IMAGES_MODE_GALLERY; + } + + public function isLinkMode() + { + return $this->getData('linked_mode') == Ess_M2ePro_Helper_Module_Renderer_Description::IMAGES_MODE_NEW_WINDOW; + } + + public function isLayoutColumnMode() + { + return $this->getData('layout') == Ess_M2ePro_Helper_Module_Renderer_Description::LAYOUT_MODE_COLUMN; + } + + //######################################## + + public function getGalleryImages() + { + return $this->getData('images') ? $this->getData('images') : array(); + } + + //######################################## } \ No newline at end of file diff --git a/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Image.php b/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Image.php index 2a9f29509..22bf65da8 100644 --- a/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Image.php +++ b/app/code/community/Ess/M2ePro/Block/Adminhtml/Renderer/Description/Image.php @@ -9,6 +9,8 @@ class Ess_M2ePro_Block_Adminhtml_Renderer_Description_Image extends Ess_M2ePro_Block_Adminhtml_Renderer_Description_Abstract { + private $imageId; + //######################################## public function __construct() @@ -24,4 +26,23 @@ public function __construct() } //######################################## + + public function getImageId() + { + if (is_null($this->imageId)) { + $this->imageId = substr(sha1( + 'image-' . $this->getData('index_number') . json_encode($this->getData('src')) + ), 20); + } + return $this->imageId; + } + + //######################################## + + public function isLinkMode() + { + return $this->getData('linked_mode') == Ess_M2ePro_Helper_Module_Renderer_Description::IMAGES_MODE_NEW_WINDOW; + } + + //######################################## } \ No newline at end of file diff --git a/app/code/community/Ess/M2ePro/CHANGELOG b/app/code/community/Ess/M2ePro/CHANGELOG index f830d3e24..39dcf94e6 100644 --- a/app/code/community/Ess/M2ePro/CHANGELOG +++ b/app/code/community/Ess/M2ePro/CHANGELOG @@ -1,3 +1,18 @@ +* 6.4.9 (r11403) (09/05/2017) + +* Added: [eBay] Ability to use Parts Compatibility Feature for Spain (kTypes) +* Improvement: Some sort of new protection to prevent Magento Orders to be duplicated +* Improvement: Ignore Channel Orders that were created earlier than M2E Pro Account was created +* Improvement: [eBay] M2E Pro Images Gallery uses CSS instead of JS (eBay active content deprecation announcement) +* Fix: A simple with Custom Options product is considered to be a Variational by mistake (in some cases) +* Fix: Undefined constant TYPE_DB_UPGRADE during an upgrade process (only if Magento versions less than 1.5.x) +* Fix: Magento Order for Configurable Products was not created (the limited set of cases) +* Fix: [eBay] Order Variation Options were not mapped automatically for Grouped Products in some cases +* Fix: [eBay] Incorrect Status of Listing Product displayed in Listing Grid, if Out Of Stock Control enabled (Sold instead of Stopped) in some cases +* Fix: [eBay] Not paid Orders could be automatically canceled earlier than allowed period was ended +* Fix: [Amazon] Error when new Variational Product was added to the Listing because it was not considered as Parent-Child Amazon Product +* Fix: [Amazon] Some QTY amount was not returned back for AFN Orders if Magento Product QTY was lower or equal to zero + * 6.4.8 (r11156) (06/02/2017) * Added: [eBay] Ability to use Parts Compatibility Feature for France Marketplace (kTypes) diff --git a/app/code/community/Ess/M2ePro/Helper/Component/Ebay.php b/app/code/community/Ess/M2ePro/Helper/Component/Ebay.php index 087f4b084..d45db5cd8 100644 --- a/app/code/community/Ess/M2ePro/Helper/Component/Ebay.php +++ b/app/code/community/Ess/M2ePro/Helper/Component/Ebay.php @@ -17,6 +17,7 @@ class Ess_M2ePro_Helper_Component_Ebay extends Mage_Core_Helper_Abstract const MARKETPLACE_FR = 7; const MARKETPLACE_DE = 8; const MARKETPLACE_IT = 10; + const MARKETPLACE_ES = 13; const LISTING_DURATION_GTC = 100; const MAX_LENGTH_FOR_OPTION_VALUE = 50; @@ -258,6 +259,15 @@ public function reduceOptionsForVariations(array $options) public function reduceOptionsForOrders(array $options) { foreach ($options as &$singleOption) { + if ($singleOption instanceof Mage_Catalog_Model_Product) { + $reducedName = Mage::helper('M2ePro')->reduceWordsInString( + $singleOption->getName(), self::MAX_LENGTH_FOR_OPTION_VALUE + ); + $singleOption->setData('name', $reducedName); + + continue; + } + foreach ($singleOption['values'] as &$singleOptionValue) { foreach ($singleOptionValue['labels'] as &$singleOptionLabel) { $singleOptionLabel = Mage::helper('M2ePro')->reduceWordsInString( diff --git a/app/code/community/Ess/M2ePro/Helper/Component/Ebay/Motors.php b/app/code/community/Ess/M2ePro/Helper/Component/Ebay/Motors.php index aa6bfe9f3..cd2b155d9 100644 --- a/app/code/community/Ess/M2ePro/Helper/Component/Ebay/Motors.php +++ b/app/code/community/Ess/M2ePro/Helper/Component/Ebay/Motors.php @@ -39,6 +39,7 @@ public function getKtypeSupportedMarketplaces() Ess_M2ePro_Helper_Component_Ebay::MARKETPLACE_DE, Ess_M2ePro_Helper_Component_Ebay::MARKETPLACE_IT, Ess_M2ePro_Helper_Component_Ebay::MARKETPLACE_FR, + Ess_M2ePro_Helper_Component_Ebay::MARKETPLACE_ES, ); } diff --git a/app/code/community/Ess/M2ePro/Helper/Module.php b/app/code/community/Ess/M2ePro/Helper/Module.php index 28edc9c1e..fb677a920 100644 --- a/app/code/community/Ess/M2ePro/Helper/Module.php +++ b/app/code/community/Ess/M2ePro/Helper/Module.php @@ -72,7 +72,7 @@ public function getVersion() public function getRevision() { - $revision = '11156'; + $revision = '11403'; if ($revision == str_replace('|','#','|REVISION|')) { $revision = (int)exec('svnversion'); diff --git a/app/code/community/Ess/M2ePro/Helper/Module/Renderer/Description.php b/app/code/community/Ess/M2ePro/Helper/Module/Renderer/Description.php index 0d2f2cc76..4c966528b 100644 --- a/app/code/community/Ess/M2ePro/Helper/Module/Renderer/Description.php +++ b/app/code/community/Ess/M2ePro/Helper/Module/Renderer/Description.php @@ -98,12 +98,9 @@ private function insertImages($text, Ess_M2ePro_Model_Magento_Product $magentoPr $imageLink = $magentoProduct->getImageLink('image'); - $blockObj = Mage::getSingleton('core/layout')->createBlock( - 'M2ePro/adminhtml_renderer_description_image' - ); - $search = array(); $replace = array(); + foreach ($matches[0] as $key => $match) { $tempImageAttributes = explode(',', $matches[1][$key]); @@ -120,13 +117,18 @@ private function insertImages($text, Ess_M2ePro_Model_Magento_Product $magentoPr ? $imageLink : $magentoProduct->getGalleryImageLink($realImageAttributes[5]); + $blockObj = Mage::getSingleton('core/layout')->createBlock( + 'M2ePro/adminhtml_renderer_description_image' + ); + $data = array( - 'width' => $realImageAttributes[0], - 'height' => $realImageAttributes[1], - 'margin' => $realImageAttributes[2], - 'linked_mode' => $realImageAttributes[3], - 'watermark' => $realImageAttributes[4], - 'src' => $tempImageLink + 'width' => $realImageAttributes[0], + 'height' => $realImageAttributes[1], + 'margin' => $realImageAttributes[2], + 'linked_mode' => $realImageAttributes[3], + 'watermark' => $realImageAttributes[4], + 'src' => $tempImageLink, + 'index_number' => $key ); $search[] = $match; $replace[] = ($tempImageLink == '') @@ -147,13 +149,9 @@ private function insertMediaGalleries($text, Ess_M2ePro_Model_Magento_Product $m return $text; } - $blockObj = Mage::getSingleton('core/layout')->createBlock( - 'M2ePro/adminhtml_renderer_description_gallery' - ); - $search = array(); $replace = array(); - $attributeCounter = 0; + foreach ($matches[0] as $key => $match) { $tempMediaGalleryAttributes = explode(',', $matches[1][$key]); $realMediaGalleryAttributes = array(); @@ -188,20 +186,16 @@ private function insertMediaGalleries($text, Ess_M2ePro_Model_Magento_Product $m 'linked_mode' => (int)$realMediaGalleryAttributes[3], 'layout' => $realMediaGalleryAttributes[4], 'gallery_hint' => trim($realMediaGalleryAttributes[6], '"'), - 'watermark' => (int)$realMediaGalleryAttributes[7], - 'images_count' => count($galleryImagesLinks), - 'image_counter' => 0 + 'watermark' => (int)$realMediaGalleryAttributes[7], + 'images' => $galleryImagesLinks, + 'index_number' => $key ); - $tempHtml = ''; - $attributeCounter++; + $blockObj = Mage::getSingleton('core/layout')->createBlock( + 'M2ePro/adminhtml_renderer_description_gallery' + ); + $tempHtml = $blockObj->setData($data)->toHtml(); - foreach ($galleryImagesLinks as $imageLink) { - $data['image_counter']++; - $data['attribute_counter'] = $attributeCounter; - $data['src'] = $imageLink; - $tempHtml .= $blockObj->addData($data)->toHtml(); - } $search[] = $match; $replace[] = preg_replace('/\s{2,}/', '', $tempHtml); } diff --git a/app/code/community/Ess/M2ePro/Model/Amazon/Listing/Product.php b/app/code/community/Ess/M2ePro/Model/Amazon/Listing/Product.php index 3e2a0d428..1ccb5e70c 100644 --- a/app/code/community/Ess/M2ePro/Model/Amazon/Listing/Product.php +++ b/app/code/community/Ess/M2ePro/Model/Amazon/Listing/Product.php @@ -107,6 +107,23 @@ public function deleteInstance() //######################################## + public function afterSaveNewEntity() + { + /** @var Ess_M2ePro_Model_Amazon_Listing_Product_Variation_Manager $variationManager */ + $variationManager = $this->getVariationManager(); + $magentoProduct = $this->getMagentoProduct(); + + if ($magentoProduct->isProductWithVariations() && !$variationManager->isVariationProduct()) { + + $this->getParentObject()->setData('is_variation_product', 1); + $variationManager->setRelationParentType(); + $variationManager->getTypeModel()->resetProductAttributes(false); + $variationManager->getTypeModel()->getProcessor()->process(); + } + } + + //######################################## + /** * @return Ess_M2ePro_Model_Account */ diff --git a/app/code/community/Ess/M2ePro/Model/Amazon/Synchronization/Orders/Receive/Responser.php b/app/code/community/Ess/M2ePro/Model/Amazon/Synchronization/Orders/Receive/Responser.php index a9ad4332e..0833f8401 100644 --- a/app/code/community/Ess/M2ePro/Model/Amazon/Synchronization/Orders/Receive/Responser.php +++ b/app/code/community/Ess/M2ePro/Model/Amazon/Synchronization/Orders/Receive/Responser.php @@ -116,10 +116,17 @@ protected function processResponseData($response) private function processAmazonOrders($response, Ess_M2ePro_Model_Account $account) { + $accountCreateDate = new DateTime($account->getData('create_date'), new DateTimeZone('UTC')); + $orders = array(); foreach ($response as $orderData) { + $orderCreateDate = new DateTime($orderData['purchase_create_date'], new DateTimeZone('UTC')); + if ($orderCreateDate < $accountCreateDate) { + continue; + } + /** @var $orderBuilder Ess_M2ePro_Model_Amazon_Order_Builder */ $orderBuilder = Mage::getModel('M2ePro/Amazon_Order_Builder'); $orderBuilder->initialize($account, $orderData); @@ -140,6 +147,11 @@ private function createMagentoOrders($amazonOrders) { foreach ($amazonOrders as $order) { /** @var $order Ess_M2ePro_Model_Order */ + + if ($this->isOrderChangedInParallelProcess($order)) { + continue; + } + $order->getLog()->setInitiator(Ess_M2ePro_Helper_Data::INITIATOR_EXTENSION); if ($order->canCreateMagentoOrder()) { @@ -166,6 +178,24 @@ private function createMagentoOrders($amazonOrders) } } + /** + * This is going to protect from Magento Orders duplicates. + * (Is assuming that there may be a parallel process that has already created Magento Order) + * + * But this protection is not covering a cases when two parallel cron processes are isolated by mysql transactions + */ + private function isOrderChangedInParallelProcess(Ess_M2ePro_Model_Order $order) + { + /** @var Ess_M2ePro_Model_Order $dbOrder */ + $dbOrder = Mage::getModel('M2ePro/Order')->load($order->getId()); + + if ($dbOrder->getMagentoOrderId() != $order->getMagentoOrderId()) { + return true; + } + + return false; + } + //######################################## private function getSynchronizationLog() diff --git a/app/code/community/Ess/M2ePro/Model/Buy/Synchronization/Orders/Receive/Responser.php b/app/code/community/Ess/M2ePro/Model/Buy/Synchronization/Orders/Receive/Responser.php index f83804c53..db04b333b 100644 --- a/app/code/community/Ess/M2ePro/Model/Buy/Synchronization/Orders/Receive/Responser.php +++ b/app/code/community/Ess/M2ePro/Model/Buy/Synchronization/Orders/Receive/Responser.php @@ -132,6 +132,11 @@ private function createMagentoOrders($buyOrders) { foreach ($buyOrders as $order) { /** @var $order Ess_M2ePro_Model_Order */ + + if ($this->isOrderChangedInParallelProcess($order)) { + continue; + } + if ($order->canCreateMagentoOrder()) { try { $order->createMagentoOrder(); @@ -149,6 +154,24 @@ private function createMagentoOrders($buyOrders) } } + /** + * This is going to protect from Magento Orders duplicates. + * (Is assuming that there may be a parallel process that has already created Magento Order) + * + * But this protection is not covering a cases when two parallel cron processes are isolated by mysql transactions + */ + private function isOrderChangedInParallelProcess(Ess_M2ePro_Model_Order $order) + { + /** @var Ess_M2ePro_Model_Order $dbOrder */ + $dbOrder = Mage::getModel('M2ePro/Order')->load($order->getId()); + + if ($dbOrder->getMagentoOrderId() != $order->getMagentoOrderId()) { + return true; + } + + return false; + } + //######################################## /** diff --git a/app/code/community/Ess/M2ePro/Model/Ebay/Listing/Product.php b/app/code/community/Ess/M2ePro/Model/Ebay/Listing/Product.php index f6bda7731..8a5e850af 100644 --- a/app/code/community/Ess/M2ePro/Model/Ebay/Listing/Product.php +++ b/app/code/community/Ess/M2ePro/Model/Ebay/Listing/Product.php @@ -104,6 +104,10 @@ public function deleteInstance() //######################################## + public function afterSaveNewEntity() {} + + //######################################## + /** * @return Ess_M2ePro_Model_Ebay_Item */ diff --git a/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Defaults/UpdateListingsProducts.php b/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Defaults/UpdateListingsProducts.php index 3134d3ab8..488c97b28 100644 --- a/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Defaults/UpdateListingsProducts.php +++ b/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Defaults/UpdateListingsProducts.php @@ -381,6 +381,7 @@ private function getProductStatusChanges(Ess_M2ePro_Model_Listing_Product $listi if (($change['listingStatus'] == self::EBAY_STATUS_COMPLETED || $change['listingStatus'] == self::EBAY_STATUS_ENDED) && + $listingProduct->getStatus() != Ess_M2ePro_Model_Listing_Product::STATUS_HIDDEN && $qty == $qtySold) { $data['status'] = Ess_M2ePro_Model_Listing_Product::STATUS_SOLD; diff --git a/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Orders/Receive.php b/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Orders/Receive.php index ddf33e258..aca09b672 100644 --- a/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Orders/Receive.php +++ b/app/code/community/Ess/M2ePro/Model/Ebay/Synchronization/Orders/Receive.php @@ -150,9 +150,17 @@ private function processEbayOrders($account) return array(); } + $accountCreateDate = new DateTime($account->getData('create_date'), new DateTimeZone('UTC')); + $orders = array(); foreach ($response['items'] as $ebayOrderData) { + + $orderCreateDate = new DateTime($ebayOrderData['purchase_create_date'], new DateTimeZone('UTC')); + if ($orderCreateDate < $accountCreateDate) { + continue; + } + /** @var $ebayOrder Ess_M2ePro_Model_Ebay_Order_Builder */ $ebayOrder = Mage::getModel('M2ePro/Ebay_Order_Builder'); $ebayOrder->initialize($account, $ebayOrderData); @@ -203,6 +211,10 @@ private function createMagentoOrders($ebayOrders, $percentsForOneOrder) foreach ($ebayOrders as $order) { /** @var $order Ess_M2ePro_Model_Order */ + if ($this->isOrderChangedInParallelProcess($order)) { + continue; + } + if ($order->canCreateMagentoOrder()) { try { $order->createMagentoOrder(); @@ -240,6 +252,24 @@ private function createMagentoOrders($ebayOrders, $percentsForOneOrder) } } + /** + * This is going to protect from Magento Orders duplicates. + * (Is assuming that there may be a parallel process that has already created Magento Order) + * + * But this protection is not covering a cases when two parallel cron processes are isolated by mysql transactions + */ + private function isOrderChangedInParallelProcess(Ess_M2ePro_Model_Order $order) + { + /** @var Ess_M2ePro_Model_Order $dbOrder */ + $dbOrder = Mage::getModel('M2ePro/Order')->load($order->getId()); + + if ($dbOrder->getMagentoOrderId() != $order->getMagentoOrderId()) { + return true; + } + + return false; + } + //######################################## private function prepareFromTime(Ess_M2ePro_Model_Account $account) diff --git a/app/code/community/Ess/M2ePro/Model/Listing.php b/app/code/community/Ess/M2ePro/Model/Listing.php index a6fcd2007..a66be1b27 100644 --- a/app/code/community/Ess/M2ePro/Model/Listing.php +++ b/app/code/community/Ess/M2ePro/Model/Listing.php @@ -426,6 +426,8 @@ public function addProduct($product, $checkingMode = false, $checkHasProduct = t Mage::helper('M2ePro/Component')->getComponentModel($this->getComponentMode(),'Listing_Product') ->setData($data)->save(); + $listingProductTemp->getChildObject()->afterSaveNewEntity(); + $variationUpdaterModel = ucwords($this->getComponentMode()).'_Listing_Product_Variation_Updater'; /** @var Ess_M2ePro_Model_Listing_Product_Variation_Updater $variationUpdaterObject */ $variationUpdaterObject = Mage::getModel('M2ePro/'.$variationUpdaterModel); diff --git a/app/code/community/Ess/M2ePro/Model/Magento/Product.php b/app/code/community/Ess/M2ePro/Model/Magento/Product.php index 86323c421..4e2177f7b 100644 --- a/app/code/community/Ess/M2ePro/Model/Magento/Product.php +++ b/app/code/community/Ess/M2ePro/Model/Magento/Product.php @@ -490,15 +490,14 @@ public function isSimpleTypeWithCustomOptions() return false; } - $hasOptions = false; foreach ($this->getProduct()->getOptions() as $option) { - if ((int)$option->getData('is_require')) { - $hasOptions = true; - break; + if ((int)$option->getData('is_require') && + in_array($option->getData('type'), array('drop_down', 'radio', 'multiple', 'checkbox'))) { + return true; } } - return $hasOptions; + return false; } /** diff --git a/app/code/community/Ess/M2ePro/Model/Magento/Product/Variation.php b/app/code/community/Ess/M2ePro/Model/Magento/Product/Variation.php index d06761d29..9c814fab1 100644 --- a/app/code/community/Ess/M2ePro/Model/Magento/Product/Variation.php +++ b/app/code/community/Ess/M2ePro/Model/Magento/Product/Variation.php @@ -571,6 +571,10 @@ protected function getSimpleVariationsTypeRaw() continue; } + if (!in_array($option->getType(), $this->getCustomOptionsAllowedTypes())) { + continue; + } + $customOption = array( 'option_id' => $option->getData('option_id'), 'values' => array(), diff --git a/app/code/community/Ess/M2ePro/Model/Mysql4/Ebay/Order.php b/app/code/community/Ess/M2ePro/Model/Mysql4/Ebay/Order.php index 058c41fd1..294f661f5 100644 --- a/app/code/community/Ess/M2ePro/Model/Mysql4/Ebay/Order.php +++ b/app/code/community/Ess/M2ePro/Model/Mysql4/Ebay/Order.php @@ -75,8 +75,8 @@ public function getCancellationCandidatesChannelIds($accountId, DateTime $startD )); $collection->addFieldToFilter('purchase_create_date', array( - 'from' => $startDate->format('Y-m-d 00:00:00'), - 'to' => $endDate->format('Y-m-d 23:59:59') + 'from' => $startDate->format('Y-m-d H:i:s'), + 'to' => $endDate->format('Y-m-d H:i:s') )); $collection->setOrder('id', Varien_Data_Collection::SORT_ORDER_ASC); diff --git a/app/code/community/Ess/M2ePro/Model/Observer/Amazon/Order.php b/app/code/community/Ess/M2ePro/Model/Observer/Amazon/Order.php index 801b49cff..bda5a15ad 100644 --- a/app/code/community/Ess/M2ePro/Model/Observer/Amazon/Order.php +++ b/app/code/community/Ess/M2ePro/Model/Observer/Amazon/Order.php @@ -31,7 +31,10 @@ public function process() continue; } - $stockItem->addQty($orderItem->getQtyOrdered())->save(); + /** @var $magentoStockItem Ess_M2ePro_Model_Magento_Product_StockItem */ + $magentoStockItem = Mage::getSingleton('M2ePro/Magento_Product_StockItem'); + $magentoStockItem->setStockItem($stockItem); + $magentoStockItem->addQty($orderItem->getQtyOrdered()); } } diff --git a/app/code/community/Ess/M2ePro/Model/Observer/Order.php b/app/code/community/Ess/M2ePro/Model/Observer/Order.php index a28a8e6f9..4ae573ecd 100644 --- a/app/code/community/Ess/M2ePro/Model/Observer/Order.php +++ b/app/code/community/Ess/M2ePro/Model/Observer/Order.php @@ -28,8 +28,6 @@ public function process() $order->setData('magento_order_id', $magentoOrder->getId()); $order->save(); - - $order->afterCreateMagentoOrder(); } //######################################## diff --git a/app/code/community/Ess/M2ePro/Model/Order.php b/app/code/community/Ess/M2ePro/Model/Order.php index b9df62a35..bdbb6e837 100644 --- a/app/code/community/Ess/M2ePro/Model/Order.php +++ b/app/code/community/Ess/M2ePro/Model/Order.php @@ -557,6 +557,8 @@ public function createMagentoOrder() $this->save(); } + $this->afterCreateMagentoOrder(); + unset($magentoQuoteBuilder); unset($magentoOrderBuilder); // --------------------------------------- diff --git a/app/code/community/Ess/M2ePro/Model/Order/Reserve.php b/app/code/community/Ess/M2ePro/Model/Order/Reserve.php index f3804b0cf..99153d906 100644 --- a/app/code/community/Ess/M2ePro/Model/Order/Reserve.php +++ b/app/code/community/Ess/M2ePro/Model/Order/Reserve.php @@ -212,7 +212,10 @@ private function performAction($action, $newState) $productsAffectedCount++; $transaction->addObject($magentoStockItem->getStockItem()); - $item->getProduct()->setStockItem($magentoStockItem->getStockItem()); + + if ($item->getMagentoProduct()->isSimpleType()) { + $item->getProduct()->setStockItem($magentoStockItem->getStockItem()); + } } $item->setReservedProducts($products); diff --git a/app/code/community/Ess/M2ePro/Model/Upgrade/MySqlSetup.php b/app/code/community/Ess/M2ePro/Model/Upgrade/MySqlSetup.php index 480559d67..23e807cbb 100644 --- a/app/code/community/Ess/M2ePro/Model/Upgrade/MySqlSetup.php +++ b/app/code/community/Ess/M2ePro/Model/Upgrade/MySqlSetup.php @@ -123,7 +123,13 @@ private function getModifier($tableName, $modelName) */ protected function _getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrFiles) { - if ($actionType != self::TYPE_DB_UPGRADE) { + // Magento ver. 1.5.1.0 doest not have the TYPE_DB_UPGRADE constant + $actionTypeUpgrade = 'upgrade'; + if (defined('self::TYPE_DB_UPGRADE')) { + $actionTypeUpgrade = self::TYPE_DB_UPGRADE; + } + + if ($actionType != $actionTypeUpgrade) { return parent::_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrFiles); } diff --git a/app/code/community/Ess/M2ePro/controllers/Adminhtml/Development/Tools/M2ePro/GeneralController.php b/app/code/community/Ess/M2ePro/controllers/Adminhtml/Development/Tools/M2ePro/GeneralController.php index b08202e4c..c2e7e45c5 100644 --- a/app/code/community/Ess/M2ePro/controllers/Adminhtml/Development/Tools/M2ePro/GeneralController.php +++ b/app/code/community/Ess/M2ePro/controllers/Adminhtml/Development/Tools/M2ePro/GeneralController.php @@ -354,7 +354,7 @@ public function repairListingProductStructureAction() $tempOption = Mage::getModel('M2ePro/Listing_Product_Variation_Option')->load($option->getId()); if (!is_null($tempOption->getId())) { - $option->deleteInstance() && $deletedOptions++; + $option->getResource()->deleteInstance() && $deletedOptions++; } continue; } @@ -362,14 +362,14 @@ public function repairListingProductStructureAction() try { $listingProduct = $variation->getListingProduct(); } catch (Ess_M2ePro_Model_Exception_Logic $e) { - $variation->deleteInstance() && $deletedVariations++; + $variation->getResource()->deleteInstance() && $deletedVariations++; continue; } try { $listing = $listingProduct->getListing(); } catch (Ess_M2ePro_Model_Exception_Logic $e) { - $listingProduct->deleteInstance() && $deletedProducts++; + $listingProduct->getResource()->deleteInstance() && $deletedProducts++; continue; } } diff --git a/app/code/community/Ess/M2ePro/etc/config.xml b/app/code/community/Ess/M2ePro/etc/config.xml index 8995173dd..cdc5c8584 100644 --- a/app/code/community/Ess/M2ePro/etc/config.xml +++ b/app/code/community/Ess/M2ePro/etc/config.xml @@ -2,7 +2,7 @@ - 6.4.8 + 6.4.9 diff --git a/app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.7.1.php b/app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.7.1.php deleted file mode 100644 index 7cd5aad49..000000000 --- a/app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.7.1.php +++ /dev/null @@ -1,3491 +0,0 @@ -startSetup(); - -//######################################## - -// GENERAL SCRIPT - -$tempMagentoConnectUrl = 'https://www.magentocommerce.com/magento-connect/'; -$tempMagentoConnectUrl .= 'ebay-amazon-rakuten-magento-integration-order-import-and-stock-level-synchronization.html'; - -$servicingInterval = rand(43200, 86400); - -$installer->run(<<run(<<generateRandomHash()}', 'Unique identifier of M2E instance', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/modules/', 'M2ePro', '0.0.0.r0', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/server/', 'baseurl_1', 'https://s1.m2epro.com/', 'Support server base url', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'); - -INSERT INTO `m2epro_config` (`group`,`key`,`value`,`notice`,`update_date`,`create_date`) VALUES - ('/cron/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/', 'runner', 'magento', NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/', 'last_access', NULL, 'Time of last cron synchronization', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/', 'last_runner_change', NULL, 'Time of last change cron runner', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/', 'last_executed_slow_task', NULL, '', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/service/', 'auth_key', NULL, NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/service/', 'disabled', '0', NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/magento/', 'disabled', '0', NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/service/', 'hostname', 'cron.m2epro.com', NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/logs_clearing/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/logs_clearing/', 'interval', '86400', 'in seconds', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/logs_clearing/', 'last_access', NULL, 'date of last access', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/logs_clearing/', 'last_run', NULL, 'date of last run', '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/repricing_update_settings/', 'interval', '3600', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/repricing_update_settings/', 'last_access', NULL, 'date of last access', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/repricing_update_settings/', 'last_run', NULL, 'date of last run', - '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/repricing_synchronization_actual_price/', 'mode', '1', '0 - disable, \r\n1 - enable', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/repricing_synchronization_actual_price/', 'interval', '3600', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/repricing_synchronization_actual_price/', 'last_access', NULL, 'date of last access', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/repricing_synchronization_actual_price/', 'last_run', NULL, 'date of last run', - '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/repricing_synchronization_general/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/repricing_synchronization_general/', 'interval', '86400', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/repricing_synchronization_general/', 'last_access', NULL, 'date of last access', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/repricing_synchronization_general/', 'last_run', NULL, 'date of last run', - '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/repricing_inspect_products/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/repricing_inspect_products/', 'interval', '3600', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/repricing_inspect_products/', 'last_access', NULL, 'date of last access', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/repricing_inspect_products/', 'last_run', NULL, 'date of last run', - '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/synchronization/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/synchronization/', 'interval', '300', 'in seconds', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/synchronization/', 'last_access', NULL, 'date of last access', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/cron/task/synchronization/', 'last_run', NULL, 'date of last run', '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/cron/task/servicing/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/servicing/', 'interval', '{$servicingInterval}', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/servicing/', 'last_access', NULL, 'date of last access', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/cron/task/servicing/', 'last_run', NULL, 'date of last run', '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/logs/clearing/listings/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/logs/clearing/listings/', 'days', '30', 'in days', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/logs/clearing/other_listings/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/logs/clearing/other_listings/', 'days', '30', 'in days', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/logs/clearing/synchronizations/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/logs/clearing/synchronizations/', 'days', '30', 'in days', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/logs/clearing/orders/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/logs/clearing/orders/', 'days', '90', 'in days', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/logs/listings/', 'last_action_id', '0', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/logs/other_listings/', 'last_action_id', '0', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/support/', 'knowledge_base_url', 'http://support.m2epro.com/knowledgebase', NULL, '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/support/', 'documentation_url', 'http://docs.m2epro.com', NULL, '2015-07-03 00:00:00', - '2015-07-03 00:00:00'), - ('/support/', 'clients_portal_url', 'https://clients.m2epro.com/', NULL, '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/support/', 'main_website_url', 'http://m2epro.com/', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/support/', 'main_support_url', 'http://support.m2epro.com/', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/support/', 'magento_connect_url', '{$tempMagentoConnectUrl}', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/support/', 'contact_email', 'support@m2epro.com', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/support/uservoice/', 'api_url', 'http://magento2ebay.uservoice.com/api/v1/', NULL, '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/support/uservoice/', 'api_client_key', 'WEsfO8nFh3FXffUU1Oa7A', NULL, '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/view/', 'show_block_notices', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/', 'show_products_thumbnails', '1', 'Visibility thumbnails into grid', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/view/requirements/popup/', 'closed', '0', '0 - false, - true', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/synchronization/revise_total/', 'show', '0', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/view/common/component/', 'default', 'amazon', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/common/autocomplete/', 'max_records_quantity', '100', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/', 'mode', 'simple', 'simple, advanced', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/notice/', 'disable_collapse', '0', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/view/ebay/template/selling_format/', 'show_tax_category', '0', '0 - disable, \r\n1 - enable', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/feedbacks/notification/', 'mode', '0', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/view/ebay/feedbacks/notification/', 'last_check', NULL, 'Date last check new buyers feedbacks', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/advanced/autoaction_popup/', 'shown', '0', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/motors_epids_attribute/', 'listing_notification_shown', '0', NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/multi_currency_marketplace_2/', 'notification_shown', '0', NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/multi_currency_marketplace_19/', 'notification_shown', '0', NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/view/ebay/terapeak/', 'mode', '1', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/debug/exceptions/', 'send_to_server', '1', '0 - disable,\r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/debug/exceptions/', 'filters_mode', '0', '0 - disable,\r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/debug/fatal_error/', 'send_to_server', '1', '0 - disable,\r\n1 - enable', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/debug/logging/', 'send_to_server', 1, '0 - disable,\r\n1 - enable', '2015-08-12 00:00:00', '2015-08-12 00:00:00'), - ('/debug/maintenance/', 'mode', '0', '0 - disable,\r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/debug/maintenance/', 'restore_date', NULL, NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/renderer/description/', 'convert_linebreaks', '1', '0 - No\r\n1 - Yes', '2013-05-08 00:00:00', - '2013-05-08 00:00:00'), - ('/other/paypal/', 'url', 'paypal.com/cgi-bin/webscr/', 'PayPal url', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/product/index/', 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/product/force_qty/', 'mode', '0', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/product/force_qty/', 'value', '10', 'min qty value', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/qty/percentage/', 'rounding_greater', '0', NULL, '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/order/magento/settings/', 'create_with_first_product_options_when_variation_unavailable', '1', - '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'); - -INSERT INTO `m2epro_synchronization_config` (`group`,`key`,`value`,`notice`,`update_date`,`create_date`) VALUES - (NULL, 'mode', '1', '0 - disable, \r\n1 - enable', '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - (NULL, 'last_access', NULL, NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - (NULL, 'last_run', NULL, NULL, '2014-01-01 00:00:00', '2014-01-01 00:00:00'), - ('/settings/product_change/', 'max_count_per_one_time', '500', NULL, - '2012-05-21 10:47:49', '2012-05-21 10:47:49'), - ('/settings/product_change/', 'max_lifetime', '86400', 'in seconds', - '2012-05-21 10:47:49', '2012-05-21 10:47:49'), - ('/settings/product_change/', 'max_count', '10000', NULL, - '2012-05-21 10:47:49', '2012-05-21 10:47:49'), - ('/defaults/', 'mode', '1', '0 - disable, \r\n1 - enable', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/processing/', 'mode', '1', '0 - disable, \r\n1 - enable', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/deleted_products/', 'mode', '1', '0 - disable, \r\n1 - enable', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/deleted_products/', 'interval', '3600', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/deleted_products/', 'last_time', NULL, 'Last check time', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/added_products/', 'last_magento_product_id', NULL, NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/stop_queue/', 'mode', '1', '0 - disable, \r\n1 - enable', - '2012-05-21 10:47:49', '2012-05-21 10:47:49'), - ('/defaults/stop_queue/', 'interval', '3600', 'in seconds', - '2012-05-21 10:47:49', '2012-05-21 10:47:49'), - ('/defaults/stop_queue/', 'last_time', NULL, 'Last check time', - '2012-05-21 10:47:49', '2012-05-21 10:47:49'), - ('/defaults/inspector/', 'mode', '0', '0 - disable, \r\n1 - enable', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/', 'type', 'circle', 'circle', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/circle/', 'last_listing_product_id', NULL, NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/circle/', 'min_interval_between_circles', '3600', 'in seconds', - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/circle/', 'max_count_times_for_full_circle', '50', NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/circle/', 'min_count_items_per_one_time', '100', NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/circle/', 'max_count_items_per_one_time', '500', NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'), - ('/defaults/inspector/product_changes/circle/', 'last_time_start_circle', NULL, NULL, - '2013-05-08 00:00:00', '2013-05-08 00:00:00'); - -INSERT INTO `m2epro_wizard` VALUES - (1, 'migrationToV6', '*', 3, NULL, 1, 1), - (2, 'installationEbay', 'ebay', 0, NULL, 1, 2), - (3, 'installationCommon', 'common', 0, NULL, 1, 2), - (4, 'amazon', 'common', 0, NULL, 0, 3), - (5, 'buy', 'common', 0, NULL, 0, 4), - (6, 'migrationNewAmazon', 'common', 3, NULL, 1, 5), - (7, 'removedPlay', 'common', 3, NULL, 0, 6), - (8, 'ebayProductDetails', 'ebay', 3, NULL, 1, 7), - (9, 'fullAmazonCategories', 'common', 3, NULL, 1, 8), - (10, 'amazonShippingOverridePolicy', 'common', 3, NULL, 1, 9); - -SQL -); - -//######################################## - -// EBAY SCRIPT -$installer->run(<<run(<<run(<<run(<<run(<<run(<<endSetup(); - -//######################################## \ No newline at end of file diff --git a/app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.8.php b/app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.9.php similarity index 100% rename from app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.8.php rename to app/code/community/Ess/M2ePro/sql/M2ePro_setup/mysql4-install-6.4.9.php diff --git a/app/design/adminhtml/default/default/template/M2ePro/renderer/description/gallery.phtml b/app/design/adminhtml/default/default/template/M2ePro/renderer/description/gallery.phtml index 94610b881..c8307659a 100644 --- a/app/design/adminhtml/default/default/template/M2ePro/renderer/description/gallery.phtml +++ b/app/design/adminhtml/default/default/template/M2ePro/renderer/description/gallery.phtml @@ -1,79 +1,142 @@ -getData(); ?> - - - - - - - - -
-
+ + + \ No newline at end of file diff --git a/app/design/adminhtml/default/default/template/M2ePro/renderer/description/image.phtml b/app/design/adminhtml/default/default/template/M2ePro/renderer/description/image.phtml index 9e70a40f8..7477ab9b0 100644 --- a/app/design/adminhtml/default/default/template/M2ePro/renderer/description/image.phtml +++ b/app/design/adminhtml/default/default/template/M2ePro/renderer/description/image.phtml @@ -1,11 +1,28 @@ -getData(); ?> +getData(); +?> - + + +isLinkMode()) { ?> style="cursor: pointer;"> - style="" /> + + id="m2e-description-image-getImageId(); ?>" +/> - +isLinkMode()) { ?> \ No newline at end of file diff --git a/composer.json b/composer.json index ec4c8ea75..2a1ac5ba0 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "m2epro/magento1-extension", "description": "M2E Pro is a Magento trusted (TM), award-winning extension, which allows merchants of all sizes to fully integrate Magento based system(s) into eBay/Amazon/Rakuten.com platforms.", "type": "magento-module", - "version": "6.4.8", + "version": "6.4.9", "license": "Refer to Terms and Conditions on m2epro.com", "keywords": ["ebay", "amazon", "rakuten", "magento"], "homepage": "http://www.m2epro.com/", diff --git a/js/M2ePro/Ebay/MotorsHandler.js b/js/M2ePro/Ebay/MotorsHandler.js index 9045ca134..c99f44043 100644 --- a/js/M2ePro/Ebay/MotorsHandler.js +++ b/js/M2ePro/Ebay/MotorsHandler.js @@ -634,7 +634,7 @@ EbayMotorsHandler.prototype = Object.extend(new CommonHandler(), { postmethod: 'post', parameters: { listing_id: self.listingId, - listing_products_ids: self.addPopUp.listingProductsIds, + 'listing_products_ids[]': self.addPopUp.listingProductsIds, motors_type: self.motorsType, overwrite: override, items: Object.toQueryString(items),