0

最近、テストサーバーの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 では削除できません。

4

0 に答える 0