Php Magento:基本导入中出现致命错误
我正在使用系统>导入/导出>导入下的magento默认产品导入功能 当我上传文件并单击CheckData按钮时,页面调用ajax并返回一个错误Php Magento:基本导入中出现致命错误,php,magento,Php,Magento,我正在使用系统>导入/导出>导入下的magento默认产品导入功能 当我上传文件并单击CheckData按钮时,页面调用ajax并返回一个错误 Fatal error: Call to a member function getName() on a non-object in /var/www/html/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php on line 390 我在核心文件中没有任何定制 我所做的:
Fatal error: Call to a member function getName() on a non-object in /var/www/html/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php on line 390
我在核心文件中没有任何定制
我所做的:
1) 我已经用一个新的模块替换了整个ImportExport模块
2) 我还发现了一些类似的问题,并且按照他们的解决方案所说的那样做,可能存在索引问题,所以我截断了所有的平面表,并重新索引了所有的平面表
谢谢根据1.7.1版,您有此错误
\u initCategories
功能
protected function _initCategories()
{
$collection = Mage::getResourceModel('catalog/category_collection')->addNameToResult();
/* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
foreach ($collection as $category) {
$structure = explode('/', $category->getPath());
$pathSize = count($structure);
if ($pathSize > 1) {
$path = array();
for ($i = 1; $i < $pathSize; $i++) {
$path[] = $collection->getItemById($structure[$i])->getName();
}
$rootCategoryName = array_shift($path);
if (!isset($this->_categoriesWithRoots[$rootCategoryName])) {
$this->_categoriesWithRoots[$rootCategoryName] = array();
}
$index = implode('/', $path);
$this->_categoriesWithRoots[$rootCategoryName][$index] = $category->getId();
if ($pathSize > 2) {
$this->_categories[$index] = $category->getId();
}
}
}
return $this;
}
protectedfunction\u initCategories()
{
$collection=Mage::getResourceModel('catalog/category_collection')->addNameToResult();
/*@var$collection Mage\u Catalog\u Model\u Resource\u Eav\u Mysql4\u Category\u collection*/
foreach($collection作为$category){
$structure=explode('/',$category->getPath());
$pathSize=count($structure);
如果($pathSize>1){
$path=array();
对于($i=1;$i<$pathSize;$i++){
$path[]=$collection->getItemById($structure[$i])->getName();
}
$rootCategoryName=array\u shift($path);
如果(!isset($this->_categoriesWithRoots[$rootCategoryName])){
$this->_categoriesWithRoots[$rootCategoryName]=array();
}
$index=内爆(“/”,$path);
$this->_categorieswithroot[$rootCategoryName][$index]=$category->getId();
如果($pathSize>2){
$this->_categories[$index]=$category->getId();
}
}
}
退还$this;
}
您应该在$structure[$i]
处有一个有效的实体Id。即在目录\类别\实体
表中,应该有一个有效的实体id
我在1.6.2版中看到了类似的问题。根据1.7.1版,您有此错误
\u initCategories
函数
protected function _initCategories()
{
$collection = Mage::getResourceModel('catalog/category_collection')->addNameToResult();
/* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
foreach ($collection as $category) {
$structure = explode('/', $category->getPath());
$pathSize = count($structure);
if ($pathSize > 1) {
$path = array();
for ($i = 1; $i < $pathSize; $i++) {
$path[] = $collection->getItemById($structure[$i])->getName();
}
$rootCategoryName = array_shift($path);
if (!isset($this->_categoriesWithRoots[$rootCategoryName])) {
$this->_categoriesWithRoots[$rootCategoryName] = array();
}
$index = implode('/', $path);
$this->_categoriesWithRoots[$rootCategoryName][$index] = $category->getId();
if ($pathSize > 2) {
$this->_categories[$index] = $category->getId();
}
}
}
return $this;
}
protectedfunction\u initCategories()
{
$collection=Mage::getResourceModel('catalog/category_collection')->addNameToResult();
/*@var$collection Mage\u Catalog\u Model\u Resource\u Eav\u Mysql4\u Category\u collection*/
foreach($collection作为$category){
$structure=explode('/',$category->getPath());
$pathSize=count($structure);
如果($pathSize>1){
$path=array();
对于($i=1;$i<$pathSize;$i++){
$path[]=$collection->getItemById($structure[$i])->getName();
}
$rootCategoryName=array\u shift($path);
如果(!isset($this->_categoriesWithRoots[$rootCategoryName])){
$this->_categoriesWithRoots[$rootCategoryName]=array();
}
$index=内爆(“/”,$path);
$this->_categorieswithroot[$rootCategoryName][$index]=$category->getId();
如果($pathSize>2){
$this->_categories[$index]=$category->getId();
}
}
}
退还$this;
}
您应该在$structure[$i]
处有一个有效的实体Id。即在目录\类别\实体
表中,应该有一个有效的实体id
我在1.6.2版本中也看到了类似的问题。我知道现在已经太迟了,但对于那些来到这里寻求解决方案的人来说。以下是备选方案:- 在受函数保护的函数_initCategories()中,请找到以下代码:-
$path[] = $collection->getItemById($structure[$i])->getName();
只需对其进行注释并将以下代码放在此处:-
$category123 = Mage::getModel('catalog/category')->load($structure[$i]);
$path[] = $category123->getName();
这对你会有用的。我知道现在已经太晚了,但对于那些来到这里寻求解决方案的人来说。以下是备选方案:- 在受函数保护的函数_initCategories()中,请找到以下代码:-
$path[] = $collection->getItemById($structure[$i])->getName();
只需对其进行注释并将以下代码放在此处:-
$category123 = Mage::getModel('catalog/category')->load($structure[$i]);
$path[] = $category123->getName();
它对您有效。您有有效的产品类别吗?@Renku是的,我有有效的类别。。您有有效的产品类别吗?@Renku是的,我有有效的类别。。我正在使用已创建的类别。。。这意味着它具有有效的实体id idreindex您的数据库,并查看是否有表
目录\u类别\u平面\u存储
。然后尝试导入。感谢Renku为我指出了正确的方向,$structure[$i]索引包含类别id,但对于某些索引,我是空白的,我已添加了一个条件,现在可以了,但无法理解为什么某些索引没有类别id:-(我正在使用已创建的类别…这意味着它具有有效的实体id idreindex您的db,并查看是否有表目录\u类别\u平面\u存储区。然后尝试导入。感谢Renku为我指出了正确的方向,实际上是$structure[$I]索引包含类别id,但对于某些索引,我是空白的,我添加了一个条件,现在可以了,但不知道为什么某些索引没有类别id..:-(