获得所有可用于magento网站/商店的货币

时间:2014-03-04 08:04:53

标签: php api magento

感谢阅读,我是magento的新手。我正在研究api应用程序,所以如果我有网站ID,我怎么能得到这个网站的所有可用货币和同样的东西,如果我有商店ID 任何想法将不胜感激

4 个答案:

答案 0 :(得分:4)

试试这个:

$CurrencyCode = Mage::getModel('core/config_data')
->getCollection()
->addFieldToFilter('path','currency/options/allow')
->addFieldToFilter('scope_id',<you store id>)
->getData();
$currencies_array = explode(',',$CurrencyCode[0]['value']);
if($currencies_array[0] == '')
{
    $currencies_array[]= Mage::app()->getStore($site_id)->getCurrentCurrencyCode();
}

echo "<pre>";print_r($currencies_array);echo "</pre>";

应该用商店ID替换。

请记住,如果您没有为特定商店设置值,则需要传递0(默认商店范围ID)。

答案 1 :(得分:2)

请尝试以下操作,但尚未对其进行测试。

    $currencies = array();
    $codes = Mage::app()->getStore()->getAvailableCurrencyCodes(true);
    if (is_array($codes) && count($codes) > 1) {
        $rates = Mage::getModel('directory/currency')->getCurrencyRates(
                Mage::app()->getStore()->getBaseCurrency(),
                $codes
        );

        foreach ($codes as $code) {
            if (isset($rates[$code])) {
                $currencies[$code] = Mage::app()->getLocale()
                ->getTranslation($code, 'nametocurrency');
            }
        }
    }

echo "<pre>";
print_r($currencies);

答案 2 :(得分:1)

您可以尝试此操作以获取允许的货币:

$CurrencyCode = Mage::getStoreConfig('currency/options/allow');

如果您需要更多帮助,请与我们联系。

答案 3 :(得分:0)

我需要一些货币才能在自定义网格上下拉。要获取所有商店中使用的货币列表并呈现下拉列表,这对我来说非常适用于Grid.php

    $stores = Mage::app()->getStores();
    foreach($stores as $store) {
        $currency = Mage::getStoreConfig('currency/options/allow', $store);
        $currencies[$currency] = $currency;
    }
    $currencies = array_unique($currencies);

对于网格列:

    $this->addColumn('currency', array(
                     'header' => Mage::helper('erp')->__('Currency'),
                     'align' => 'left',
                     'width' => '100px',
                     'index' => 'currency',
                     'type'  => 'options',
                     'options' => $currencies,
                     ));

我不需要长格式货币名称的选项标签,只需要三个字母代码。