2015-06-12 4 views
1

Я помогаю моему другу переместить свой магазин Magento на новый сервер, и теперь у меня возникают некоторые проблемы.Magento Неустранимая ошибка: вызов функции-члена setData()

Не уверен, что это имеет значение, но для небольшого фона я разместил хранилище Magento внутри подкаталога их нового сайта WordPress. Я не думаю, что это проблема, но я подумал, что я просто выброшу это на всякий случай.

Проблема, которую я имею, что при попытке добавить товар в корзину Я получаю следующее сообщение об ошибке:

Fatal error: Call to a member function setData() on a non-object in ...app/code/core/Mage/Sales/Model/Quote/Item.php on line 612

Вот метод который вызывается, когда происходит ошибка:

public function addOption($option) 
{ 
    if (is_array($option)) { 
     $option = Mage::getModel('sales/quote_item_option')->setData($option) 
      ->setItem($this); 
    } 
    elseif (($option instanceof Varien_Object) && !($option instanceof Mage_Sales_Model_Quote_Item_Option)) { 
     $option = Mage::getModel('sales/quote_item_option')->setData($option->getData()) 
      ->setProduct($option->getProduct()) 
      ->setItem($this); 
    } 
    elseif($option instanceof Mage_Sales_Model_Quote_Item_Option) { 
     $option->setItem($this); 
    } 
    else { 
     Mage::throwException(Mage::helper('sales')->__('Invalid item option format.')); 
    } 

    if ($exOption = $this->getOptionByCode($option->getCode())) { 
     $exOption->addData($option->getData()); 
    } 
    else { 
     $this->_addOptionCode($option); 
     $this->_options[] = $option; 
    } 
    return $this; 
} 

Еще одна странная вещь, я изначально настроил весь сайт на своем локальном компьютере и, добавляя товар в корзину на локальной настройке, Magento сообщает мне, чтобы включить файлы cookie, которые уже включены.

На данный момент я понятия не имею, в чем проблема. Я не написал строку кода на этом сайте и не модифицировал ее.

Может ли быть параметр, который может быть изменен в одном из файлов xml, возможно?

Домен сайта не изменился, только сервер, и вместо того, чтобы находиться в корневом каталоге, магазин Magento теперь находится в подкаталоге /shop.

Я изменил базовый url, чтобы отразить это, конечно.

Любая помощь будет очень оценена. Думал, что это будет очень просто, поскольку я переношу сайт на новый сервер.

+0

Эта ошибка означает, что Mage :: getModel ('sales/quote_item_option') не возвращает объект, и поэтому вы не можете вызвать его метод setData. Я бы посмотрел, что делает класс Маг – Gabs

ответ

0

При перемещении Magento на другой сервер, вы должны проверить, что новый сервер acomplish со всеми требованиями:

  • PHP
  • PHP-MySQL
  • PHP-Mcrypt
  • PHP-хэш
  • PHP-XML (будут необходимы для Magento 1.4.xx)
  • PHP-GD
  • PHP-PDO
  • PHP-Mhash
  • PHP-мыло

    ням установить PHP PHP-MySQL PHP-Mcrypt PHP-XML PHP-Г.Д. PHP-PDO PHP-Mhash PHP-мыло

вы можете проверить, все ли в порядке с <?php phpinfo(); ?>

Кроме того, вы можете попробовать запустить установку еще раз (вы не потеряете данные) только удаление/переименование файла /app/etc/local.xml. Программа установки обнаружит, что что-то не так с требованиями

Смежные вопросы