ฉันได้รับชุดผลิตภัณฑ์บางประเภทในหน้าหนึ่งในเว็บไซต์ 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;ปัญหาของฉันคือว่าหนึ่งในเว็บไซต์ Magento ที่เรากำลังเรียกใช้ProductUrl()นั้นเป็น 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 ที่ฉันต้องการให้ฉัน แต่getProductUrl()จะไม่ให้ URL ที่ฉันต้องการด้วยรหัสเดียวกันในมุมมองหมวดหมู่