Question

Since Magento 1.7 it's only possible to use PayPal Pro or PayPal standard but not both.

In this scenario I cannot use PayPal Express because I have to pass through order data which gets lost using Express, so I need PayPal standard to be working as well.

In my time writing modules I've never seen anything configured in the new PayPal way in the Magento configuration so I'm not sure where to begin looking. If anyone can point me on the right direction I'll answer this with the solution.

As a side note, does anybody know exactly why Magento have enforced this?

UPDATE

I have tried setting the core_config_data payment/paypal_standard/active and although both appear enabled in the admin, still only the direct method shows in the checkout.

Was it helpful?

Solution 2

Managed to get this working. Firstly, I hid Express checkout as SaveTheMage suggested above. Then, to show Standard I extended this file:

app/code/core/Mage/Paypal/Model/Standard.php

Then changed this method (line 185) from:

public function isAvailable($quote = null)
{
    if (parent::isAvailable($quote) && $this->getConfig()->isMethodAvailable()) {
        return true;
    }
    return false;
}

to:

public function isAvailable($quote = null)
{
    return true;
}

This effectively makes PayPal Standard always available.

OTHER TIPS

If its an issue of PayPal express showing up when you dont want it to (because of both options enabled) and not being able to disable it specifically, then you can just display none on its class.

Open the template/checkout/onepage/payment/methods.phtml

Where it shows the <input> tag put inside

id="payment_<?php echo $_code ?>"

Then in css you can call the paypal method as something like

(#)payment_paypal_express {
display: none;
}

But dont use the (), it just wont let me use the id character in this text, but you know know what I mean.

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top