如何获取magento中特定商店的URL

时间:2014-07-13 04:07:04

标签: php magento

我正在开发一个自定义支付模块,我需要一件事帮助!

当我点击我在magento网址的onepagecheckout上的下订单时,我正在重定向到我的支付网关,我将通过此代码获取

Mage::getUrl('comm/comm/redirect')

这会生成重定向网址

我的问题是,在magento中为商店www.abc.com运行多线程时,这个重定向工作正常并返回(www.abc.com/index.php/comm/comm/redirect)<

但是对于另一家商店www.def.com,它也会重定向到同一个网址(www.abc.com/index.php/comm/comm/redirect)

它应该是(www.def.com/index.php/comm/comm/redirect),以便此商店重定向到其自己的特定支付网关。

点击下订单时,如何获取特定的商店网址。

感谢您的帮助

2 个答案:

答案 0 :(得分:8)

Mage::getUrl()可以采用两个参数:

参数1 - $ routePath - &gt;路径路径以&#34;模块/控制器/操作&#34;

的形式表示

参数2 - $ routeParams - &gt;这是一个将键/值转换为路径目录对的数组。

如果添加_store参数,Magento将使用正确的域作为基本URL。例如

Mage::getUrl('comm/comm/redirect', array(
    '_store'=>'your_store_id'
));

OR

Mage::getUrl('comm/comm/redirect', array(
    '_store'=>'your_store_code'
));

有关其他参考资料和完整的可用选项列表,请访问:http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/geturl_function_parameters

答案 1 :(得分:2)

您可以在块中创建与此类似的功能:

function getStoreByCode($storeCode)
{
    $stores = array_keys(Mage::app()->getStores());
    foreach($stores as $id){
      $store = Mage::app()->getStore($id);
      if($store->getCode()==$storeCode) {
        return $store;
      }
     }
     return Mage::app()->getStore(); // if not found
}

然后在模板文件中调用该函数并将商店代码传递给它:

$store = $this->getStoreByCode(Mage::app()->getStore()->getCode());
echo $store->getUrl('comm/comm/redirect');

我测试了它并且工作正常。

相关问题