php – Magento产品导出完整的规范网址

前端之家收集整理的这篇文章主要介绍了php – Magento产品导出完整的规范网址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法在命令行上获取带有当前规范URL的产品列表?
class Mage_Shell_UrlTest extends Mage_Shell_Abstract
{

public function run()
{
    $productCollection = Mage::getResourceModel('catalog/product_collection')
            ->addStoreFilter()
            ->addUrlRewrite()
            ->addAttributeToSelect('*')
            ->setPageSize(10) // just for testing
            ->addFieldToFilter('visibility',Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
            ->addAttributeToFilter('status',array(
                'eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED
            ));

    Mage::getSingleton('cataloginventory/stock')
            ->addInStockFilterToCollection($productCollection);

    foreach ($productCollection as $product) {

        $url = $product->getUrlModel()->getUrl($product,array('_ignore_category' => true));

        echo PHP_EOL . $url . PHP_EOL; // debug output
    }
}
}

$shell = new Mage_Shell_UrlTest();
$shell->run();

我用PHP -f magento / shell / urlTest.PHP运行它,这给了我这样的东西:

http://www.domain.com/urlTest.php/catalog/product/view/_ignore_category/1/id/307/s/any_valid_product_url_key

默认情况下,magento使用相同的代码获取Mage_Catalog_Block_Product_View :: _ prepareLayout()中的规范URL,因此代码应该没问题.唯一的区别是代码执行的存储.

它在shell脚本中不起作用,因为它们是为admin存储执行的(请参阅Mage_Shell_Abstract :: __ construct(),其中Mage :: app()被初始化).你可以使用Mage :: app() – > setCurrentStore(‘default’);您需要更换商店的默认值,并打印正确的网址.

原文链接:https://www.f2er.com/php/136830.html

猜你在找的PHP相关文章