儲存額外的付款資訊

付款模組有時候會有額外的資訊想要儲存,像是分期付款的期數,如果希望新增欄位儲存可以參考這篇作法
http://excellencemagentoblog.com/blog/2011/10/28/magento-create-custom-payment-method/

找了一下資料表, sales_flat_order_payment 有兩個欄位 additional_data 與 additional_information 可以利用

只要在付款方式的 Payment_Model 加入下面方法就可以把交易過程取得的資料儲存到資料庫
public function assignData($data) {
        if (!($data instanceof Varien_Object)) {
            $data = new Varien_Object($data);
        }
        $info = $this->getInfoInstance();
        $info->setAdditionalData($data->getValue());
        $info->setAdditionalInformation('field_name', $data->getValue());
        return $this;
    }

setAdditionalData() 只有儲存單純文字到 additional_data 欄位,而 setAdditionalInformation() 則是存成陣列後經過 serialize() 處理放入 additional_information 中。

使用的方式則是直接從訂單物件呼叫
$order->getPayment()->getAdditionalData();
$order->getPayment()->getAdditionalInformation('field_name');
Sign In or Register to comment.