Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Official PayPal IPN Support Thread


Mark Evans

Recommended Posts

No one has managed to do this yet. I did spend a few hours looking at the files trying to get this to happen but my tests all failed miserably.... as of yet no one has done it.

 

I am not at all a programmer, but here's what I saw:

-the stock update is passed in paypal_ipn in the "before_process()" function, which is called at the beginng of checkout_process.

-I believe that when a customer send his order (at the end of checkout_confirmation), the system calls the function "process_button()"

 

If we move the stock update from "before_process" to "process_button", and call the Paypal IPN before_process function when the customer clicks to send his order, then the stock update might happen right when the order is sent to Paypal.

 

It would be something like:

1. customer is on checkout_confirmation

2. -if the payment method is "paypal ipn" and he clicks to send his order, we call the "process_button" function from Paypal IPN -> stock update

-if the payment method is not "paypal ipn", then the process_button is not the one from Paypal IPN -> it all goes like usual with the other payment method.

 

I have tried to implement this, but I am really, really not a programmer at all, and I just couldn't do it. I had just copied / paste the stock update thing to "process_button", but this didn't work. Can anybody help?

Link to comment
Share on other sites

I'm having roughly the same problem- I also have an SSL with godaddy and do my hosting there, as well. I don't know where to find my private key or public certificate- I called godaddy.com and they say to find the CSR from OScommerce, then to call the secure certificate department at godaddy.com. I think my problem would pretty much be solved if I could find the CSR, but haven't been able to do that. Any suggestions?

 

 

 

"You tried to upload PayPal's public certificate as your own certificate. This is not allowed."

so what am i doing wrong?

i also host on godaddy and purchased my domain (mysite.com) ssl through them, so i did not generate it myself as they installed it as well.

can i still use the encrypt function without having to pay for a new ssl?

 

if not, what are the risks associated with using the paypal ipn without encryption?

Link to comment
Share on other sites

When trying to install Paypal_IPN in admin panel, I get this error:

 

Fatal error: Cannot instantiate non-existent class: paypal_ipn in /home/u4/lgussack/html/osc/admin/modules.php on line 57

 

This is my line 57:

 

$module = new $class;

 

I also have CCGV(trad). Any help???

 

Marcia

Link to comment
Share on other sites

Help with MVS 1.1 and Paypal IPN 1.4 Contribs

 

Has anyone successfully integrated MVS w/ Paypal IPN. I am trying to modify the paypal_ipn.php for MVS. For the most part it seems to be going ok. I am getting an exception on the checkout process when using Paypal.

 

Warning: Invalid argument supplied for foreach() in /home/content/f/u/n/fun4baby/html/catalog/includes/modules/payment/paypal_ipn.php on line 206

 

I used diff to add the MVS code from checkout_process.php to paypal_ipn.php.

 

//MVS - added insert for new orders_shipping table

$shipping_array = $shipping['vendor'];

foreach ($shipping_array as $vendors_id => $shipping_data) {

$vendors_query = tep_db_query("select vendors_name

from " . TABLE_VENDORS . "

where vendors_id = '" . (int)$vendors_id . "'"

);

$vendors_name = 'Unknown';

if ($vendors = tep_db_fetch_array($vendors_query)) {

$vendors_name = $vendors['vendors_name'];

}

$shipping_method_array = explode ('_', $shipping_data['id']);

if ($shipping_method_array[0] == 'fedex1') {

$shipping_method = 'Federal Express';

} elseif ($shipping_method_array[0] == 'upsxml') {

$shipping_method = 'UPS';

} elseif ($shipping_method_array[0] == 'usps') {

$shipping_method = 'USPS';

} else {

$shipping_method = $shipping_method_array[0];

}

$sql_data_array = array('orders_id' => $insert_id,

'vendors_id' => $vendors_id,

'shipping_module' => $shipping_method,

'shipping_method' => $shipping_data['title'],

'shipping_cost' => $shipping_data['cost'],

'shipping_tax' => $shipping_data['ship_tax'],

'vendors_name' => $vendors_name,

'vendor_order_sent' => 'no'

);

tep_db_perform(TABLE_ORDERS_SHIPPING, $sql_data_array);

}

//MVS End

 

Testsite http://www.fun4baby.com/catalog... you can see what I am talking about if you use paypal as method.

Link to comment
Share on other sites

hello all,

 

i'm having two issues, the firast of which has me in a really bad spot...

 

firstly, i happen to have QTPro v4 installed, as we absolutely depend on it's functionality. now, i've recentlty noticed that orders of any items that have matrix attributes that have their stock handled by QTPro, are not being deducted from inventory after an order is placed using Paypal as a payment method. Credit Card orders work perfectly, and Paypal orders will deduct if it's a simple inventory using OSCommerce's quantity and not the QTPro stock option. this is a huge problem for us, and i'm willing to pay someone for a clean and timely solution to it.

 

our next issue is that the abandoned orders seem to simply sit indefinitely within our admin until manually delated. i thought that these were supposed to delete themselves after 3 days? if not, is there any way to do this, preferably with a time variable we can define ourselves?

 

anyhow, any help would be greatly appreciated, and i'd be more then happy to pay someone for their time if they could do it (i'm slammed for time at the moment).

 

feel free to email me or post a reply.

 

thanks.

Link to comment
Share on other sites

I am not at all a programmer, but here's what I saw:

-the stock update is passed in paypal_ipn in the "before_process()" function, which is called at the beginng of checkout_process.

-I believe that when a customer send his order (at the end of checkout_confirmation), the system calls the function "process_button()"

 

If we move the stock update from "before_process" to "process_button", and call the Paypal IPN before_process function when the customer clicks to send his order, then the stock update might happen right when the order is sent to Paypal.

 

It would be something like:

1. customer is on checkout_confirmation

2. -if the payment method is "paypal ipn" and he clicks to send his order, we call the "process_button" function from Paypal IPN -> stock update

-if the payment method is not "paypal ipn", then the process_button is not the one from Paypal IPN -> it all goes like usual with the other payment method.

 

Bang on the money - this is how the logic should work.....only problem is I am not a programmer either :P

Edited by JonoB
Link to comment
Share on other sites

JonoB and Chooch, I believe that I have at least part of the solution.

 

Here are the modifications to bring to your files to have the stock quantities updated before the order is sent to Paypal, but only if Paypal is the selected payment method. If your customer chooses another payment method, everything is as usual.

 

Note that I am not a programmer at all. I never read a book about Php and never attended a class about this either. Therefore, the code below is probably very, very rough and might break your files. It would be great if a programmer should check this and improve this "ghetto" modification.

 

Known issues:

-this will work for one language only

-if your customers refresh his browser on "checkout confirmation", or if he goes back somewhere else and comes back there, the stock will be updated several times. :(

 

Here we go:

 

1. open catalog\includes\languages\(your language)\modules\payment\paypal_ipn.php

 

 

2. find the line beginning with:

  define('MODULE_PAYMENT_PAYPAL_IPN_TEXT_TITLE',

 

note the name of your Paypal IPN module. The default is "PayPal (Credit Card / Debit)" but you can rename it.

 

 

3. open catalog\checkout_confirmation.php

 

 

4. on or around line 371, find the line:

	echo $payment_modules->process_button();

 

 

5. right before this add:

if ($order->info['payment_method'] =='Paypal') {
echo $payment_modules->stock_before_ipn();
}

 

note: if you have renamed your module in step 2, replace the "PayPal (Credit Card / Debit)" with the new name of your module

 

 

6. open catalog\includes\classes\payment.php

 

 

7. find the line:

	function before_process() {

 

 

8. right before this, add:

// stock update before payment for Paypal IPN - start
function stock_before_ipn() {
  if (is_array($this->modules)) {
	if (is_object($GLOBALS[$this->selected_module]) && ($GLOBALS[$this->selected_module]->enabled) ) {
	  return $GLOBALS[$this->selected_module]->stock_before_ipn();
	}
  }
}  
// stock update before payment for Paypal IPN - end

 

9. open \catalog\includes\modules\payment\paypal.ipn.php

 

 

10. around line 271, find:

	function process_button() {

 

 

11. right before this line, add:

// stock update before payment for Paypal IPN - start

function stock_before_ipn() {
  global $customer_id, $order, $sendto, $billto, $payment, $languages_id, $currencies, $cart, $cart_PayPal_IPN_ID;
  global $$payment;

// initialized for the email confirmation
  $products_ordered = '';
  $subtotal = 0;
  $total_tax = 0;

  for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
	if (STOCK_LIMITED == 'true') {
	  if (DOWNLOAD_ENABLED == 'true') {
		$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
							FROM " . TABLE_PRODUCTS . " p
							LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
							ON p.products_id=pa.products_id
							LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
							ON pa.products_attributes_id=pad.products_attributes_id
							WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
		$products_attributes = $order->products[$i]['attributes'];
		if (is_array($products_attributes)) {
		  $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
		}
		$stock_query = tep_db_query($stock_query_raw);
	  } else {
		$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	  }
	  if (tep_db_num_rows($stock_query) > 0) {
		$stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
		if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
		  $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
		} else {
		  $stock_left = $stock_values['products_quantity'];
		}
		tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
		  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		}
	  }
	}

// Update products_ordered (for bestsellers list)
	tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");


  }
}  

// stock update before payment for Paypal IPN - start

 

 

12. stay in paypal_ipn.php and find the line:

//------insert customer choosen option to order--------

 

 

13. above this, delete or comment the following paragraph (make sure you backed up your file):

 

// Stock Update - Joao Correia
	if (STOCK_LIMITED == 'true') {
	  if (DOWNLOAD_ENABLED == 'true') {
		$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
							FROM " . TABLE_PRODUCTS . " p
							LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
							ON p.products_id=pa.products_id
							LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
							ON pa.products_attributes_id=pad.products_attributes_id
							WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
		$products_attributes = $order->products[$i]['attributes'];
		if (is_array($products_attributes)) {
		  $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
		}
		$stock_query = tep_db_query($stock_query_raw);
	  } else {
		$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	  }
	  if (tep_db_num_rows($stock_query) > 0) {
		$stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
		if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
		  $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
		} else {
		  $stock_left = $stock_values['products_quantity'];
		}
		tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
		  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		}
	  }
	}

// Update products_ordered (for bestsellers list)
	tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

 

A last note:

I am testing my shop on a local machine (localhost), meaning that I can not receive payment confirmations from Paypal and can not test the whole process till the end. The modifications above take part of updating the stock before sending the order. However, I'd need somebody to test what happens when the customers goes all the way on Paypal and land back on OSC. I think the stock will not be updated again, but I am not sure.

 

Have fun. Hopefully somebody can improve these modifcations and help fix the issues listed above.

Link to comment
Share on other sites

(I wanted to edit the post I have just made above, but couldn't find any option to do so.)

 

I have found an easier and most efficient way to to have the stock quantities updated before the order is sent to Paypal. This method replaces the one above, you can disregard the post above this one

 

1 . open catalog\includes\modules\payment\paypal_ipn.php

 

2. find:

		  //-1.4
	  tep_db_perform(TABLE_ORDERS, $sql_data_array);
	  $insert_id = tep_db_insert_id();

 

3. adds after this:

 

//stock update before payment for Paypal IPN - start
// Stock Update - Joao Correia
  for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
	if (STOCK_LIMITED == 'true') {
	  if (DOWNLOAD_ENABLED == 'true') {
		$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
							FROM " . TABLE_PRODUCTS . " p
							LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
							ON p.products_id=pa.products_id
							LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
							ON pa.products_attributes_id=pad.products_attributes_id
							WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
		$products_attributes = $order->products[$i]['attributes'];
		if (is_array($products_attributes)) {
		  $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
		}
		$stock_query = tep_db_query($stock_query_raw);
	  } else {
		$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	  }
	  if (tep_db_num_rows($stock_query) > 0) {
		$stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
		if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
		  $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
		} else {
		  $stock_left = $stock_values['products_quantity'];
		}
		tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
		  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		}
	  }
	}

// Update products_ordered (for bestsellers list)
	tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
}
//stock update before payment for Paypal IPN - ends

 

 

4. in the same file, find:

			tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
		  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id'])

 

5. replace this by:

//			tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
//			  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

 

This should now work with all language, and even if the customer refreshes his browser on the checkout_confirmation page.

 

Known issue:

-if the customer chose some item to buy, then chose Paypal as a payment method, comes to the Checkout Confirmation page but then decide to modify his cart, the stock quantites will be updated only with what his cart contained when he first reached the Checkout Confirmation page. Maybe somebody can help to fix this

Link to comment
Share on other sites

is it wise to update stock quantities as soon checkout confirmation is selected even though stock doesn't get re-stocked if an order is not processed by paypal? i think it isn't the way forward.

 

the key would be for the stock to update the moment IPN is received by the store - in fact the exact moment should be when the order status is automatically changed as a result of the IPN, but i cannot get this to happen in my tests. it is very frustrating.... the answer is probably staring me in the face but i can't see it!

Edited by chooch

Upon receiving fixes and advice, too many people don't bother to post updates informing the forum of how it went. Until of course they need help again on other issues and they come running back!

 

Why receive the information you require in good faith for free, only to then have the attitude to ignore the people who gave it to you?

 

There's no harm in saying, 'Thanks, it worked'. On the contrary, it creates a better atmosphere.

 

CHOOCH

Link to comment
Share on other sites

the key would be for the stock to update the moment IPN is received by the store - in fact the exact moment should be when the order status is automatically changed as a result of the IPN

 

The status of the order is set to "Paypal (processing" right when the customer hits checkout_confirmation.php, and the stock update happens right at the same moment in my modification above. Both process take place at the same time.

However, if the customer then choses to change his order, his "paypal (processing)" order will get updated next time he hits checkout_confirmation, which doesn't happen yet with the stock update. This is something I will try to look into (but if somebody wants to try, she / he is very welcome :) ).

Link to comment
Share on other sites

The status of the order is set to "Paypal (processing" right when the customer hits checkout_confirmation.php, and the stock update happens right at the same moment in my modification above. Both process take place at the same time.

However, if the customer then choses to change his order, his "paypal (processing)" order will get updated next time he hits checkout_confirmation, which doesn't happen yet with the stock update. This is something I will try to look into (but if somebody wants to try, she / he is very welcome :) ).

 

the reason i made the comment was because stock doesn't get updated when any other payment contribution is used to carry the customer forward. what happesn if there are 3 items of product x in stocka and the customer adds all three and selects IPN.... the stock is reduced to 'zero' and the cuistomer may not even complete the purchase.

 

with all other payment contributions, it is checkout_process that triggers the stock reduction and customer/store order emails. as IPN bypasses this completely I but i am trying to code the ipn.php to make all those checkout_process functions happen once IPN is received.... i know it can be done because the order status is updated from processing paypal ipn to pending - it is within that 'update' function that i am experimenting.

 

However, if the customer then choses to change his order, his "paypal (processing)" order will get updated next time he hits checkout_confirmation, which doesn't happen yet with the stock update. This is something I will try to look into (but if somebody wants to try, she / he is very welcome :) ).

 

wasn't this issue fixed by windfjf? I don't have that issue since windfjf's fix

Edited by chooch

Upon receiving fixes and advice, too many people don't bother to post updates informing the forum of how it went. Until of course they need help again on other issues and they come running back!

 

Why receive the information you require in good faith for free, only to then have the attitude to ignore the people who gave it to you?

 

There's no harm in saying, 'Thanks, it worked'. On the contrary, it creates a better atmosphere.

 

CHOOCH

Link to comment
Share on other sites

with all other payment contributions, it is checkout_process that triggers the stock reduction and customer/store order emails. as IPN bypasses this completely I but i am trying to code the ipn.php to make all those checkout_process functions happen once IPN is received....

 

Wouldn't this defeat the concept of this contribution, though? The customer reaches checkout_process only when he "comes back" from Paypal. In this case, if he pays but closes his browser before coming back to the OSC site, you will get a payment but neither an order nor a stock update.

 

wasn't this issue fixed by windfjf? I don't have that issue since windfjf's fix

 

This is an issue that arised with my modification, so I don't think it's been fixed yet. :)

Link to comment
Share on other sites

I have tried to solve this, but I can't manage to do it. Therefore, it would be great if somebody can look into this.

 

1. in the modification I posted above, I moved the stock update from the before_process to the confirmation functions in paypal_ipn.

 

2. this stock update takes places only if the order is new (i.e. if $update_order = false).

 

3. I would like to update the stock as well if the order is not new (if $update_order = true). I have tried to copy the stock update code to the update order loop, but I don't manage to get the previously ordered quantities from orders_products table

 

Basically, we need a line like this one:

$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'] + quantites ordered in the previous version of the order;

 

Does anybody know how to insert the correct values for the text in red in the line above?

Link to comment
Share on other sites

When trying to install Paypal_IPN in admin panel, I get this error:

 

Fatal error: Cannot instantiate non-existent class: paypal_ipn in /home/u4/lgussack/html/osc/admin/modules.php on line 61

 

This is my line 61:

 

$module = new $class;

 

Any help with this, please???

 

Marcia

Link to comment
Share on other sites

Wouldn't this defeat the concept of this contribution, though? The customer reaches checkout_process only when he "comes back" from Paypal. In this case, if he pays but closes his browser before coming back to the OSC site, you will get a payment but neither an order nor a stock update.

I think we got our wires crossed, if you re-read my post you'll see what i was stating..

 

just to re-iterate:

 

i am trying to code the IPN function so it does all the things that are supposed to happen when any non-IPN payment module is used and returned to checkout_process....

 

..... however, with the modifications i was testing (and will return to test after the new year) i tried to make all those checkout_process functions happen at the same time IPN was received and the order was updated - buit without the need for the customer to get back to checkout process.... therefore the customer could effectively close the browser on the paypal payment page after paying and not return to the store and still have everything from order update, stock deductions, downloads usable, order copy emails to store sent, order emails to customer sent simply because the IPN was sent.

 

i hope that finally clears everything up :thumbsup:

Upon receiving fixes and advice, too many people don't bother to post updates informing the forum of how it went. Until of course they need help again on other issues and they come running back!

 

Why receive the information you require in good faith for free, only to then have the attitude to ignore the people who gave it to you?

 

There's no harm in saying, 'Thanks, it worked'. On the contrary, it creates a better atmosphere.

 

CHOOCH

Link to comment
Share on other sites

I am using version 1.4 of the PayPal IPN contribution and am trying to get osCommerce to send tax amounts to PayPal. I have installed navyhost 's patch but I still can't get tax amounts to show in PayPal

 

Is there something I need to do in my PayPal settings or is navyhost 's fix not applicable to v 1.4?

 

Thanks

Link to comment
Share on other sites

Cooch, you are right, we are trying two different things, even though both aim at getting everything right even when the customers doesn't return to the store.

 

..... however, with the modifications i was testing (and will return to test after the new year) i tried to make all those checkout_process functions happen at the same time IPN was received and the order was updated - buit without the need for the customer to get back to checkout process....

 

How do you want to do this? At which point in the process for the user would everything happen?

Link to comment
Share on other sites

I am using version 1.4 of the PayPal IPN contribution and am trying to get osCommerce to send tax amounts to PayPal. I have installed navyhost 's patch but I still can't get tax amounts to show in PayPal

 

Is there something I need to do in my PayPal settings or is navyhost 's fix not applicable to v 1.4?

 

Thanks

 

Pixelgeek, in the Oscommerce Admin, you need to go to the Modules section and edit the PayPal IPN (Credit Card / Debit) module entry. Set the "move tax to total amount" item to false. This will pass the tax amount to PayPal so it shows up separately. Verified this myself, as I had the same question. :)

Link to comment
Share on other sites

Pixelgeek, in the Oscommerce Admin, you need to go to the Modules section and edit the PayPal IPN (Credit Card / Debit) module entry. Set the "move tax to total amount" item to false. This will pass the tax amount to PayPal so it shows up separately. Verified this myself, as I had the same question. :)

 

I did that and now there is a Sales Tax entry in the PayPal Payment Information page but it has no value in it

Link to comment
Share on other sites

I did that and now there is a Sales Tax entry in the PayPal Payment Information page but it has no value in it

 

Just to follow-up on my own post (it is refusing to let me edit it...)

 

I am using the Canadian tax 1.3 Contribution to display GST and PST on the site. I have changed the settings in that module and nothing seems to work to send tax data along to PayPal.

 

Is this more an issue with the Canadian Tax contribution then?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...