Jump to content
GabrielGallardo

You must specify one shipping option type as the default.

Recommended Posts

(before anything else, apologies for any error in my english)

 

Hi everyone!

 

My name is Gabriel Gallardo. I am web designer and I am taking my first steps on Oscommerce.

 

I can´t fix one bug on Paypal Express Checkout module included in Oscommerce installation. The paypal payment process can not be completed in some case and paypal return the error "You must specify one shipping option type as the default.". The error code is 11823 and you can view here:

https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_errorcodes

 

 

The bug occurs pressing the "continue" button on checkout_payment.php if the selected shipping method is the zone rates module (zones.php, included in Oscommerce installation) and the delivery address has the option of use a delivery point of Mondial Relay on checkout_shipping.php. No errors when I have selected Mondial relay as shipping method or the shipping address has no Mondial Relay option.

 

In case is relevant , I increased the zone numbers in the zones.php module.

 

In paypal_express.php, the before_process method generates the $params array that contain the shipping information that is used in the sendTransactionToGateway method. But I can´t see the "shipping default option" element inside the array. I´m blocked here.

 

function before_process() {
 global $customer_id, $order, $sendto, $ppe_token, $ppe_payerid, $HTTP_POST_VARS, $comments, $response_array;
 if (empty($comments)) {
 if (isset($HTTP_POST_VARS['ppecomments']) && tep_not_null($HTTP_POST_VARS['ppecomments'])) {
	 $comments = tep_db_prepare_input($HTTP_POST_VARS['ppecomments']);		 $order->info['comments'] = $comments;
 }
 }
 $params = array('TOKEN' => $ppe_token,
				 'PAYERID' => $ppe_payerid,
				 'AMT' => $this->format_raw($order->info['total']),
				 'CURRENCYCODE' => $order->info['currency']);	 if (is_numeric($sendto) && ($sendto > 0)) {
 $params['SHIPTONAME'] = $order->delivery['firstname'] . ' ' . $order->delivery['lastname'];
 $params['SHIPTOSTREET'] = $order->delivery['street_address'];
 $params['SHIPTOCITY'] = $order->delivery['city'];
 $params['SHIPTOSTATE'] = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['state']);
 $params['SHIPTOCOUNTRYCODE'] = $order->delivery['country']['iso_code_2'];
 $params['SHIPTOZIP'] = $order->delivery['postcode'];
 }
 $response_array = $this->doExpressCheckoutPayment($params);	 if (($response_array['ACK'] != 'Success') && ($response_array['ACK'] != 'SuccessWithWarning')) {
 tep_redirect(tep_href_link(FILENAME_SHOPPING_CART, 'error_message=' . stripslashes($response_array['L_LONGMESSAGE0']), 'SSL'));
 }
}

 

 

My Oscommerce installation:

Oscommerce 2.3.3 on VPS Centos.

Automatic Oscommerce installation by Plesk.

Addons: zone.php, Mondial Relay, Seo Url 5, Linnks Manager II, one slideshow, Paypal Express Checkout

 

Thanks in advance.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×