News:

Support the VirtueMart project and become a member

Main Menu

[TRACKER # 1505] PayPal and empty shopping cart

Started by aravot, October 19, 2007, 03:58:34 AM

Previous topic - Next topic

Soeren

Coming back to this...
I have this piece of code, which is your version, but actually I added
"no_shipping" => 1
and $dbbt->f('email') to $dbbt->f('user_email'), which is the real email field.

If we agree on this piece of code, I will update it in SVN.

<?php
$db1 
= new ps_DB();
$q "SELECT country_2_code FROM joom_vm_country WHERE country_3_code='".$user->country."' ORDER BY country_2_code ASC";
$db1->query($q);

$url "https://www.paypal.com/cgi-bin/webscr";
$tax_total $db->f("order_tax") + $db->f("order_shipping_tax");
$discount_total $db->f("coupon_discount") + $db->f("order_discount");
$post_variables = Array(
"cmd" => "_ext-enter",
"redirect_cmd" => "_xclick",
"upload" => "1",
"business" => PAYPAL_EMAIL,
"receiver_email" => PAYPAL_EMAIL,
"item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": "$db->f("order_id"),
"order_id" => $db->f("order_id"),
"invoice" => $db->f("order_number"),
"amount" => round$db->f("order_subtotal")+$tax_total-$discount_total2),
"shipping" => sprintf("%.2f"$db->f("order_shipping")),
"currency_code" => $_SESSION['vendor_currency'],

"address_override" => "1",
"first_name" => $dbbt->f('first_name'),
"last_name" => $dbbt->f('last_name'),
"address1" => $dbbt->f('address_1'),
"address2" => $dbbt->f('address_2'),
"address_zip" => $dbbt->f('zip'),
"address_city" => $dbbt->f('city'),
"address_state" => $dbbt->f('state'),
"address_country" => $db1->f('country_2_code'),
"email" => $dbbt->f('user_email'),
"night_phone_b" => $dbbt->f('phone_1'),
"cpp_header_image" => $vendor_image_url,

"return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"),
"notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php",
"cancel_return" => SECUREURL ."index.php",
"undefined_quantity" => "0",

"test_ipn" => PAYPAL_DEBUG,
"pal" => "NRUBJXESJTY24",
"no_shipping" => "1",
"no_note" => "1"
);
if( 
$page == "checkout.thankyou" ) {
$query_string "?";
foreach( $post_variables as $name => $value ) {
$query_string .= $name"=" urlencode($value) ."&";
}
vmRedirect$url $query_string );
} else {
echo '<form action="'.$url.'" method="post" target="_blank">';
echo '<input type="image" name="submit" src="https://www.paypal.com/en_US/i/btn/x-click-but6.gif" border="0" alt="Click to pay with PayPal - it is fast, free and secure!" />';

foreach( 
$post_variables as $name => $value ) {
echo '<input type="hidden" name="'.$name.'" value="'.$value.'" />';
}
echo 
'</form>';

}
?>


ciao, Sören
The future of eCommerce: VirtueMart & Joomla!
http://virtuemart.net

Mike Sturmey

Hi, I have just tried your script but I get:
Fatal error: Call to undefined function: vmredirect() in /home/cinnabar/public_html/mydomain/administrator/components/com_virtuemart/html/checkout.thankyou.php(83) : eval()'d code on line 50.

I have also tried Scotts script but the country / code  and state is not passed to Paypal - all other fields however seem to be - the customer has to select their country from the drop down list - any ideas? - I am using Paypal Australia

regards

Mike

patrik60

I just checked this script:
When using this

"address_zip" => $dbbt->f('zip'),
"address_city" => $dbbt->f('city'),


I get an empty zip and city field at paypal. For me works better:


"zip" => $dbbt->f('zip'),
"city" => $dbbt->f('city'),


Would it also be possible to show order items instead of order number at the paypal site?

Patrik