0

ここでmagento1.7.0.2を使用し、すでに多くの推奨ソリューション(インデックスの再作成、キャッシュのクリア、URLの書き換えが行われないことの保証など)をテストしたので、あきらめて質問します。

2つの新しいカテゴリと多くの新しい属性(約200)とともに、多数の製品(約150)をデモストアにインポートしています。いくつかの問題の後、私たちはようやくバックエンドとフロントエンドの両方で製品を表示することができました。

しかし、新しくインポートされた製品をクリックすると、Magentoから「おっと、私たちの悪い...」という404エラーページが表示されます。2日経っても、さまざまなアプローチを検索して試しても、解決策は見つかりませんでした。インデックスの再作成、キャッシュのクリア、URL書き換えオプションの確認、core_config_dataテーブルの「127.0.0.1」の「localhost」の変更、および他の人のために機能した他のいくつかのソリューションは、私たちには役に立ちません。

どんな手掛かり?

見つかったソリューション以外に、製品が有効になっていること、カタログと検索の両方に可視性が設定されていること、Webサイトが割り当てられていること、数量がゼロより大きいことを確認しました。また、すべての正しい属性値を使用して製品を手動で作成し、その説明ページが表示されます。(バックエンドとデータベースのテーブル/フィールドの両方を使用して)インポートされた製品と比較すると、すべてがまったく同じように見えます。

4

1 に答える 1

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);

    }
于 2012-07-24T11:19:12.317 に答える