2013-12-09 19 views
0

我需要爲Magento中保存的名爲'parcelas'的信用卡付款方式添加一個自定義字段,它將是一個選擇1到x選項。我一直在尋找如何做到這一點,但我真的沒有找到某種方式從表單中獲取數據,存儲到數據庫並將其存入後端。有誰知道如何去做?將自定義字段添加到Magento中的已保存信用卡付款方式

+0

試試這個:http://magento.stackexchange.com/questions/8828/add-new-field-in-checkout – Babblo

+0

我會盡力回報你一個反饋儘快。 –

+0

這些鏈接都不具備我所需要的功能,如果您想添加客戶屬性,而不是保存的信用卡模塊內的自定義字段,則這些鏈接很有用。 –

回答

0

經過一番研究,我找到了我需要的東西。這種方法適用於Magento 1.7.0.2。

1 - 創建Ccsave模塊的本地副本。

2 - 添加到應用程序/代碼/本地/法師/ Ccsave的/ etc/config.xml文件,之間*配置 - >全局 - >字段集 - > sales_convert_quote_payment *

<cc_parcelas><to_order_payment>*</to_order_payment></cc_parcelas> 

並以*配置 - >全球 - >字段集 - > sales_convert_order_payment *

<cc_parcelas><to_quote_payment>*</to_quote_payment></cc_parcelas> 

3 - 在應用程序/代碼/本地/法師/ Ccsave /座/支付/信息/ Ccsave.php,添加此代碼的功能* _prepareSpecificInformation *

if ($info->getCcParcelas()) { 
    $transport->addData(array(
    Mage::helper('payment')->__('Número de Parcelas') => $info->getCcParcelas(), 
    )); 
} 

4 - 在應用程序/代碼/本地/法師/ Ccsave /型號/付款/ info.php的,添加此代碼起作用的getData

$this->_data['cc_parcelas'] = $this->getCcParcelas(); 

5 - 添加輸入字段,以形成在app /設計/前端/ YOURTHEME /默認/模板/支付/表格/ ccsave.phtml只是UL年底前

<li> 
    <label for="<?php echo $_code ?>_cc_parcelas" class="required"><em>*</em>Número de Parcelas</label> 
    <div class="input-box"> 
     <div class="v-fix"> 
      <select title="Número de Parcelas" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_parcelas" name="payment[cc_parcelas]"> 
       <?php for($i=1; $i<=$this->getParcelas()->getParcelas(); $i++): ?> 
        <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
       <?php endfor; ?> 
      </select> 
     </div> 
    </div> 
</li> 

在步驟我從另一個模塊中有多少 'parcelas' 我要叫。你可能會找到自己的方式來做到這一點,如果你有一個「parcelas」的靜態數字,只需將$this->getParcelas()->getParcelas()更改爲你想要的數字。

6 - 到您的數據庫添加表上sales_flat_order_payment和sales_flat_quote_payment一個「cc_parcelas」列

現在你可以讓你的Ccsave模塊「parcelas」的數量或者只是添加另一種自定義字段中。請讓我知道在這個過程中是否有任何問題或不好。

0

使用安裝腳本

$installer = new Mage_Sales_Model_Mysql4_Setup('core_setup'); 
$installer->startSetup(); 
$installer->addAttribute(
    'order_payment', 
    'cc_parcelas', 
    array(
     'type' => 'varchar', 
     'grid' => true 
    ) 
); 
$installer->endSetup(); 
相關問題