2014-03-04 58 views
1

感謝您的閱讀,我是新的magento。我正在研究api應用程序,所以如果我有網站ID,如何獲得本網站的所有可用貨幣和同樣的東西,如果我有商店編號 任何想法將不勝感激獲取所有貨幣可用於網站/商店在magento

+0

在文檔中說什麼? –

+0

發佈一些你已經試過的代碼 – Johnny000

+0

文檔說變量是website_id的網站貨幣和store_id的商店貨幣 – rramiii

回答

1

你可以試試這個獲得允許貨幣:

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

請讓我知道如果你需要更多的幫助。

+2

謝謝你的幫助,但這個命令只返回了默認貨幣 我遇到了一個命令,它返回了所有允許的貨幣數組,但沒有任何暗示網站ID或商店ID:Mage :: getModel('directory/currency') - > getConfigAllowCurrencies(); – rramiii

+0

如果您從前端使用我的代碼,那麼它會檢測商店(默認情況下)並顯示當前商店的貨幣。 我已經在多網站和多商店設置了測試它。 –

+0

但請求的是任何網站ID或任何商店ID傳遞給我的API功能,所以我的功能必須採取ID和返回與請求的網站或商店相關的貨幣:-( – rramiii

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); 
+0

謝謝,Mage :: app() - > getStore() - > getAvailableCurrencyCodes(true)返回默認貨幣,所以用Mage :: app() - > getStore() - > getAvailableCurrencyCodes(true)如果我們打開系統 - >配置 - >貨幣設置,這個配置適用於所有可用的貨幣系統中的國家名稱,但仍然無法獲得指定網站或商店的貨幣(我有想要的網站和商店的ID) – rramiii

+0

(((((((( – rramiii

+1

)我使用代碼來獲得magento貨幣匯率($匯率變量)從所選的網站或商店貨幣不同,所以我認爲有一些方法可以通過網站或商店獲得貨幣。 – electroid

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>"; 

哪裏應該由店鋪標識所取代。請記住,如果您尚未爲特定商店設置值,則需要傳遞0(默認商店作用域ID)。

+0

哇...你是我的英雄我一直在嘗試6個小時今天 這是工作,但不是店ID,它需要網站ID,所以它返回給定網站ID的所有貨幣,我會嘗試使它的商店ID也工作...非常感謝我的朋友:-) – rramiii

+0

它不允許我投票你的答案.. so sory – rramiii

+0

請投票你的答案 –

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, 
        )); 

我並不需要在選項標籤長格式的貨幣名稱,只有三個字母代碼。