Создание двух бизнес-аккаунта в стандарте PayPal - PullRequest
1 голос
/ 07 марта 2011

Может кто-нибудь сказать мне, как я могу создать две бизнес-учетные записи?На самом деле, мне нужна такая функциональность, если сумма в моей корзине превышает 100 долларов США, чем я хочу передать ее на свой первый торговый счет, в противном случае требуется передать второе торговое письмо.Я знаю, это возможно.Когда страница перенаправлена ​​на PayPal, я должен передать разные электронные письма, основанные на общей сумме корзины. Я хочу создать модуль saparate, с помощью которого я могу предоставить два торговых письма, так что эти оба введенных электронных письма могут использоваться на основе общего количества корзины.

Ответы [ 3 ]

0 голосов
/ 08 марта 2011

Наконец, я добавил в 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;
}

после $result = $api->getStandardCheckoutRequest(); в Payment / Model / Standard.php, я внес эти изменения в файлы Core, но, как вы все знаете, я должен создать это с использованием локальной папки. Я надеюсь, что это может помочь вам.

0 голосов
/ 08 марта 2011

Создайте 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 голосов
/ 07 марта 2011

Взгляните на этот недавний ответ относительно использования двух учетных записей 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 в базе данных по альтернативному пути (скажем, paypal/config_alt) и верните при необходимости.

Надеюсь, это поможет!

...