最近、テストサーバーのmagentoを1.4.1.1から1.7.0.2にアップグレードしました
以前は、すべての製品は仮想製品であり、実際の配送はありませんでした。
シェルを介してmagentoをアップグレードしましたが、この問題を除いてスムーズに進みました:
古い製品は(フロントエンドまたはバックエンドのいずれかで)表示されませんが、新しい製品を追加するとクロスセル/関連製品で表示されます(すべての製品はここでのみ表示されます)
URL index.php/admin/catalog_product/edit/id/[id] にアクセスして、任意の製品を編集できます。
製品を保存/編集した後でも、管理者/フロントエンドに表示されません。
カテゴリ数は正常に機能しています。
新しい製品を追加したところ、問題なく動作しています。(継続IDあり)
var フォルダーとその内容の完全なクリアを試み、ファイルのアクセス許可をリセットし、データベース ログ テーブルを空にして、私が知っていることをすべて実行しましたが、何も役に立ちません。
失うわけにはいかない約4500の製品があります。を正しく表示するのを手伝ってください。
いくつかの改善:
このデータベースを新しく作成したデータベースと比較したところ、テーブルcatalog_product_entity_int
に属性に関連するエントリがないことがわかりましたvisibility
。ストアIDを管理者に設定してテーブルに手動で追加すると、問題が修正されました。しかし、すべての製品の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 では、上記の 2 つの属性を属性セットから削除できますが、Magento 1.7.0.2 では削除できません。