2013-07-24 4 views
0

Мне нужно добавить посылки в мой модуль оплаты кредитной карты. Из того, что я понимаю, файл, который отправляет информацию кредитной карточки компании принимает номер карты, а также:Получить информацию об оплате

$payment_cc_number  = $payment->getCcNumber(); 

В этом же файле есть строка, которая принимает число посылок ...

$payment_parcels  = $this->getConfigData('parcel_number'); 

... но они не захватываются. В модуле я использую простую разметку:

 <select id="" name="parcels" class="required-entry"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
     </select> 

Как отправить значение, выбранное клиентом?

ответ

0

Вы должны создать поле cc_parcels в таблицах sales_flat_order_payment и sales_flat_quote_payment и добавить код в соответствующем месте вашего модуля.

Блок Info Класс:

<?php 
class Company_Module_Block_Info extends Mage_Payment_Block_Info_Cc { 
    protected function _prepareSpecificInformation($transport = null) { 
     $transport = parent::_prepareSpecificInformation($transport); 
     if ($this->getInfo()->getCcParcels()) { 
      $transport[$this->__('Parcels')] = $this->getInfo()->getCcParcels(); 
     } 
     return $transport; 
    } 
} 

Метод Класс:

<?php 
class Company_Module_Model_Method extends Mage_Payment_Model_Method_Cc { 
    public function assignData($data) { 
     $this->getInfoInstance()->setCcParcels($data['cc_parcels']); 
    } 
} 

config.xml:

<?xml version="1.0"?> 
<config> 
    <global> 
     <fieldsets> 
      <sales_convert_quote_payment> 
       <cc_parcels><to_order_payment>*</to_order_payment></cc_parcels> 
      </sales_convert_quote_payment> 
      <sales_convert_order_payment> 
       <cc_parcels><to_quote_payment>*</to_quote_payment></cc_parcels> 
      </sales_convert_order_payment> 
     </fieldsets> 
    </global> 
</config> 

form.phtml:

<label for="<?php echo $_code ?>_cc_parcels"><?php echo $this->__('Parcels') ?></label> 
<div class="input-box"> 
    <select id="<?php echo $_code ?>_cc_parcels" name="payment[cc_parcels]"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
    </select> 
</div> 

Чтобы получить номер парфюмерии, вы должны получить его как $order->getPayment()->getCcParcels() (также от $quote).

Смежные вопросы