从1.4.1.1迁移到1.7.0.2后,Magento产品在前端和后端都没有显示

时间:2013-08-01 20:14:35

标签: php mysql magento magento-1.7 magento-1.4

最近我将测试服务器上的magento从1.4.1.1升级到1.7.0.2

以前所有产品都是虚拟产品,没有真正的货运。

我通过shell升级了magento,除了这个问题之外它很顺利:

旧产品无法显示(无论是在前端还是后端),但在添加新产品时,它们在交叉销售/相关产品中可见(所有产品仅在此处可见)

我可以通过访问网址来编辑任何产品index.php / admin / catalog_product / edit / id / [id]

即使在保存/编辑产品后,它仍无法在admin / frontend上显示。

类别计数工作正常。

当我添加新产品时,它运行正常。 (继续id)

尝试完全清除var文件夹及其内容,重置文件权限,清空数据库日志表并完成我所知道的所有内容,但没有任何用处。

大约有4500种产品我负担不起。请帮我正确显示。

一些改进:

将此数据库与新创建的数据库进行比较后,我发现表catalog_product_entity_int中没有与属性visibility相关的条目。手动将它们添加到商店ID设置为admin的表中修复了问题。但试图通过PHP代码为所有产品做到这一点。尝试以下代码但无效:

 <?php

 require_once("app/Mage.php");
 $store_id = '0';
 Mage::app()->setCurrentStore($store_id);

 $productModel = Mage::getModel('catalog/product');
 $products = $productModel->getCollection()->getAllIds();

 foreach($products as $productId)
 {
     $product = $productModel->load($productId);
     $product->setVisibility(4);
     $product->save();
     echo $productId.' Finished<br>';
 }

 ?>

但上面的代码不起作用。任何帮助????

出于某种原因,上面的代码没有用。所以我使用自定义代码将值直接插入数据库。

<?php
$con = mysql_connect($host, $user, $pass);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db($db, $con);


$sql=mysql_query("SELECT DISTINCT(entity_id) AS pid FROM magentocatalog_product_entity_int ORDER BY entity_id DESC;");
while($row = mysql_fetch_array($sql)) {
    if ($row['pid']<4152) { //Condition for Mangento 1.7.0.2 version products, below this pid, all are Magento 1.4.1.1. version products.
        $insquery=mysql_query("INSERT INTO `magentocatalog_product_entity_int` (`value_id`, `entity_type_id`, `attribute_id`, `store_id`, `entity_id`, `value`) VALUES ('', 4, 89, 0, ".$row['pid'].", 0);");//89 is attribute id and 4 is default value for showing in admin. Tested against newly created product which has these values.
        echo $row['pid']." Finished<br />";
    }
}


mysql_close($con);
?>

产品现在显示在管理员中,但不在商店中显示。因此修改了上面的代码以为每个商店添加值。问题是固定的。但还是要确定这是正确的做法吗?

注意:在我的Magento 1.4.1.1中,上述两个属性可以从Attibute集中删除,但不能在Magento 1.7.0.2中删除。

0 个答案:

没有答案