1

状況:ゲストとしてチェックアウトします(データベースに顧客の請求先住所がありません)。

問題:URLまたはセッションの変数を使用して請求先住所フォームに自動的に入力するにはどうすればよいですか?

私にとっての完璧な解決策は次のとおりです。

  1. たとえば、このファイルでは、変更をできるだけ少なくします。

    app / design / frontend / default / my_theme_name / template / persistent / checkout / onepage / billing.phtml

  2. この方法で変数にアクセスします

    $ this-> getAddress()-> getName();

私の一時的な解決策:

/* array comes from url or session */

$myAddress = array (
    'firstname' => 'John',
    'lastname' => 'Smith',
    'street' => array (
        '0' => '1st Street',
        '1' => '2056',
    ),
    'city' => 'Maspeth',
    'region_id' => '',
    'region' => '',
    'postcode' => 'NY11378',
    'country_id' => 'US',
    'telephone' => '0017183209872'
    );

$customAddress = Mage::getModel('customer/address');
$customAddress->setData($myAddress);

/* $this = Mage_Checkout_Block_Onepage_Billing */

$this
    ->setBillingAddress(Mage::getSingleton('sales/quote_address')
    ->importCustomerAddress($customAddress));

/* insert value into input field */

echo $this->getBillingAddress()->getName();
4

1 に答える 1

1
$this
->setBillingAddress(Mage::getSingleton('sales/quote_address')
->importCustomerAddress($customAddress));

ここでは使用しないでください。BillingBlock()ではなく"$this"、Quoteオブジェクト(Mage_Sales_Model_Quote)である必要がありますMage_Checkout_Block_Onepage_Billing。を使用し$this->getQuote()ます。

于 2013-02-28T07:25:01.800 に答える