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 に答える