2011-03-07 68 views
1

任何人都可以告訴我如何創建兩個商業帳戶?其實,我想要這樣的功能,如果我的購物車總額超過100美元比我想將其傳遞給我的第一個商家帳戶,否則要通過第二個商家的電子郵件。我知道,它是可行的。當頁面重定向到PayPal時,我必須根據購物車總數傳遞不同的電子郵件。我想創建一個可以提供兩個商家電子郵件的分開的模塊,因此這兩個輸入的電子郵件都可以基於購物車total.TIA,任何幫助?在PayPal標準中創建兩個商業帳戶

+0

您應該檢查貝寶條款與條件,如果他們實際上允許您有多個企業帳戶。 – nfechner 2011-03-07 14:19:36

+1

其實我有兩個發送箱商家帳戶,我已經使用這兩個不同的帳戶檢出,金額從買家帳戶中扣除。但是現在我想根據購物車總數來使用它們。我只能在admin-> config中輸入paypal設置中的一個電子郵件地址,我想要獲得兩個電子郵件地址,並且想要在redirect.php.block thblock中更改thx – Kamal 2011-03-07 14:52:54

回答

0

創建的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()的錯誤,所以重新定義,因爲它在覈心範圍內是公開的。並完成。

+0

@sixlettervariables thx man! – Kamal 2011-04-11 07:39:35

0

關於使用兩個Authorize.net帳戶,請看this recent answer。 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信息保存在備用路徑下的數據庫中(如paypal/config_alt),並根據需要返回。

希望有幫助!

+0

thx joseph,我很感激你,但實際上我想提供兩個電子郵件地址,以便管理員可以輸入兩個電子郵件,通過更改system.xml它可能。現在看一下standard.php中的getStandardCheckoutFormFields()使用$ api = Mage :: getModel('paypal/api_standard') - > setConfigObject($ this-> getConfig());這樣可以得到api_standard,這裏使用config。現在在這個函數中調用getStandardCheckoutRequest(),從這裏開始,business_account 2不會被完全返回。第二封電子郵件以path ='paypal/general/business_account2'的形式存儲在core_config_data中。 – Kamal 2011-03-08 06:01:39

+0

getStandardCheckoutFormFields()這個函數在block/redirect.php中用於向paypal提供變量。現在我想覆蓋定義getStandardCheckoutFormFields()的模型,並根據我的要求返回變量業務。 – Kamal 2011-03-08 06:06:39

+0

我想要包括所有東西的最終總數,我認爲我必須使用Mage :: getSingleton('checkout/session') - > getQuote() - > getGrandTotal();對吧? – Kamal 2011-03-08 06:09:25

0

最後,我的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表中看到,有作爲「貝寶設定在最後的路徑/一般/ business_account2' 。現在改變getStandardCheckoutFormFields()作爲

$business2 = Mage::getStoreConfig('paypal/general/business_account2'); 
$grandTotal = $order->getGrandTotal(); 
if($grandTotal >= 100) { 
    unset($result['business']); 
    $result['business'] = $business2; 
} 

在付款後$result = $api->getStandardCheckoutRequest(); /型號/ Standard.php,我已在覈心文件中的這些變化,但是大家都知道我要創建這個使用本地folder.I希望這可以幫助你。

+0

謝謝你,約瑟夫。 – Kamal 2011-03-09 05:20:51