Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

1.6.1 - ADMIN PAYMENT OPTION - SOLVED [EDIT - Works on 1.7.0.2 as well]
 
adonkey
Member
 
Total Posts:  67
Joined:  2008-10-28
 

Hi guys,

If you are running 1.6.1 and want to have an “offline payment” option in your back-end but not in your front-end checkout, then this might help you.

I used to use a little hack on my old 1.3v magento using this thread:
http://www.magentocommerce.com/boards/viewthread/38765/

but this did not work for me on 1.6.1 so here is what I did:

1.  turn off compilations and clear out the cache (you can run the compiler again after you are done)
2. goto:  config > payment methods > Zero Subtotal Checkout - and enable it, I also change the title to “Offline Payment”
3. Using FTP locate the file “Free.php” it’s in the following location: /app/code/core/Mage/Payment/Model/Method
4. download the file and open it with an editor, then look for the following lines (line 48)

protected $_canAuthorize                true;
protected 
$_canCapture                  true;

and add this underneath:

protected $_canUseInternal              true;
protected 
$_canUseCheckout              false;

So it will read like this:

protected $_canAuthorize                true;
protected 
$_canCapture                  true;
protected 
$_canUseInternal              true;
protected 
$_canUseCheckout              false;

This will prevent the option from displaying on the front-end.

5. Now we need to change the rule that stops the option being available if the value is over 0, to do that look for the following line:

&& (Mage::app()->getStore()->roundPrice($quote->getGrandTotal()) == 0);

and change the “==0” to this “ > 0” , so the code looks like this:

&& (Mage::app()->getStore()->roundPrice($quote->getGrandTotal()) > 0);

6. Now you need to create a local path to upload the “Free.php” file you have edited, this is so that it will be safe to upgrade Magento in the future without overwriting the edited file.  To do this create folders in the “local” directory to match the location of the core file (If you are new to this, make sure you take note of the capital letters used in some of the folder names eg Mage not mage)

so:  /app/code/local/Mage/Payment/Model/Method/Free.php instead of /app/code/core/Mage/Payment/Model/Method/Free.php

7.  If you are running your store with the compilations tools on, you will need to click the “run compilations Process” again

And that’s it, you should now have the option to process orders via the backend without having to take a payment.

I hope this helps others :)

 
Magento Community Magento Community
Magento Community
Magento Community
 
where_s_gary
Jr. Member
 
Total Posts:  12
Joined:  2009-01-12
 

This solution worked perfectly for 1.6.1.

Followed it step by step and it worked like a charm.

Thanks for the solution.

Also, anyone tested this for multiple-shipping address checkout?

Gary

 
Magento Community Magento Community
Magento Community
Magento Community
 
simup
Jr. Member
 
Total Posts:  8
Joined:  2012-01-12
 

Thanks !

Worked for me in 1.6.2, only I had to leave “== 0” in place and not change it in “>0”

 
Magento Community Magento Community
Magento Community
Magento Community
 
better
Member
 
Total Posts:  43
Joined:  2011-08-21
 

Worked perfect for me. Tried it twice, first time it didn’t work (i don’t know what i did wrong - apart from working to late into the night).

Thank you for you Post, it’s a great help.

 
Magento Community Magento Community
Magento Community
Magento Community
 
sanhu88
Jr. Member
 
Total Posts:  9
Joined:  2011-01-25
 

Thank you so much! It is helpful.

 
Magento Community Magento Community
Magento Community
Magento Community
 
nerotic
Jr. Member
 
Total Posts:  7
Joined:  2011-02-02
 

How can I apply this to SagePay.  Right now it’s only displaying on the front end but I want it to display in when processing an order through the backend.

 
Magento Community Magento Community
Magento Community
Magento Community
 
ayunksyah
Jr. Member
 
Total Posts:  10
Joined:  2012-05-09
Indonesia
 

It is helpful. thank you

 
Magento Community Magento Community
Magento Community
Magento Community
 
amat1
Member
 
Total Posts:  36
Joined:  2011-06-13
 

This little extension works for me (using Magento CE 1.7.0.2):

http://www.magentocommerce.com/magento-connect/Lemonline/extension/3377/lemonline_simpleadminpayment

It adds an extra payment method just for the admin. You can even decide how to call this payment method and set some options regarding invoice creation and shipping…

 
Magento Community Magento Community
Magento Community
Magento Community
 
digitaldomain
Jr. Member
 
Total Posts:  13
Joined:  2011-12-19
 

I’ve tried that Simple Payment Method for Admin and its perfect for just letting you create an order in the admin and use a separate Virtual Terminal to pay.
Except that one of my clients really wants to be able to use Realex and Paypal for manual orders created in the admin. I’ve tried lots of things like adding the following strings to the various php files associated with the different payment methods:

protected $_canAuthorize = true;
protected $_canCapture = true;
protected $_canUseInternal = true;
protected $_canUseCheckout = false;

I can get Paypal Express to appear as a payment option when creating an order in the admin but it gives errors about invalid token when you try to submit the order.

Still can’t get them to work properly, anyone have any ideas? Im on Magento 1.6.2 but I see Magento v1.7 is now allowing payment methods to be enabled in the Admin, is Paypal even possible to use in the admin of v1.7? Or preferably Realex...?

Thanks.

 
Magento Community Magento Community
Magento Community
Magento Community
 
vegetaaa
Jr. Member
 
Total Posts:  1
Joined:  2011-07-21
 
amat1 - 17 October 2012 01:31 AM

This little extension works for me (using Magento CE 1.7.0.2):

http://www.magentocommerce.com/magento-connect/Lemonline/extension/3377/lemonline_simpleadminpayment

It adds an extra payment method just for the admin. You can even decide how to call this payment method and set some options regarding invoice creation and shipping…

This extension is exactly what i needed!

 
Magento Community Magento Community
Magento Community
Magento Community
 
masihakudisini
Jr. Member
 
Total Posts:  1
Joined:  2013-09-06
 

Look like <a href="http://masihakudisini.blogspot.com/2013/06/cari-uang-lewat-ekioskucom.html">cari uang lewat ekiosku.com</a> and the <a href="http://masihakudisini.blogspot.com/2013/07/perumahan-citra-indah-dan-citra-gran.html">citra indah - Citra Gran</a> great for read

 
Magento Community Magento Community
Magento Community
Magento Community
 
adonkey
Member
 
Total Posts:  67
Joined:  2008-10-28
 
adonkey - 06 February 2012 02:57 AM

Hi guys,

If you are running 1.6.1 and want to have an “offline payment” option in your back-end but not in your front-end checkout, then this might help you.

I used to use a little hack on my old 1.3v magento using this thread:
http://www.magentocommerce.com/boards/viewthread/38765/

but this did not work for me on 1.6.1 so here is what I did:

1.  turn off compilations and clear out the cache (you can run the compiler again after you are done)
2. goto:  config > payment methods > Zero Subtotal Checkout - and enable it, I also change the title to “Offline Payment”
3. Using FTP locate the file “Free.php” it’s in the following location: /app/code/core/Mage/Payment/Model/Method
4. download the file and open it with an editor, then look for the following lines (line 48)

protected $_canAuthorize                true;
protected 
$_canCapture                  true;

and add this underneath:

protected $_canUseInternal              true;
protected 
$_canUseCheckout              false;

So it will read like this:
protected $_canAuthorize                true;
protected 
$_canCapture                  true;
protected 
$_canUseInternal              true;
protected 
$_canUseCheckout              false;

This will prevent the option from displaying on the front-end.

5. Now we need to change the rule that stops the option being available if the value is over 0, to do that look for the following line:

&& (Mage::app()->getStore()->roundPrice($quote->getGrandTotal()) == 0);

and change the “==0” to this “ > 0” , so the code looks like this:

&& (Mage::app()->getStore()->roundPrice($quote->getGrandTotal()) > 0);

6. Now you need to create a local path to upload the “Free.php” file you have edited, this is so that it will be safe to upgrade Magento in the future without overwriting the edited file.  To do this create folders in the “local” directory to match the location of the core file (If you are new to this, make sure you take note of the capital letters used in some of the folder names eg Mage not mage)

so:  /app/code/local/Mage/Payment/Model/Method/Free.php instead of /app/code/core/Mage/Payment/Model/Method/Free.php

7.  If you are running your store with the compilations tools on, you will need to click the “run compilations Process” again

And that’s it, you should now have the option to process orders via the backend without having to take a payment.

I hope this helps others :)

I just implemented this same fix for version 1.7.0.2 and it still works perfectly

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top