いくつかの異なるMagentoサイトのページで特定のカテゴリの製品コレクションを取得しています。コレクションを取得するための私のコードは次のとおりです。
        $category = new Mage_Catalog_Model_Category();
        $category->load($id);
        $collection = $category->getProductCollection();
        $collection->addAttributeToSelect('*');
        $collection->addAttributeToFilter('status', 1);
        $collection->addFieldToFilter(array(array('attribute'=>'visibility', 'neq'=>"1" )));
        $collection->getSelect()->limit(12);
        foreach ($collection as $shopProduct) :
            echo $shopProduct->getProductUrl();
        endforeach;私の問題は、私たちが実行してProductUrl()いるMagentoサイトの1つで、取得されるURLがのようなURLでhttp://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/あり、それ以上ではないということですhttp://www.site.com/shopcat/product-url-key.html。しかし、他のすべてのサイトでは、希望どおりに表示されています。
なぜこれが起こるのか誰にも分かりますか?ありがとう!私getUrlPath()も使用してみましたが、これは何も返しませんでした。私は次のようなことをすることでこれを回避できることを知っていますが<?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>、その方法は少し非効率的です!
編集21/03/14:私はまだこの問題を抱えています。getProductUrl()サイトの一部のテンプレートファイルで必要なURLを取得しますが、他のURLではありません。たとえば、ホームページにコレクションを1つ読み込んでいると、必要なURLが提供されます。しかしgetProductUrl()、カテゴリビューで同じコードを使用して必要なURLを提供していません。