When I have a zero value $0.00 item but there is a shipping value, however the amount on the paypal standards page is shown as blank - top of the page where it says total, shipping included. And you cannot log in to complete the transcation as a buyer as it says you need to enter an item higher than zero.
Surely the amount at the top should be the total including shipping whatever the item value is.

Comments

longwave’s picture

Title: Paypal ZPS not accepting zero vlue items where the cart total does have a value » Paypal WPS not accepting zero value items where the cart total does have a value

PayPal API apparently does not support zero amounts for cart items, even if you choose to charge for shipping. See https://www.x.com/thread/43314 for example.

However, if you select "submit the whole order as a single line item" in the Ubercart payment method settings, you may be able to work around this issue.

cham74’s picture

"submit the whole order as a single line item" is selected. I appreciate the WPS side not accepting zero values, but I don't get why this line at 990 creates a blank amount?
$data['amount_1'] = uc_price($order->order_total - $shipping - $tax, $context, $options);
sends nothing.

By adding a number 1 to the line I get the right amount +$1,
$data['amount_1'] = uc_price($order->order_total - $shipping - $tax +1, $context, $options);

by removing $shipping I get the total with shipping twice...

cham74’s picture

Even though I have single line item, its still split at paypal into the 0 for the object which is $0 and therefore rejected... The single line items are fees and shipping grouped together.

cham74’s picture

Status: Active » Closed (won't fix)

In my case I forced all the items including fees and discounts into the Paypal object box to make the cart total a single item and no breakdown on items or shipping and fees.
Works for us as the invoice page on the site gives a breakdown of the items, fees and shipping.
I did this by removing $shipping on line 924 to give: 'handling_cart' => uc_price($context, $options),
and on line 990 removed the - $shipping to give: $data['amount_1'] = uc_price($order->order_total - $tax, $context, $options);
Seems strange Paypal won't accept $0 for the items in the cart.. there must be other stores who end up only charging for shipping or extra fees.