Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

PayPal Express Checkout and Website Payments Pro (Official Payment Module)


PayPal_AnthonyH

Recommended Posts

Please use this thread to post VERIFIED bug reports and feature requests only on the official PayPal Express Checkout and Website Payments Pro module for osCommerce 2.2 RC2a. This thread is monitored, however specific configuration support requests should be either posted as a New Topic in the PayPal forum or directed to PayPal Merchant Technical Support at https://www.paypal.com/mts

 

The official osCommerce payment module for PayPal offers full integration with Express Checkout and Website Payments Pro via the PayPal API. This Add-On overwrites and upgrades the existing PayPal Express Checkout and Website Payments Pro modules included in osCommerce v2.2 RC2A by default.

 

Express Checkout allows you to increase sales through a fast and easy checkout experience; Website Payments Pro allows you to get an internet merchant account and payment gateway all-in-one solution at a low cost.

 

The updated payment module, designed for osCommerce Online Merchant v2.2 RC2a, and includes many new features that allow you to accept PayPal payments more easily.

 

- Website Payments Pro for US, UK, and Canada

- Express Checkout

- Recurring Payments for Website Payments Pro and Express Checkout

- Maestro/Solo for UK

- 3D Secure for UK

- Fraud Management Filters

 

Follow the instructions (INSTALLING.html inside the download) to install and configure your web store particularly if you have already customized your osCommerce store.

 

Although there are several unofficial PayPal modules for osCommerce, PayPal does not provide technical support for these versions.

 

This module is also posted on the PayPal X Developer Network website at https://www.x.com/docs/DOC-1508

 

A note for UK merchants: The Add-On is designed for PayPal merchants using Website Payments Pro and/or Express Checkout with API Signatures, this includes UK Pro merchants with accounts created after September 2008. It is not for use by merchants using Website Payments Pro (Payflow Edition) or Payflow Pro.

 

Depending on when your UK Pro account was created, this module may be compatible by switching to using API Signatures instead of the Partner, Merchant ID, Username and Password you currently use.

Link to comment
Share on other sites

  • 2 weeks later...

Hi Anthony, paypal sre threating to deactivate ipns on my account as the file rp_ipn.php was excluded from the official paypal 3d secure module.

Can you please get this file posted as an update or something soon before I get ipns taken away from my account.

Thanks

Getting better with mods but no programmer am I.

Link to comment
Share on other sites

@johnnybebad, this will be posted in the next release of the module. It was unfortunately missed in the 177 release, the release is currently in testing and should be available today or tomorrow - I will update this thread when it is available for upload.

 

Hi Anthony, paypal sre threating to deactivate ipns on my account as the file rp_ipn.php was excluded from the official paypal 3d secure module.

Can you please get this file posted as an update or something soon before I get ipns taken away from my account.

Thanks

Link to comment
Share on other sites

@johnnybebad this is now released and available at: http://addons.oscommerce.com/info/7184

 

 

Hi Anthony, paypal sre threating to deactivate ipns on my account as the file rp_ipn.php was excluded from the official paypal 3d secure module.

Can you please get this file posted as an update or something soon before I get ipns taken away from my account.

Thanks

Link to comment
Share on other sites

@johnnybebad I have zipped the file again and uploaded. Let me know if the 9th February version works: http://addons.oscommerce.com/info/7184

 

Regards,

Anthony

PayPal (UK)

 

Hi,

 

it appears theres something a drift with this, I am getting an encryption warning when I try and extract the 180 build.

 

Can you advise please.

 

Thanks

Link to comment
Share on other sites

  • 4 weeks later...

I have contacted PayPal's merchant and also Cardinal who both can not offer solutions to my problem, nor can a very experienced PHP programmer can fix this without a lot of time and cost to me.

 

Having had this mod installed and configured by an OScommerce programmer who is very experienced with php, We are having the following major problems with mod of the 8 Feb 2010 build 180. I believe it was created by a person called Anthony H who is an employed by PayPal, according to the oscommerce forum and link to the mod.

I shall be brief with the details at this time with the core problems I am having.

 

1. PayPal Express

NOT TAKING POST CHARGE

When you place and order using PayPal express you need to confirm the order on my site (this does add the postage cost) Then it goes off to PayPal when you enter your PapPal details and confirm, where it then takes you back to my store where there is then no postage charge. If you then confirm the order, and check payment received in PayPal you only receive the goods amount with out the postage.

 

2.Website Payments pro with 3D Secure Buyer Authentication via Cardinal Commerce (currently UK merchants only).

CARDINAL 3D SECURE NOT WORKING

This mod does not link into Cardinal Authentication it just acts as if it is not there and makes payment at would without it.

Cardinal have had a look at this as have stated that it is all configured correctly on the mod but it is not seeing there site.

Last email from them

It is tough because there is no osCommerce support. We have checked the module settings and it looked to be setup properly. I am not aware of the issue you were getting. There maybe a solution in the osCommerce forums.

 

Can anyone please help we have spent over 2 weeks trying to get this working and it has cost a lot of money to employ the PHP guy to work on this for us.

Link to comment
Share on other sites

1. PayPal Express

NOT TAKING POST CHARGE

When you place and order using PayPal express you need to confirm the order on my site (this does add the postage cost) Then it goes off to PayPal when you enter your PapPal details and confirm, where it then takes you back to my store where there is then no postage charge. If you then confirm the order, and check payment received in PayPal you only receive the goods amount with out the postage.

 

2.Website Payments pro with 3D Secure Buyer Authentication via Cardinal Commerce (currently UK merchants only).

CARDINAL 3D SECURE NOT WORKING

This mod does not link into Cardinal Authentication it just acts as if it is not there and makes payment at would without it.

Cardinal have had a look at this as have stated that it is all configured correctly on the mod but it is not seeing there site.

 

Hi Jonnoa,

 

Sorry to hear of your problems.

 

We are aware of some issues with the 3D-Secure authentication code within the 180 module, and I am just doing some final sanity checks before I release a new 181 modules, which I aim to be some time today.

 

I have not come across the issue with the shipping charge before, so this is something that I will need to investigate - I'll provide an update in due course.

 

Thanks,

 

Tin

Link to comment
Share on other sites

Jonnoa - we have not discovered any issue with our modules that will affect the final price of the transaction. Can you please verify that you have configured your shipping module properly?

 

There may also be a configuration issue affecting your 3D-Secure experience as well, so please double check your settings.

 

As a general update, please download and install the 181 "LITE" package, which contains fixes for some known issues with the recently implemented 3D-Secure Authentication mechanism.

 

You can find this module here: http://addons.oscommerce.com/info/7280

 

Thanks,

 

Tin

Link to comment
Share on other sites

HI,

I have now installed this twice, thinking I got something wrong…

However all of the site LOOKS Fine, I can configure the plugin in admin, however when you get to Chheckout_payment.php paypal does not appear as a method of payment ?

Odd I can't find any error in my coding, why won't it appear ?

Link to comment
Share on other sites

HI,

I have now installed this twice, thinking I got something wrong…

However all of the site LOOKS Fine, I can configure the plugin in admin, however when you get to Chheckout_payment.php paypal does not appear as a method of payment ?

Odd I can't find any error in my coding, why won't it appear ?

 

Hi Rob,

 

Apologies for the delayed response.

 

Can you please confirm what kind of base you have been working of? I.e. did you have the full 180 (or previous) modules deployed before attempting the 181 LITE install?

 

Thanks,

 

Tin

Link to comment
Share on other sites

  • 2 weeks later...

Hi

 

Just a couple of questions,

 

Do I need a Cardinal Commerce account to use this? What exactly is that for?

 

What are the differences between this module and http://addons.oscommerce.com/info/7280

Is it just the addition of Express checkout and maestro & solo cards?

 

Are there plans for installation instructions which indicate exactly what code needs to be added/removed from shops which are already heavily modified?

 

 

Thanks,

Ben

Link to comment
Share on other sites

Hi

 

Just a couple of questions,

 

Do I need a Cardinal Commerce account to use this? What exactly is that for?

 

What are the differences between this module and http://addons.oscommerce.com/info/7280

Is it just the addition of Express checkout and maestro & solo cards?

 

Are there plans for installation instructions which indicate exactly what code needs to be added/removed from shops which are already heavily modified?

 

 

Thanks,

Ben

 

Hi Ben,

 

The module that you linked to is the latest code for direct credit processing (via PayPal) only - it basically contains some fixes to the previous "full" module release. It does not make any changes to Express Checkout.

 

You don't need a Cardinal Commerce account unless you wish to use 3D Secure Authentication (which is mandatory for Maestro processing). You also don't need this module unless you have a PayPal "Pro" account, and wish to process direct card payments.

 

Thanks,

 

Tin

Link to comment
Share on other sites

Hi Tin

 

Thanks for your reply.

 

So I only need that additional fix if I wish to process maestro cards, and I assume 3D secure can help act against chargebacks etc.

 

I think I heard somewhere that the full module does not accept American Express, is this correct?

 

Do you have this full module working with any discount or coupon/voucher contributions?

 

 

Thanks,

Ben

Link to comment
Share on other sites

Please use this thread to post VERIFIED bug reports and feature requests only on the official PayPal Express Checkout and Website Payments Pro module for osCommerce 2.2 RC2a. This thread is monitored, however specific configuration support requests should be either posted as a New Topic in the PayPal forum or directed to PayPal Merchant Technical Support at https://www.paypal.com/mts

 

Anthony, thanks for this contribution. I was wondering if you had a document that showed me what extra code was added to each page in order to get this contribution up and running. The reason being that I have version rc2a but I have made a quite a few modifications, which makes it a bit difficult to work out what code needs to be added.

 

Hope you can help, thanks in advance.

Link to comment
Share on other sites

Hi Tin

 

Thanks for your reply.

 

So I only need that additional fix if I wish to process maestro cards, and I assume 3D secure can help act against chargebacks etc.

 

I think I heard somewhere that the full module does not accept American Express, is this correct?

 

Do you have this full module working with any discount or coupon/voucher contributions?

 

 

Thanks,

Ben

 

Hi Ben,

 

Apologies for the delayed response.

 

In a manner of speaking, yes, the 181 LITE module will fix things in 180, which will allow you to use 3D-Secure with PayPal for direct card payments - this applies to ALL cards, but at the moment, Maestro is the only mandatory card.

 

You can still accept Maestro via the PayPal Express Checkout and Standard flows, without worrying about 3D Secure.

 

In regards to AMEX - UK PayPal Pro currently does NOT support AMEX for direct card payments, but it IS possible to pay with AMEX via the PayPal EC and Standard flows.

 

aftabn10 - we are working on some better documentation and a generally easier installation method, so please bear with us.

 

Thanks,

 

Tin

Link to comment
Share on other sites

  • 2 weeks later...

i have a template, i need some assistance with code on catalog/checkout_confirmation.php.

 

the contribution code is

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
     <tr>
       <td>
<?php
 if (isset($$payment->form_action_url)) {
   $form_action_url = $$payment->form_action_url;
 } else {
   $form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
 }

 echo tep_draw_form('checkout_confirmation', $form_action_url, 'post');
?>
       <table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_confirmation.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
<?php
 if ($sendto != false) {
?>
           <td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td class="main"><?php echo '<b>' . HEADING_DELIVERY_ADDRESS . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
             </tr>
             <tr>
               <td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br>'); ?></td>
             </tr>
<?php
   if ($order->info['shipping_method']) {
?>
             <tr>
               <td class="main"><?php echo '<b>' . HEADING_SHIPPING_METHOD . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
             </tr>
             <tr>
               <td class="main"><?php echo $order->info['shipping_method']; ?></td>
             </tr>
<?php
   }
?>
           </table></td>
<?php
 }
?>
           <td width="<?php echo (($sendto != false) ? '70%' : '100%'); ?>" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
             <tr>
               <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 if (sizeof($order->info['tax_groups']) > 1) {
?>
                 <tr>
                   <td class="main" colspan="2"><?php echo '<b>' . HEADING_PRODUCTS . '</b> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
                   <td class="smallText" align="right"><b><?php echo HEADING_TAX; ?></b></td>
                   <td class="smallText" align="right"><b><?php echo HEADING_TOTAL; ?></b></td>
                 </tr>
<?php
 } else {
?>
                 <tr>
                   <td class="main" colspan="3"><?php echo '<b>' . HEADING_PRODUCTS . '</b> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
                 </tr>
<?php
 }

 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
   echo '          <tr>' . "\n" .
        '            <td class="main" align="right" valign="top" width="30">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .
        '            <td class="main" valign="top">' . $order->products[$i]['name'];

   if (STOCK_CHECK == 'true') {
     echo tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty']);
   }
   /**
    * START
    * PayPal Recurring Payments
    *
    * adding recurrig payments product information if it exists
    */
   if(count($order->products[$i]['rp'])>0){
       include_once(DIR_WS_CLASSES . '/paypal_rp_product_info.php');
       $rpPprice = $currencies->display_price($order->products[$i]['rp']['amt'], tep_get_tax_rate($order->products[$i]['tax_class_id']));
       $rpPinfo = new paypal_rp_product_info($order->products[$i], $order->products[$i]['rp'], $rpPprice);
       $rpPInfoArr = $rpPinfo->getProductInfoFull();
       if(array_key_exists('trial', $rpPInfoArr)){
           print '<br><nobr><small> <i>' . $rpPInfoArr['trial'] . '</i></small></nobr>';
       }
       print '<br><nobr><small> <i>' . $rpPInfoArr['normal'] . '</i></small></nobr>';
   }
   /**
    * END
    * PayPal Recurring Payments
    */
   if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
     for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
       echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . '</i></small></nobr>';
     }
   }

   echo '</td>' . "\n";

   if (sizeof($order->info['tax_groups']) > 1) echo '            <td class="main" valign="top" align="right">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n";

   echo '            <td class="main" align="right" valign="top">' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '</td>' . "\n" .
        '          </tr>' . "\n";
 }

 

the code its trying to replace in my original file is

<body style="margin:0px">
<?php 
$inc_file = basename(__FILE__); 
require(DIR_WS_INCLUDES .'theme/main_theme.php');

 

i know the "theme" part is in relation to my template, can anyone please advise as to how i should change this code?

 

Thanks in advance!

Link to comment
Share on other sites

i was on a roll comparing and changing files, now two in a row.

 

along with the above, this is #2 -- catalog/checkout_payment.php

 

contribution code

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><?php echo tep_draw_form('checkout_payment', tep_href_link(FILENAME_CHECKOUT_CONFIRMATION, '', 'SSL'), 'post', 'onsubmit="return check_form();"'); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_payment.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 if (isset($HTTP_GET_VARS['payment_error']) && is_object(${$HTTP_GET_VARS['payment_error']}) && ($error = ${$HTTP_GET_VARS['payment_error']}->get_error())) {
?>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td class="main"><b><?php echo tep_output_string_protected($error['title']); ?></b></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBoxNotice">
         <tr class="infoBoxNoticeContents">
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               <td class="main" width="100%" valign="top"><?php echo tep_output_string_protected($error['error']); ?></td>
               <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 }
?>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td class="main"><b><?php echo TABLE_HEADING_BILLING_ADDRESS; ?></b></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               <td class="main" width="50%" valign="top"><?php echo TEXT_SELECTED_BILLING_DESTINATION; ?><br><br><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL') . '">' . tep_image_button('button_change_address.gif', IMAGE_BUTTON_CHANGE_ADDRESS) . '</a>'; ?></td>
               <td align="right" width="50%" valign="top"><table border="0" cellspacing="0" cellpadding="2">
                 <tr>
                   <td class="main" align="center" valign="top"><b><?php echo TITLE_BILLING_ADDRESS; ?></b><br><?php echo tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif'); ?></td>
                   <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                   <td class="main" valign="top"><?php echo tep_address_label($customer_id, $billto, true, ' ', '<br>'); ?></td>
                   <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                 </tr>
               </table></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td class="main"><b><?php echo TABLE_HEADING_PAYMENT_METHOD; ?></b></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 $selection = $payment_modules->selection();
   /**
    * START
    * PayPal Recurring Payments
    *
    * verify that the modules are allowed for this checkout
    */
   if($allowedCheckoutModuleArr){
       foreach ($selection as $key => $arr){
           if(!in_array($arr['id'], $allowedCheckoutModuleArr)){
               unset($selection[$key]);
           }
       }
   }
   $selection = array_values($selection);
   /**
    * END
    * PayPal Recurring Payments
    */
 if (sizeof($selection) > 1) {

 

my original code, that it wants to replace

<body style="margin:0px">
<?php 
$inc_file = basename(__FILE__); 
require(DIR_WS_INCLUDES .'theme/main_theme.php');

 

Thanks again!!

Link to comment
Share on other sites

#3, hopefully this is the last one, i only have one file left to compare and change. this one is catalog/product_info.php

 

 

contribution code

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
<?php
 if ($product_check['total'] < 1) {
?>
     <tr>
       <td><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
         <tr class="infoBoxContents">
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
               <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
             </tr>
           </table></td>
         </tr>
       </table></td>
     </tr>
<?php
 } else {
     // added products_type
   $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id, p.products_type from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
   $product_info = tep_db_fetch_array($product_info_query);

   tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

   // see if rp product
   $rp_has_trial = false;
   if($product_info['products_type'] == 'recurring'){
       // recurring product
     $rp_array = array();
     $rp_product_query = tep_db_query('SELECT billingPeriod, billingFrequency, totalBillingCycles, trialBillingPeriod, trialBillingFrequency, trialTotalBillingCycles, trialAmt FROM ' . TABLE_RP_PAYPAL_PRODUCT_PROFILE . ' WHERE products_id=' . (int)$HTTP_GET_VARS['products_id']);
     if($rp_product = tep_db_fetch_array($rp_product_query)){
       // recurring data
        $rp_array = $rp_product;
        if(strlen($rp_product['trialBillingPeriod'])>0){
            $rp_has_trial = true;
        }
     }
   }
   if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
     $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
   } else {
     $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
   }

   if (tep_not_null($product_info['products_model'])) {
     $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>';
   } else {
     $products_name = $product_info['products_name'];
   }
   // rp addition here
   if(count($rp_array)>0){
        include_once(DIR_WS_CLASSES . '/paypal_rp_product_info.php');
        $rpPinfo = new paypal_rp_product_info($product_info, $rp_array, $products_price);
        $rpPinfoHeaderArr = $rpPinfo->getProductInfoHeader();
        $rpPInfoArr = $rpPinfo->getProductInfoFull();
   }
?>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading" valign="top"><?php echo $products_name; ?></td>
           <?php
           if(count($rp_array)>0 and $rp_has_trial){
           // rp with trial
           ?>
           <td class="pageHeading" align="right" valign="top"><?php echo $rpPinfoHeaderArr['trial']; ?><br><?php print $rpPinfoHeaderArr['normal'];?></td>
           <?php
           // rp no trial
           }elseif (count($rp_array)>0){
           ?>
           <td class="pageHeading" align="right" valign="top"><?php print $rpPinfoHeaderArr['normal']; ?></td>
           <?php
           }else{
           // standard product
           ?>
           <td class="pageHeading" align="right" valign="top"><?php echo $products_price; ?></td>
           <?php
           }
           ?>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="main">
<?php
   if (tep_not_null($product_info['products_image'])) {
?>
         <table border="0" cellspacing="0" cellpadding="2" align="right">
           <tr>
             <td align="center" class="smallText">
<script language="javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');
//--></script>
<noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>
</noscript>
             </td>
           </tr>
         </table>
<?php
   }

 

my code that it wants to replace

<body style="margin:0px">
<?php 
$inc_file = basename(__FILE__); 
require(DIR_WS_INCLUDES .'theme/main_theme.php');

Link to comment
Share on other sites

ok here is #4, the last one though!! not bad out of 20 or so files to be changed. I can ssume three of them are because of my theme, so hopefully one of you guys or gals can give an easy quick answer. :D

 

this file is catalog/shopping_cart.php

 

contribution code is

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
   <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_cart.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 if ($cart->count_contents() > 0) {
?>
     <tr>
       <td>
<?php
   $info_box_contents = array();
   $info_box_contents[0][] = array('align' => 'center',
                                   'params' => 'class="productListing-heading"',
                                   'text' => TABLE_HEADING_REMOVE);

   $info_box_contents[0][] = array('params' => 'class="productListing-heading"',
                                   'text' => TABLE_HEADING_PRODUCTS);

   $info_box_contents[0][] = array('align' => 'center',
                                   'params' => 'class="productListing-heading"',
                                   'text' => TABLE_HEADING_QUANTITY);

   $info_box_contents[0][] = array('align' => 'right',
                                   'params' => 'class="productListing-heading"',
                                   'text' => TABLE_HEADING_TOTAL);

   $any_out_of_stock = 0;
   $products = $cart->get_products();
   for ($i=0, $n=sizeof($products); $i<$n; $i++) {
// Push all attributes information in an array
     if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
       while (list($option, $value) = each($products[$i]['attributes'])) {
         echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value);
         $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix
                                     from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                                     where pa.products_id = '" . (int)$products[$i]['id'] . "'
                                      and pa.options_id = '" . (int)$option . "'
                                      and pa.options_id = popt.products_options_id
                                      and pa.options_values_id = '" . (int)$value . "'
                                      and pa.options_values_id = poval.products_options_values_id
                                      and popt.language_id = '" . (int)$languages_id . "'
                                      and poval.language_id = '" . (int)$languages_id . "'");
         $attributes_values = tep_db_fetch_array($attributes);

         $products[$i][$option]['products_options_name'] = $attributes_values['products_options_name'];
         $products[$i][$option]['options_values_id'] = $value;
         $products[$i][$option]['products_options_values_name'] = $attributes_values['products_options_values_name'];
         $products[$i][$option]['options_values_price'] = $attributes_values['options_values_price'];
         $products[$i][$option]['price_prefix'] = $attributes_values['price_prefix'];
       }
     }
   }

   for ($i=0, $n=sizeof($products); $i<$n; $i++) {
     if (($i/2) == floor($i/2)) {
       $info_box_contents[] = array('params' => 'class="productListing-even"');
     } else {
       $info_box_contents[] = array('params' => 'class="productListing-odd"');
     }

     $cur_row = sizeof($info_box_contents) - 1;

     $info_box_contents[$cur_row][] = array('align' => 'center',
                                            'params' => 'class="productListing-data" valign="top"',
                                            'text' => tep_draw_checkbox_field('cart_delete[]', $products[$i]['id']));

     $products_name = '<table border="0" cellspacing="2" cellpadding="2">' .
                      '  <tr>' .
                      '    <td class="productListing-data" align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>' .
                      '    <td class="productListing-data" valign="top"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '"><b>' . $products[$i]['name'] . '</b></a>';

     if (STOCK_CHECK == 'true') {
       $stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity']);
       if (tep_not_null($stock_check)) {
         $any_out_of_stock = 1;

         $products_name .= $stock_check;
       }
     }

     if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
       reset($products[$i]['attributes']);
       while (list($option, $value) = each($products[$i]['attributes'])) {
         $products_name .= '<br><small><i> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</i></small>';
       }
     }
// rp extra display data for shopping cart
     if(count($products[$i]['rp']) > 0){
         // include the product display class
         include_once(DIR_WS_CLASSES . '/paypal_rp_product_info.php');
         $rpPprice = $currencies->display_price($products[$i]['rp']['amt'], tep_get_tax_rate($products[$i]['tax_class_id']));
         $rpPinfo = new paypal_rp_product_info($products[$i], $products[$i]['rp'], $rpPprice);
         $rpPinfoArr = $rpPinfo->getProductInfoFull();
         if(array_key_exists('trial', $rpPinfoArr)){
             $products_name .= '<br><small><i>'. $rpPinfoArr['trial'] . '</i></small>';
         }
         $products_name .= '<br><small><i>' . $rpPinfoArr['normal'] . '</i></small>';
     }
     $products_name .= '    </td>' .
                       '  </tr>' .
                       '</table>';

     $info_box_contents[$cur_row][] = array('params' => 'class="productListing-data"',
                                            'text' => $products_name);

         $info_box_contents[$cur_row][] = array('align' => 'center',
                                                'params' => 'class="productListing-data" valign="top"',
                                                'text' => tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']));
     //}
     $info_box_contents[$cur_row][] = array('align' => 'right',
                                            'params' => 'class="productListing-data" valign="top"',
                                            'text' => '<b>' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</b>');
   }

   new productListingBox($info_box_contents);

 

my original code that it wants to replace is

<body style="margin:0px">
<?php 
$inc_file = basename(__FILE__); 
require(DIR_WS_INCLUDES .'theme/main_theme.php');

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...