0

我正在关注本教程:http ://www.excellencemagentoblog.com/magento-create-custom-payment-method 。在第 2 步结束时,我应该在 Admin=>Sales=>Order 上看到我的字段,但我什么也看不到。

在 sales_flat_quote_payment 中,我可以看到该telefono_no字段,也可以在其中看到sales_flat_order_payment。当我买东西时,Magento 会将手机数据保存telefono_no在数据库中。无论如何,我的 mysql4-install-0.1.0.php 是:

$install = $this;
$install->startSetup();

$install->run("
    ALTER TABLE `".$install->getTable('sales/quote_payment')."` ADD `telefono_no` VARCHAR(7) NOT NULL DEFAULT '0000000';
    ALTER TABLE `".$install->getTable('sales/order_payment')."` ADD `telefono_no` VARCHAR(7) NOT NULL DEFAULT '0000000';
");

$install->endSetup();

在我的 config.xml 我有:

<?xml version="1.0"?>
<config>
    <modules>
        <Xs_Pago>
            <version>0.1.0</version>
        </Xs_Pago>
    </modules>
    <global>
        <fieldsets>
            <sales_convert_quote_payment>
                <telefono_no>
                    <to_order_payment>*</to_order_payment>
                </telefono_no>
            </sales_convert_quote_payment>
        </fieldsets>
    </global>
</config>
4

1 回答 1

0

关于的代码应该只将字段添加到数据库中,并在下订单时将值从 quote_payment 复制到 order_payment。

该代码不会显示任何信息,在您引用的示例中显示信息的原因是因为Mage_Payment_Block_Info

<?php
class Excellence_Pay_Block_Info_Pay extends Mage_Payment_Block_Info
{
    protected function _prepareSpecificInformation($transport = null)
    {
        if (null !== $this->_paymentSpecificInformation) {
            return $this->_paymentSpecificInformation;
        }
        $info = $this->getInfo();
        $transport = new Varien_Object();
        $transport = parent::_prepareSpecificInformation($transport);
        $transport->addData(array(
            Mage::helper('payment')->__('Check No#') => $info->getCheckNo(),
            Mage::helper('payment')->__('Check Date') => $info->getCheckDate()
        ));
        return $transport;
    }
}

看看@Magento 自定义“订单”属性/管理员输入和显示

于 2013-02-07T18:49:05.923 回答