在这里使用magento 1.7.0.2,已经测试了很多推荐的解决方案(重建索引,清除缓存,确保没有重写URL等)我放弃并提出问题。
我们将一堆产品(大约150个)导入到演示商店,以及2个新类别和许多新属性(大约200个)。经过一些问题后,我们终于设法在后端和前端显示产品,很棒。
但是当点击任何新导入的产品时,我们会从Magento获得404错误页面,其中包含“哎呀,我们不好......”。经过2天的搜索和尝试不同的方法仍然没有找到解决方案。重新索引,清除缓存,检查url重写选项,在core_config_data表上更改'127.0.0.1'的'localhost',以及其他适用于其他人的解决方案,对我们没用。
有任何线索吗?
除了找到的解决方案,我们检查了产品是否已启用,目录和搜索都设置了可见性,指定了一个网站,数量大于零。我们还手动创建了一个包含所有正确属性值的产品,并且其描述页面可见。比较(使用后端和数据库表/字段)与导入的产品,似乎完全相同。
答案 0 :(得分:0)
我自言自语。感谢@sulman指出正确的方向。
是的,所有产品的可见性都可以正常,并且目录和搜索都已正确解决。但问题是,在我们的导入脚本中,我们没有检查是否存在并将属性正确分配给导入的产品。因此,该属性已存在,但未链接到已存在的可见性属性。
此处需要示例代码,请参阅检查属性是否存在的开始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);
}