2012-07-24 100 views
0

这里使用了magento 1.7.0.2,已经测试了很多推荐的解决方案(重新编译,清除缓存,确保没有url重写完成等)我放弃了提问。产品描述页面未显示,错误404

我们正在将一堆产品(大约150个)与2个新类别以及大量新属性(大约200个)一起导入演示商店。在发生一些问题后,我们最终设法将产品显示在后端和前端,非常棒。

但是,当点击任何新导入的产品时,我们会从Magento的“错误,我们的坏...”中得到404错误页面。经过2天的搜索和尝试不同的方法仍然没有找到解决方案。重新编排,清除缓存,检查url重写选项,在core_config_data表中更改'127.0.0.1'的'localhost',以及其他可用于其他解决方案的解决方案,对我们来说没有用处。

任何线索?

除了找到的解决方案之外,我们检查了产品已启用,为目录和搜索设置了可见性,分配了一个网站并且数量大于零。我们还手动创建了具有所有正确属性值的产品,并且其描述页面可见。比较(使用后端和数据库表/字段)与导入的产品似乎完全相同。

+1

这将有助于准确地知道你已经尝试了什么。例如,您是否尝试了基本知识:将产品设置为有库存,将数量设置为> 0,将可见性设置为可见目录和搜索。将其设置为已启用。分配给网站等? – sulman 2012-07-24 10:54:31

+0

启用确定,可见性确定,确定,确定,分配给网站确定...将编辑问题以添加更多信息 – Yaroslav 2012-07-24 10:56:48

回答

0

我自问自答。感谢@sulman指出了正确的方向。

是的,所有产品的可见性都可以,对于Catalog和Search都正确解决。但问题是,在我们的导入脚本中,我们没有检查导入产品的属性的存在和正确分配。因此该属性存在,但未链接到已存在的可见性属性。

这里需要一个示例代码,请参阅开头if (isset($attributeId)),检查该属性是否存在。

if (isset($attributeId)) 
    { 
     $entityAttributeModel = Mage::getModel('catalog/product_attribute_api'); 
     $attributeList = $entityAttributeModel->items($attributeSetId); 
     $attributeLink = $this->search($attributeList, 'attribute_id', $attributeId); 

     if (sizeof($attributeLink) == 0) 
     { 
      $setup = new Mage_Eav_Model_Entity_Setup('core_setup');   
      $setup->addAttributeToGroup($this->getEntityTypeId(), $attributeSetId, $groupId, $attributeId); 
     }  

     $model = Mage::getModel('catalog/resource_eav_attribute'); 
     $attribute = $model->load($attributeId); 

    }