【发布时间】:2015-06-12 02:22:04
【问题描述】:
我正在帮助我的一个朋友将他们的 Magento 商店迁移到新服务器,但现在遇到了一些问题。
不确定这是否有任何区别,但为了了解一些背景知识,我已将 Magento 商店放在他们新的 WordPress 网站的子目录中。我不认为这是问题所在,但我想我会把它扔在这里以防万一。
我遇到的问题是,当您尝试将商品添加到购物车时,我收到以下错误:
致命错误: 在第 612 行的 ...app/code/core/Mage/Sales/Model/Quote/Item.php 中对非对象调用成员函数 setData()
这是发生错误时调用的方法:
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 的子目录中,而不是位于根目录中。
当然,我更改了基本网址以反映这一点。
任何帮助将不胜感激。认为这将非常简单,因为我只是将站点迁移到新服务器。
【问题讨论】:
-
这个错误意味着 Mage::getModel('sales/quote_item_option') 没有返回一个对象,因此你不能调用它的方法 setData。我会看看法师班是做什么的
标签: php wordpress magento migration