Egonz26 Posted May 20, 2009 Share Posted May 20, 2009 Hello. I was trying to install the affiliate contribution to oscommerce. I have used a store template from this site and I am not sure how to finish the install. I have installed all the files in the zip folders, but the modifications to the index file I have not been able to complete. Can someone help me? If you can, the following is my index.php: <?php /* $Id: index.php 1739 2007-12-20 00:52:16Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); // the following cPath references come from application_top.php $category_depth = 'top'; if (isset($cPath) && tep_not_null($cPath)) { $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $cateqories_products = tep_db_fetch_array($categories_products_query); if ($cateqories_products['total'] > 0) { $category_depth = 'products'; // display products } else { $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'"); $category_parent = tep_db_fetch_array($category_parent_query); if ($category_parent['total'] > 0) { $category_depth = 'nested'; // navigate through the categories } else { $category_depth = 'products'; // category has no products, but display the 'no products' message } } } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <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="0" cellpadding="0"> <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 //--> <?php if ($category_depth == 'nested') { $category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'"); $category = tep_db_fetch_array($category_query); ?> <td width="100%" valign="top"><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 . $category['categories_image'], $category['categories_name'], 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="0" cellpadding="2"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <?php if (isset($cPath) && strpos('_', $cPath)) { // check to see if there are deeper categories within the current category $category_links = array_reverse($cPath_array); for($i=0, $n=sizeof($category_links); $i<$n; $i++) { $categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'"); $categories = tep_db_fetch_array($categories_query); if ($categories['total'] < 1) { // do nothing, go through the loop } else { $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name"); break; // we've found the deepest category the customer is in } } } else { $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name"); } $number_of_categories = tep_db_num_rows($categories_query); $rows = 0; while ($categories = tep_db_fetch_array($categories_query)) { $rows++; $cPath_new = tep_get_path($categories['categories_id']); echo ' <td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n"; if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) { echo ' </tr>' . "\n"; echo ' <tr>' . "\n"; } } // needed for the new products module shown below $new_products_category_id = $current_category_id; ?> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td> </tr> </table></td> </tr> </table></td> <?php } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) { // create column list $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL, 'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME, 'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER, 'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE, 'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY, 'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT, 'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE, 'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW); asort($define_list); $column_list = array(); reset($define_list); while (list($key, $value) = each($define_list)) { if ($value > 0) $column_list[] = $key; } $select_column_list = ''; for ($i=0, $n=sizeof($column_list); $i<$n; $i++) { switch ($column_list[$i]) { case 'PRODUCT_LIST_MODEL': $select_column_list .= 'p.products_model, '; break; case 'PRODUCT_LIST_NAME': $select_column_list .= 'pd.products_name, '; break; case 'PRODUCT_LIST_MANUFACTURER': $select_column_list .= 'm.manufacturers_name, '; break; case 'PRODUCT_LIST_QUANTITY': $select_column_list .= 'p.products_quantity, '; break; case 'PRODUCT_LIST_IMAGE': $select_column_list .= 'p.products_image, '; break; case 'PRODUCT_LIST_WEIGHT': $select_column_list .= 'p.products_weight, '; break; } } // show the products of a specified manufacturer if (isset($HTTP_GET_VARS['manufacturers_id'])) { if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) { // We are asked to show only a specific category $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'"; } else { // We show them all $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"; } } else { // show the products in a given categorie if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) { // We are asked to show only specific catgeory $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; } else { // We show them all $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; } } if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('^[1-8][ad]$', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) { for ($i=0, $n=sizeof($column_list); $i<$n; $i++) { if ($column_list[$i] == 'PRODUCT_LIST_NAME') { $HTTP_GET_VARS['sort'] = $i+1 . 'a'; $listing_sql .= " order by pd.products_name"; break; } } } else { $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1); $sort_order = substr($HTTP_GET_VARS['sort'], 1); switch ($column_list[$sort_col-1]) { case 'PRODUCT_LIST_MODEL': $listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_NAME': $listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : ''); break; case 'PRODUCT_LIST_MANUFACTURER': $listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_QUANTITY': $listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_IMAGE': $listing_sql .= " order by pd.products_name"; break; case 'PRODUCT_LIST_WEIGHT': $listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_PRICE': $listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; } } ?> <td width="100%" valign="top"><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> <?php // optional Product List Filter if (PRODUCT_LIST_FILTER > 0) { if (isset($HTTP_GET_VARS['manufacturers_id'])) { $filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name"; } else { $filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name"; } $filterlist_query = tep_db_query($filterlist_sql); if (tep_db_num_rows($filterlist_query) > 1) { echo ' <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . ' '; if (isset($HTTP_GET_VARS['manufacturers_id'])) { echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']); $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES)); } else { echo tep_draw_hidden_field('cPath', $cPath); $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS)); } echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']); while ($filterlist = tep_db_fetch_array($filterlist_query)) { $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']); } echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"'); echo tep_hide_session_id() . '</form></td>' . "\n"; } } // Get the right image for the top-right $image = DIR_WS_IMAGES . 'table_background_list.gif'; if (isset($HTTP_GET_VARS['manufacturers_id'])) { $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); $image = tep_db_fetch_array($image); $image = $image['manufacturers_image']; } elseif ($current_category_id) { $image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $image = tep_db_fetch_array($image); $image = $image['categories_image']; } ?> <td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, 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><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td> </tr> </table></td> <?php } else { // default page ?> <td width="100%" valign="top"><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_default.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="0" cellpadding="0"> <tr> <td class="main"><?php echo tep_customer_greeting(); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_MAIN; ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '4'); ?></td> </tr> <?php include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS); ?> </table></td> </tr> </table></td> <?php } ?> <!-- body_text_eof //--> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> The following is the instructions: --------------------------------------------------------------------------------------------------------------------- ******** TO INSTALL ********** NEW INSTALLATIONS ONLY (FOR UPGRADES SEE THE INCLUDED FILE NAMED UPGRADE_ENG.txt) Upload all files to corresponding folders of your osCommerce site. You must also perform a few manual alterations to your osCommerce files: THERE ARE affiliate_configure.php files in the catalog/includes and admin/includes folders -> look at them !!! Read the FAQ ******** IT IS STRONGLY SUGGESTED TO MAKE A BACK-UP OF THESE FILES FIRST ********** MySQL ALTERATIONS Insert the new tables found in the affiliate.sql file into your osCommerce catalog database. CATALOG ALTERATIONS In application_top.php in the catalog/includes directory enter at the end of the file before ?>: // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_application_top.php'); In checkout_process.php in the catalog directory find line // load the after_process function from the payment modules $payment_modules->after_process(); and insert before it // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_checkout_process.php'); In catalog/includes/column_left.php (or whereever you want the box) find if ( (USE_CACHE == 'true') && !SID) { echo tep_cache_categories_box(); } else { include(DIR_WS_BOXES . 'categories.php'); } if ( (USE_CACHE == 'true') && !SID) { echo tep_cache_manufacturers_box(); } else { include(DIR_WS_BOXES . 'manufacturers.php'); } and on a new line add this after it: require(DIR_WS_BOXES . 'affiliate.php'); ################################################################################ ################################## ADMIN ALTERATIONS In index.php in the admin directory find line 13 approx require('includes/application_top.php'); and on a new line add the following code after it: require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); In index.php in the admin directory find line 50 approx array('title' => REPORTS_ORDERS, 'link' => tep_href_link(FILENAME_STATS_CUSTOMERS, 'selected_box=reports')))), and on a new line add the following code after it: array('title' => BOX_HEADING_AFFILIATE, 'image' => 'affiliate.gif', 'href' => tep_href_link(FILENAME_AFFILIATE_SUMMARY, 'selected_box=affiliate'), 'children' => array(array('title' => BOX_AFFILIATE, 'link' => tep_href_link(FILENAME_AFFILIATE, 'selected_box=affiliate')), array('title' => BOX_AFFILIATE_BANNERS, 'link' => tep_href_link(FILENAME_AFFILIATE_BANNERS, 'selected_box=affiliate')))), In index.php in the admin directory find line 106 approx <td width="140" valign="top"><table border="0" width="140" height="390" cellspacing="0" cellpadding="2"> and replace that line with the following code : <td width="160" valign="top"><table border="0" width="160" height="390" cellspacing="0" cellpadding="2"> In index.php in the admin directory find lines 167 to 173 approx $contents[] = array('params' => 'class="infoBox"', 'text' => BOX_ENTRY_CUSTOMERS . ' ' . $customers['count'] . '<br>' . BOX_ENTRY_PRODUCTS . ' ' . $products['count'] . '<br>' . BOX_ENTRY_REVIEWS . ' ' . $reviews['count']); $box = new box; echo $box->menuBox($heading, $contents); echo '<br>'; and on a new line add the following code after it: $affiliate_sales_raw = "select count(*) as count, sum(affiliate_value) as total, sum(affiliate_payment) as payment from " . TABLE_AFFILIATE_SALES . " "; $affiliate_sales_query= tep_db_query($affiliate_sales_raw); $affiliate_sales= tep_db_fetch_array($affiliate_sales_query); $affiliate_clickthroughs_raw = "select count(*) as count from " . TABLE_AFFILIATE_CLICKTHROUGHS . " "; $affiliate_clickthroughs_query=tep_db_query($affiliate_clickthroughs_raw); $affiliate_clickthroughs= tep_db_fetch_array($affiliate_clickthroughs_query); $affiliate_clickthroughs=$affiliate_clickthroughs['count']; $affiliate_transactions=$affiliate_sales['count']; if ($affiliate_transactions>0) { $affiliate_conversions = tep_round($affiliate_transactions/$affiliate_clickthroughs,6)."%"; } else $affiliate_conversions="n/a"; $affiliate_amount=$affiliate_sales['total']; if ($affiliate_transactions>0) { $affiliate_average=tep_round($affiliate_amount/$affiliate_transactions,2); } else { $affiliate_average="n/a"; } $affiliate_commission=$affiliate_sales['payment']; $affiliates_raw = "select count(*) as count from " . TABLE_AFFILIATE . ""; $affiliates_raw_query=tep_db_query($affiliates_raw); $affiliates_raw = tep_db_fetch_array($affiliates_raw_query); $affiliate_number= $affiliates_raw['count']; $heading = array(); $contents = array(); $heading[] = array('params' => 'class="menuBoxHeading"', 'text' => BOX_TITLE_AFFILIATES); $contents[] = array('params' => 'class="infoBox"', 'text' => BOX_ENTRY_AFFILIATES . ' ' . $affiliate_number . '<br>' . BOX_ENTRY_CONVERSION . ' ' . $affiliate_conversions . '<br>' . BOX_ENTRY_COMMISSION . ' ' . $currencies->display_price($affiliate_commission, '')); $box = new box; echo $box->menuBox($heading, $contents); echo '<br>'; In application_top.php in the admin/includes enter at the end of the file before ?>: // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_application_top.php'); In column_left.php in the admin/includes directory find line 19 approx require(DIR_WS_BOXES . 'reports.php'); and on a new line add this after it: require(DIR_WS_BOXES . 'affiliate.php'); Install: catalog/product_info.php After: <?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> Add: <br><br> <?php //affiliate build a link begin if (tep_session_is_registered('affiliate_id')) { ?> <?php echo '<a href="' . tep_href_link(FILENAME_AFFILIATE_BANNERS_BUILD, 'individual_banner_id=' . $product_info['products_id']) .'" target="_self">' . tep_image('includes/languages/english/images/buttons/button_affiliate_build_a_link.gif', 'Make a link') . ' </a>'; ?><?php } //affiliate build a link begin ?> FILENAMES.PHP in CATALOG ADD define('FILENAME_CATEGORIES_INFO', 'index.php'); Back up your files first! To combine the two, open /includes/modules/payment/paypal_ipn.php ********************************************* Find this code around line 83: function confirmation() { global $cartID, $cart_PayPal_IPN_ID, $customer_id, $languages_id, $insert_id, $order, $order_total_modules; directly below add this code: global $affiliate_ref, $affiliate_clientdate, $affiliate_clientbrowser, $affiliate_clientip, $affiliate_clickthroughs_id, $HTTP_SESSION_VARS; ********************************************* Find this code around line 250: $cart_PayPal_IPN_ID = $cartID . '-' . $insert_id; tep_session_register('cart_PayPal_IPN_ID'); } } return false; } and change to: $cart_PayPal_IPN_ID = $cartID . '-' . $insert_id; tep_session_register('cart_PayPal_IPN_ID'); } } // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_checkout_process.php'); return false; } ********************************************* ******** TO USE THIS MODULE ********** All you will need to do is go into your stores admin and select the store configuration section. You will find a tab under this section called Affiliate Configuration. Select this tab and and set up your basic info such as affiliate rate percent, contact email etc. Then move into the Affiliate Section of your store's admin and setup Banners, Links etc. Taxes: It's possible to use taxes on the affiliate provision. At the moment you can adjust the settings in the affiliate_configure.php file located in the admin/includes/ folder. Please tell us, if you handle the taxes for provisions in an other way at your country. ******** IT IS STRONGLY SUGGESTED TO MAKE A BACK-UP OF THESE FILES FIRST ********** ******** BUGS ********** If you find any bugs please report them at http://sourceforge.net/projects/oscaffiliate or at the osCommerce Support Site ******** DEVELOPERS ********** Henri Schmidhuber IN-Solution http://www.in-solution.de (Developer, Project Manager) Donate via paypal: https://www.paypal.com/xclick/business=henr...0in-solution.de Amazon.de Wishlist: http://www.amazon.de/exec/obidos/wishlist/EQKIUJPZ63E2 Steve Kemp Snowtech Services http://www.snowtech.com.au (Developer) Donate via paypal: https://www.paypal.com/xclick/business=info...pinehosting.net ******** CREDITS ********** Credit to everyone that has inspired us in the development of this evolving module for osCommerce. Thank You very Much for your time Link to comment Share on other sites More sharing options...
Egonz26 Posted May 20, 2009 Author Share Posted May 20, 2009 The instructions are as follows: --------------------------------------------------------------------------------------------------------------------- ******** TO INSTALL ********** NEW INSTALLATIONS ONLY (FOR UPGRADES SEE THE INCLUDED FILE NAMED UPGRADE_ENG.txt) Upload all files to corresponding folders of your osCommerce site. You must also perform a few manual alterations to your osCommerce files: THERE ARE affiliate_configure.php files in the catalog/includes and admin/includes folders -> look at them !!! Read the FAQ ******** IT IS STRONGLY SUGGESTED TO MAKE A BACK-UP OF THESE FILES FIRST ********** MySQL ALTERATIONS Insert the new tables found in the affiliate.sql file into your osCommerce catalog database. CATALOG ALTERATIONS In application_top.php in the catalog/includes directory enter at the end of the file before ?>: // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_application_top.php'); In checkout_process.php in the catalog directory find line // load the after_process function from the payment modules $payment_modules->after_process(); and insert before it // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_checkout_process.php'); In catalog/includes/column_left.php (or whereever you want the box) find if ( (USE_CACHE == 'true') && !SID) { echo tep_cache_categories_box(); } else { include(DIR_WS_BOXES . 'categories.php'); } if ( (USE_CACHE == 'true') && !SID) { echo tep_cache_manufacturers_box(); } else { include(DIR_WS_BOXES . 'manufacturers.php'); } and on a new line add this after it: require(DIR_WS_BOXES . 'affiliate.php'); ################################################################################ ################################## ADMIN ALTERATIONS In index.php in the admin directory find line 13 approx require('includes/application_top.php'); and on a new line add the following code after it: require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); In index.php in the admin directory find line 50 approx array('title' => REPORTS_ORDERS, 'link' => tep_href_link(FILENAME_STATS_CUSTOMERS, 'selected_box=reports')))), and on a new line add the following code after it: array('title' => BOX_HEADING_AFFILIATE, 'image' => 'affiliate.gif', 'href' => tep_href_link(FILENAME_AFFILIATE_SUMMARY, 'selected_box=affiliate'), 'children' => array(array('title' => BOX_AFFILIATE, 'link' => tep_href_link(FILENAME_AFFILIATE, 'selected_box=affiliate')), array('title' => BOX_AFFILIATE_BANNERS, 'link' => tep_href_link(FILENAME_AFFILIATE_BANNERS, 'selected_box=affiliate')))), In index.php in the admin directory find line 106 approx <td width="140" valign="top"><table border="0" width="140" height="390" cellspacing="0" cellpadding="2"> and replace that line with the following code : <td width="160" valign="top"><table border="0" width="160" height="390" cellspacing="0" cellpadding="2"> In index.php in the admin directory find lines 167 to 173 approx $contents[] = array('params' => 'class="infoBox"', 'text' => BOX_ENTRY_CUSTOMERS . ' ' . $customers['count'] . '<br>' . BOX_ENTRY_PRODUCTS . ' ' . $products['count'] . '<br>' . BOX_ENTRY_REVIEWS . ' ' . $reviews['count']); $box = new box; echo $box->menuBox($heading, $contents); echo '<br>'; and on a new line add the following code after it: $affiliate_sales_raw = "select count(*) as count, sum(affiliate_value) as total, sum(affiliate_payment) as payment from " . TABLE_AFFILIATE_SALES . " "; $affiliate_sales_query= tep_db_query($affiliate_sales_raw); $affiliate_sales= tep_db_fetch_array($affiliate_sales_query); $affiliate_clickthroughs_raw = "select count(*) as count from " . TABLE_AFFILIATE_CLICKTHROUGHS . " "; $affiliate_clickthroughs_query=tep_db_query($affiliate_clickthroughs_raw); $affiliate_clickthroughs= tep_db_fetch_array($affiliate_clickthroughs_query); $affiliate_clickthroughs=$affiliate_clickthroughs['count']; $affiliate_transactions=$affiliate_sales['count']; if ($affiliate_transactions>0) { $affiliate_conversions = tep_round($affiliate_transactions/$affiliate_clickthroughs,6)."%"; } else $affiliate_conversions="n/a"; $affiliate_amount=$affiliate_sales['total']; if ($affiliate_transactions>0) { $affiliate_average=tep_round($affiliate_amount/$affiliate_transactions,2); } else { $affiliate_average="n/a"; } $affiliate_commission=$affiliate_sales['payment']; $affiliates_raw = "select count(*) as count from " . TABLE_AFFILIATE . ""; $affiliates_raw_query=tep_db_query($affiliates_raw); $affiliates_raw = tep_db_fetch_array($affiliates_raw_query); $affiliate_number= $affiliates_raw['count']; $heading = array(); $contents = array(); $heading[] = array('params' => 'class="menuBoxHeading"', 'text' => BOX_TITLE_AFFILIATES); $contents[] = array('params' => 'class="infoBox"', 'text' => BOX_ENTRY_AFFILIATES . ' ' . $affiliate_number . '<br>' . BOX_ENTRY_CONVERSION . ' ' . $affiliate_conversions . '<br>' . BOX_ENTRY_COMMISSION . ' ' . $currencies->display_price($affiliate_commission, '')); $box = new box; echo $box->menuBox($heading, $contents); echo '<br>'; In application_top.php in the admin/includes enter at the end of the file before ?>: // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_application_top.php'); In column_left.php in the admin/includes directory find line 19 approx require(DIR_WS_BOXES . 'reports.php'); and on a new line add this after it: require(DIR_WS_BOXES . 'affiliate.php'); Install: catalog/product_info.php After: <?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> Add: <br><br> <?php //affiliate build a link begin if (tep_session_is_registered('affiliate_id')) { ?> <?php echo '<a href="' . tep_href_link(FILENAME_AFFILIATE_BANNERS_BUILD, 'individual_banner_id=' . $product_info['products_id']) .'" target="_self">' . tep_image('includes/languages/english/images/buttons/button_affiliate_build_a_link.gif', 'Make a link') . ' </a>'; ?><?php } //affiliate build a link begin ?> FILENAMES.PHP in CATALOG ADD define('FILENAME_CATEGORIES_INFO', 'index.php'); Back up your files first! To combine the two, open /includes/modules/payment/paypal_ipn.php ********************************************* Find this code around line 83: function confirmation() { global $cartID, $cart_PayPal_IPN_ID, $customer_id, $languages_id, $insert_id, $order, $order_total_modules; directly below add this code: global $affiliate_ref, $affiliate_clientdate, $affiliate_clientbrowser, $affiliate_clientip, $affiliate_clickthroughs_id, $HTTP_SESSION_VARS; ********************************************* Find this code around line 250: $cart_PayPal_IPN_ID = $cartID . '-' . $insert_id; tep_session_register('cart_PayPal_IPN_ID'); } } return false; } and change to: $cart_PayPal_IPN_ID = $cartID . '-' . $insert_id; tep_session_register('cart_PayPal_IPN_ID'); } } // Include OSC-AFFILIATE require(DIR_WS_INCLUDES . 'affiliate_checkout_process.php'); return false; } ********************************************* ******** TO USE THIS MODULE ********** All you will need to do is go into your stores admin and select the store configuration section. You will find a tab under this section called Affiliate Configuration. Select this tab and and set up your basic info such as affiliate rate percent, contact email etc. Then move into the Affiliate Section of your store's admin and setup Banners, Links etc. Taxes: It's possible to use taxes on the affiliate provision. At the moment you can adjust the settings in the affiliate_configure.php file located in the admin/includes/ folder. Please tell us, if you handle the taxes for provisions in an other way at your country. ******** IT IS STRONGLY SUGGESTED TO MAKE A BACK-UP OF THESE FILES FIRST ********** ******** BUGS ********** If you find any bugs please report them at http://sourceforge.net/projects/oscaffiliate or at the osCommerce Support Site ******** DEVELOPERS ********** Henri Schmidhuber IN-Solution http://www.in-solution.de (Developer, Project Manager) Donate via paypal: https://www.paypal.com/xclick/business=henr...0in-solution.de Amazon.de Wishlist: http://www.amazon.de/exec/obidos/wishlist/EQKIUJPZ63E2 Steve Kemp Snowtech Services http://www.snowtech.com.au (Developer) Donate via paypal: https://www.paypal.com/xclick/business=info...pinehosting.net ******** CREDITS ********** Credit to everyone that has inspired us in the development of this evolving module for osCommerce. Thank You very Much for your time Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.