誰かが2つのビジネスアカウントを作成する方法を教えてもらえますか?実際、私はこのような機能が必要です。カートの合計が最初のマーチャントアカウントに渡したいよりも100米ドルを超えた場合、それ以外の場合は2番目のマーチャントメールを渡したいです。私は知っています、それは実行可能です。ページがペイパルにリダイレクトされるとき、カートの合計に基づいて異なるメールを渡す必要があります.2つのマーチャントメールを提供できる別のモジュールを作成したいので、これらの両方の入力されたメールをカートの合計に基づいて使用できます。TIA、任意のヘルプ?
3 に答える
2つのAuthorize.netアカウントの使用に関するこの最近の回答をご覧ください。Paypalのコンセプトは同じです。モデルには、 :Mage_Paypal_Model_Standard
と呼ばれるメソッドがあります。getConfig
/**
* Config instance getter
* @return Mage_Paypal_Model_Config
*/
public function getConfig()
{
if (null === $this->_config) {
$params = array($this->_code);
if ($store = $this->getStore()) {
$params[] = is_object($store) ? $store->getId() : $store;
}
$this->_config = Mage::getModel('paypal/config', $params);
}
return $this->_config;
}
これは、オーバーライドに対する最善の策のように見えます。この時点で、次の電話をかけることができるはずです。
$this->getCheckout()->getQuote();
見積もりオブジェクトを取得します。これを使用して、ロードするPaypal情報を決定します。そのペイパル情報をデータベースの代替パス(たとえばpaypal/config_alt
)の下に保存し、必要に応じて返します。
お役に立てば幸いです。
最後に、タグの後にsystem.xmlに次のように追加しました
<business_account2 translate="label comment tooltip">
<label>Email Associated with PayPal Merchant Account more than 100 amount</label>
<comment><![CDATA[<a href="http://www.magentocommerce.com/paypal">Start accepting payments via PayPal!</a>]]></comment>
<tooltip>Don't have a PayPal account? Simply enter your email address.</tooltip>
<config_path>paypal/general/business_account2</config_path>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<sort_order>10</sort_order>
<frontend_class>validate-email</frontend_class>
</business_account2>
これを作成して構成を保存すると、core_config_dataテーブルに、最後に「paypal / general/business_account2」として設定されたパスがあることがわかります。ここで、getStandardCheckoutFormFields()を次のように変更します。
$business2 = Mage::getStoreConfig('paypal/general/business_account2');
$grandTotal = $order->getGrandTotal();
if($grandTotal >= 100) {
unset($result['business']);
$result['business'] = $business2;
}
Payment / Model / Standard.phpで$result = $api->getStandardCheckoutRequest();
、コアファイルにこれらの変更を加えましたが、ご存知のとおり、ローカルフォルダーを使用してこれを作成する必要があります。これがお役に立てば幸いです。
system.xmlを作成して貼り付けます
<config>
<sections>
<paypal>
<groups>
<account translate="label">
<label>Merchant Account</label>
<fieldset_css>paypal-config</fieldset_css>
<frontend_type>text</frontend_type>
<sort_order>0</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<fields>
<business_account2 translate="label comment tooltip">
<label>Email Associated with PayPal Merchant Account more than 5 amount</label>
<comment><![CDATA[<a href="http://www.magentocommerce.com/paypal">Start accepting payments via PayPal!</a>]]></comment>
<tooltip>Don't have a PayPal account? Simply enter your email address.</tooltip>
<config_path>paypal/general/business_account2</config_path>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<sort_order>10</sort_order>
<frontend_class>validate-email</frontend_class>
</business_account2>
</fields>
</account>
</groups>
</paypal>
</sections>
</config>
そして、config.xmlを作成して貼り付けます
<config>
<modules>
<My_CustomPaypal>
<version>1.0.0</version>
<depends>
<!-- no dependencies -->
</depends>
</My_CustomPaypal>
</modules>
<global>
<models>
<paypal>
<rewrite>
<standard>My_CustomPaypal_Model_Standard</standard>
</rewrite>
</paypal>
</models>
<resources />
<extraconfig />
<blocks />
</global>
</config>
次に、standard.phpをオーバーライドgetStandardCheckoutFormFields()
し、上記のコメントに記述されているロジックを配置する必要があるメソッドを宣言します。確かにプライベートメソッドのエラーが発生する_getAggregatedCartSummary()
ので、スコープがパブリックであるため、コアのように再定義します。そして終了しました。