Published: October 20, 2016
Last updated:

Call to a member function setUrl() on a non-object after SUPEE-8788

Problem description

After SUPEE-8788 patch bundle or upgrade to 1.9.3.0 edit product page is broken in backend at Catalog > Manage products > Edit product. The following error logged in PHP error log:
Fatal error:  Call to a member function setUrl() on a non-object in app/code/local/MagicToolbox/Magic360/Block/Adminhtml/Settings/Edit/Tab/Form/Element/Gallery/Content.php on line 16

or
Fatal error:  Call to a member function setUrl() on a non-object in app/code/community/Unirgy/Giftcert/Block/Adminhtml/Import.php on line 45
Fatal error:  Call to a member function setUrl() on a non-object in app/code/local/Webtex/Giftcards/Block/Adminhtml/Catalog/Product/Tab/Pregenerated.php on line 64

Cause

getUploader()->getConfig() method is replaced with getUploader()->getUploaderConfig() in SUPEE-8788/1.9.3.0, as result some extensions that use it (Unirgy/Giftcert, MagicToolbox/MagicZoomPlus, MagicToolbox/Magic360 or Unirgy/Rapidflow) are now broken.

Solution

Replace getUploader()->getConfig() with getUploader()->getUploaderConfig() in extension code or request a fix from the extension developers.
fix for MagicToolbox/Magic360 extension
--- app/code/local/MagicToolbox/Magic360/Block/Adminhtml/Settings/Edit/Tab/Form/Element/Gallery/Content.php.pre-patch 
+++ app/code/local/MagicToolbox/Magic360/Block/Adminhtml/Settings/Edit/Tab/Form/Element/Gallery/Content.php
@@ -14,3 +14,3 @@
 
-        $this->getUploader()->getConfig()
+        $this->getUploader()->getUploaderConfig()
             ->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/magic360_gallery/upload'))
fix for Unirgy/Giftcert extension
--- app/code/community/Unirgy/Giftcert/Block/Adminhtml/Import.php
+++ app/code/community/Unirgy/Giftcert/Block/Adminhtml/Import.php
@@ -44,3 +44,3 @@
 
-        $this->getUploader()->getConfig()
+        $this->getUploader()->getUploaderConfig()
                 ->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/upload'))
fix for MagicToolbox/MagicZoomPlus extension
--- app/code/local/MagicToolbox/MagicZoomPlus/Block/Adminhtml/Settings/Edit/Tab/Form/Element/Gallery/Content.php
+++ app/code/local/MagicToolbox/MagicZoomPlus/Block/Adminhtml/Settings/Edit/Tab/Form/Element/Gallery/Content.php
@@ -14,3 +14,3 @@
 
-        $this->getUploader()->getConfig()
+        $this->getUploader()->getUploaderConfig()
             ->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/magiczoomplus_gallery/upload'))

fix for Magegaga Mg/EbayIntegration extension
--- app/code/local/Mg/EbayIntegration/Block/Listing/Catalog/Product/Helper/Form/Gallery/Content.php
+++ app/code/local/Mg/EbayIntegration/Block/Listing/Catalog/Product/Helper/Form/Gallery/Content.php
@@ -47,7 +47,7 @@
             $this->getLayout()->createBlock('vendorhtml/media_uploader')
         );
 
-        $this->getUploader()->getConfig()
+        $this->getUploader()->getUploaderConfig()
             ->setUrl(Mage::getModel('vendorhtml/url')->addSessionParam()->getUrl('*/catalog_product_gallery/upload'))
             ->setFileField('image')
             ->setFilters(array(

Posted in: Fatal errors

52 votes, 4.19 avg. rating (83% score)