Latest News: (loading..)

Daddyslipdisk

Members
  • Content count

    63
  • Joined

  • Last visited

2 Followers

About Daddyslipdisk

  • Birthday 11/18/1968

Profile Information

  1. While disabling the line of code that verifies the address is a way around, that's not how to deal with this problem unless you're okay with sending products to unverified addresses and eating revenue. I just figured out that the reason why this error occurs can be caused by two things. 1) In the Admin area > Customer Details > State must be set to True. 2) Use a REAL address. Paypal is verifying the address before taking payment and it will fail if the address you're testing with is incorrect. This was my problem when running a test. I put in an address of 1234 Main Street, Fakeplace, GA 12345 and Paypal rejected it because it wasn't a valid address. Once I put in my real address, the error went away.
  2. I have no idea how that link does what it does. It was like watching a little movie where I watched you search for something and then the links were actually clickable on the results page. That was very bizarre. You have to tell me how you did that. Secondly, thanks. I didn't search for the right combination of words I guess. I dug around the Add On area forever. I should always go to Google even for onsite stuff. Still tripping on that link. Thanks again.
  3. We sell some ramps and in some cases there are a dozen sizes of a specific ramp. It doesn't make sense to set up 12 separate pages for each ramp size, but it appears to be my only option. I want to have just one ramp page where they choose the size from a drop down box. But then I would like the weight to change. A 2 foot ramp only costs about $20 to ship, but a 6 foot costs over $50. Is there any add-on that will allow you to add a weight differential based on the attribute? So if they choose a 6 foot ramp, it not only changes the price (like the basic OSC does), but also adds weight to the item so that shipping charges get calculated correctly?
  4. Well it's not right. The original one with the template has breadcrumbs and everything else, but if I have to handle it this way, that may be alright. Here is the code for the EXISTING template (not the one in denuz contribution); <?php /* $Id: product_info.php,v 1.97 2003/07/01 14:34:54 hpdl Exp $ 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'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); $product_check_query = tep_db_query("select count(*) as total 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_check = tep_db_fetch_array($product_check_query); ?> <!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"> <script language="javascript"><!-- function popupWindow(url) { window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,res izable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,le ft=150') } //--></script> </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 class="col_left"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </td> <!-- body_text //--> <td width="100%" class="col_center"><?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> <? tep_draw_heading_top(); ?> <?php echo tep_draw_title_top();?> <?php echo TEXT_PRODUCT_NOT_FOUND;?> <?php echo tep_draw_title_bottom();?> <? tep_draw_heading_top_1(); ?> <!-- <table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td> --> <br style="line-height:1px;"><br style="line-height:12px;"> <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> --> <? tep_draw_heading_bottom_1(); ?> <? tep_draw_heading_bottom(); ?> <?php } else { $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 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 . "'"); 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']; } ?> <tr> <td> <? tep_draw_heading_top(); ?> <?php echo tep_draw_title_top();?> <?php echo $breadcrumb->trail(' » ')?> <?php echo tep_draw_title_bottom();?> <? tep_draw_heading_top_1(); ?> <? tep_draw_heading_top_2(); ?> <?php if (tep_not_null($product_info['products_image'])) { ?> <table cellspacing="0" cellpadding="0" border="0" class="product"> <tr><td> <table cellspacing="0" cellpadding="0" border="0"> <tr><td height="100%"> <table cellpadding="0" cellspacing="0" border="0" align="left" class="prod_info" style=" margin-right:15px;"> <tr><td class="pic" align="center"> <br style="line-height:1px;"><br style="line-height:9px;"> <?php echo tep_draw_prod_top();?> <script language="javascript"><!-- document.write('<?php echo '<a href="java script: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, ' style="margin:0px 0px 0px 0px;"') . ''; ?>'); //--></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, ' style="margin:0px 0px 0px 0px;"') . ''; ?> </noscript> <?php echo tep_draw_prod_bottom();?> </td></tr> <tr><td align="center"> <script language="javascript"><!-- document.write('<?php echo '<div><a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . TEXT_CLICK_TO_ENLARGE . '</a></div>'; ?>'); //--></script> <noscript> <?php echo '<div><a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank"><br style="line-height:7px">' . TEXT_CLICK_TO_ENLARGE . '</a></div>'; ?> </noscript> </td></tr> </table> <table cellpadding="0" cellspacing="0" border="0" style="width:170px;"> <tr><td style="vertical-align:middle; height:38px;"><em><?php echo $products_name; ?></em></td></tr> </table> <div class="padd3"><?php echo stripslashes($product_info['products_description']); ?> <br><br style="line-height:11px"><span class="productSpecialPrice"><?=$products_price?></span></div> </td></tr> </table> </td> </tr> </table> <?php } ?> <? tep_draw_heading_bottom_2(); ?> <table cellspacing="0" cellpadding="0" border="0" align="center" style="margin:15px 0px 15px 0px; height:1px;"> <tr><td class="bg_gg_1"><?php echo tep_draw_separator('spacer.gif', '1', '1');?></td></tr> </table> <? tep_draw_heading_top_2();?> <?php $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { ?> <table cellpadding="0" cellspacing="0" class="box_width_cont product"> <tr><td height="25" colspan="2"><strong><?php echo TEXT_PRODUCT_OPTIONS; ?></strong></td></tr> <?php $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } } if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) { $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]; } else { $selected_attribute = false; } ?> <tr> <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td> <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br> <!-- denuz products text attributes --> <?php $text_attributes_query = tep_db_query("select pta.*, cbta.products_text_attributes_text from products_text_attributes as pta, products_text_attributes_enabled as ptae, customers_basket_text_attributes as cbta where ptae.products_text_attributes_id = pta.products_text_attributes_id and ptae.products_id = " . tep_get_prid($HTTP_GET_VARS['products_id']) . " and cbta.products_text_attributes_id = pta.products_text_attributes_id and cbta.session_id = '" . tep_session_id() . "'"); if (tep_db_num_rows($text_attributes_query) == 0) $text_attributes_query = tep_db_query("select pta.* from products_text_attributes as pta, products_text_attributes_enabled as ptae where ptae.products_text_attributes_id = pta.products_text_attributes_id and ptae.products_id = " . tep_get_prid($HTTP_GET_VARS['products_id'])); while ($text_attributes = tep_db_fetch_array($text_attributes_query)) { ?> <br> <?php echo $text_attributes['products_text_attributes_name'] . ': ' . tep_draw_input_field('products_text_attributes_' . $text_attributes['products_text_attributes_id'], tep_not_null($text_attributes['products_text_attributes_text']) ? $text_attributes['products_text_attributes_text'] : ''); ?> <?php } ?> <!-- eof denuz products text attributes --> </td> </tr> <tr><td height="10" colspan="2"></td></tr> <?php } ?> </table> <?php } ?> <?php $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); $reviews = tep_db_fetch_array($reviews_query); if ($reviews['count'] > 0) { ?> <table cellpadding="0" cellspacing="0" class="product box_width_cont"> <tr><td class="line_h"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td></tr> <tr><td height="17"></td></tr> </table> <?php } if (tep_not_null($product_info['products_url'])) { ?> <table cellpadding="0" cellspacing="0" class="product box_width_cont"> <tr><td class="line_h"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td></tr> <tr><td height="17"></td></tr> </table> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <table cellpadding="0" cellspacing="0" class="product box_width_cont"> <tr><td class="line_h"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td></tr> <tr><td height="17"></td></tr> </table> <?php } else { ?> <table cellpadding="0" cellspacing="0" class="product box_width_cont"> <tr><td class="line_h"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td></tr> <tr><td height="17"></td></tr> </table> <?php } ?> <!-- <table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"><td> --> <table border="0" width="100%" cellspacing="0" cellpadding="0" class="product box_width_cont"> <tr> <td class="main bg_input"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?><?php echo tep_draw_separator('spacer.gif', '15', '1'); ?><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_add_to_cart1.gif', IMAGE_BUTTON_IN_CART); ?></td> </tr> </table><br style="line-height:1px;"><br style="line-height:10px;"> <!-- </td></tr> </table> --> <? tep_draw_heading_bottom_2();?> <? tep_draw_heading_bottom_1(); ?> <?php tep_draw_heading_bottom();?> <?php if ((USE_CACHE == 'true') && empty($SID)) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table></form></td> <!-- body_text_eof //--> <td class="col_right"> <!-- right_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?> <!-- right_navigation_eof //--> </td> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--></body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
  5. so maybe someone can help me here so I don't kill myself trying to find this. If the product_info.php appears to work okay with the template with this contribution BUT the product info area is like half as wide as it should be, where is that setting. The template is staying in place fine, but just that area of the page where the description is is 50% narrower than it should be. Where does that get fixed to widen that to double what it is now?
  6. Yep, that puts those fields in there, but obviously it's all squinched up because the template doesn't match. Which means in essence that there's more to just plopping that code in place on the product_info.php. Now I'll need to look it over line by line to see what's really different about these two files besides the block of code I'm supposed to drop in.
  7. Added a "personalization" field to the Text Attributes area, added to to both http://www.theknottedrainbow.com/product_i...products_id/170 and http://www.theknottedrainbow.com/product_i...products_id/177 and it still isn't displaying those fields. I also checked the products_info.php file and verified the denuz code block was there. Re-entered it. Still nothing.
  8. Ok, I am SOO glad that this topic exists for this contribution. I have installed the contribution for a client of mine that is using a modified template at theknottedrainbow.com. All of the files existed and the lines of code where I manually placed all of the "denuz" code were there also, so placement was relatively easy. So it is all installed and working in the backend, but not the front side. I went into the admin area, checkmarked the default "Name" and "Date" fields for the text attribute fields in the product editing area, previewed it (but it wasn't showing there) and clicked Update. In the Admin area, the Text Attributes menu selection IS there and you can add/edit/delete fields. When you go to edit a product, the fields are there with the checkmark boxes and you CAN checkmark them. HOWEVER, when you view the product on the site, the product description is there, but the fields are not. If you add the product to your cart, it shows in the shopping cart with "Name" and "Date" shown below the product name. And those fields carry over to the invoice, receipts, etc fine. But again, there's no way for the customer to actually put something in those fields NOR do they even see those fields when viewing the product. I verified that the code is in the product_info page and it is, so there obviously is just something broken or not right. The only modification (after the fact) I made to the code on that page was to remove the table tags (i.e. - td, tr) since that did not match up with the modified template, so I just removed those thinking that maybe that was the issue was that those rows and columns were conflicting with the layout and the fields were displaying off page or something bizarre, but removing the table tags didn't fix the issue either. Any help would be appreciated. The products where the text attributes were activated are at http://www.theknottedrainbow.com/product_i.../products_id/44 and also http://www.theknottedrainbow.com/product_i...products_id/177. Any thoughts?
  9. I've installed EasyPopulate for a client in his store at www.belowcheap.com. It works fine using the configure.php script below. But there's a couple things going on. First, he's installed a osc template that changes the format of the store, so it's not the standard layout. The second issue is that he installed the store 2 directories deep into belowcheap.com/brandnew/osc and the Admin area is in belowcheap.com/brandnew/osc/wyco. So both the catalog and admin folders have been renamed to osc and wyco respectively. The format stayed in place for the store and EP works fine, but when you click on anything in the store, it tries to go to URL's that don't appear to be defined. For instance, if you're in the store and click on one of the Manufacturers, it tries to go to the following address: http://belowcheap.comdir_ws_http_catalogproduct_info.php As you can see, dir_ws_http_catalog doesn't appear to be defined for some reason. I tried adding a definition as you'll see below for both WS and FS, but it's still doing the same thing. Is this dir_ws_http_catalog defined somewhere else or am I missing something? Basically, how do I fix this problem? Here's the configure.php file that's in the catalog/admin/includes directory (osc/wyco/includes in his case): <?php /* osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ // Define the webserver and path parameters // * DIR_FS_* = Filesystem directories (local/physical) // * DIR_WS_* = Webserver directories (virtual/URL) define('HTTP_SERVER', 'http://belowcheap.com'); // eg, http://localhost - should not be empty for productive servers define('HTTP_CATALOG_SERVER', 'http://belowcheap.com'); define('HTTPS_CATALOG_SERVER', 'https://belowcheap.com'); define('ENABLE_SSL_CATALOG', 'false'); // secure webserver for catalog module define('DIR_FS_DOCUMENT_ROOT', '/home/below/public_html/brandnew/'); // where the pages are located on the server define('DIR_WS_ADMIN', '/brandnew/osc/wyco/'); // absolute path required define('DIR_FS_ADMIN', '/home/below/public_html/brandnew/osc/wyco/'); // absolute pate required define('DIR_WS_CATALOG', '/brandnew/osc/'); // absolute path required define('DIR_FS_CATALOG', '/home/below/public_html/brandnew/osc/'); // absolute path required define('DIR_WS_HTTP_CATALOG', '/brandnew/osc/'); // absolute path required define('DIR_FS_HTTP_CATALOG', '/home/below/public_html/brandnew/osc/'); // absolute path required define('DIR_WS_IMAGES', 'images/'); define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/'); define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/'); define('DIR_WS_INCLUDES', 'includes/'); define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/'); define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/'); define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/'); define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/'); define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/'); define('DIR_WS_CATALOG_LANGUAGES', DIR_WS_CATALOG . 'includes/languages/'); define('DIR_FS_CATALOG_LANGUAGES', DIR_FS_CATALOG . 'includes/languages/'); define('DIR_FS_CATALOG_IMAGES', DIR_FS_CATALOG . 'images/'); define('DIR_FS_CATALOG_MODULES', DIR_FS_CATALOG . 'includes/modules/'); define('DIR_FS_BACKUP', DIR_FS_ADMIN . 'backups/'); // define our database connection define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty for productive servers define('DB_SERVER_USERNAME', 'below_osc1'); define('DB_SERVER_PASSWORD', '8{JR7T58ve35'); define('DB_DATABASE', 'below_osc1'); define('USE_PCONNECT', 'false'); // use persisstent connections? define('STORE_SESSIONS', 'mysql'); // leave empty '' for default handler or set to 'mysql' ?>
  10. There are 2 sections to this long diatribe. The first is a handholding walkthrough of the osCommerce Admin area. Many folks get it installed and have no idea what to do next or what each area does. This documentation is desgned to help answer some of those questions for the basic functions. The second section is a re-release of the popular Easy Populate Addendum. I still get emails thanking me for this document way over a year after its release, so I'm re-releasing it for a new generation of people who are pulling their hair out importing wth EP. Enjoy. ******************************************** OsCommerce Storefront Walkthrough from Chris Horton of Horton Web Design Note: If you don't want to deal with installing or setting up the osCommerce software or just need help in importing products via EasyPopulate and were hoping for someone to simply do it for you, refer to the end of this document for contact information for our installation services. But this document is for people who like their hands held and would rather do it themselves. This is NOT designed to promote my business, but to add additional documentation for these great pieces of software. Enjoy! This document does not cover the installation of the store because this assumes that the store has already been installed and now you just want to be able to do things like add products, delete products, set up product attributes, etc. We're going to discuss the Admin area only, not the general store. The other part of this is that this document won't cover EVERYTHING since it's simply designed to give you the basics and that's about it. So without further ado……. ************************************* To start, the storefront can be downloaded and supported by osCommerce (www.oscommerce.com) and is a phenomenal open source program. They have a HUGE support forum for it at http://forums.oscommerce.com where you can get add-ons to change the way your store looks, change the colors of it, import mass amounts of products, add components like UPS shipping capabilities, tricky pricing adjustments and more. So basically if you want your store to have a certain feature that's not included in the basic storefront, you will most definitely find it there in the Contributions area. But PLEASE NOTE: Any adjustments or changes you make with any add-ons or contributions to the storefront are at your own risk! Your web developer/programmer will most likely NOT fix something you mess up by tinkering around with coding or layouts. If you find a add-on or contribution you like, send them the web address to it and they'll let you know how much it will cost for them to install it for you. Now on to the basics. When we install and set up a store for our clients, we leave it at the default directory of www.yourdomainname.com/catalog (or .org, .net, etc.). Check with the person who installed yours if that directory is not correct. This is the address where people will browse your store, buy things, add and remove things from their cart and pay for their items. They will be given a username and password when they sign in and they can use that login each time they visit to avoid entering the same info over and over again. Logging In The area that we’ll be talking about though is at www.yourdomainname.com/catalog/admin/. It will prompt you for a username and password and you can just use the one you were provided by your website administrator to login. If you've forgotten it, email your website admin and they’ll make sure you get the proper login info. Now You're Logged In Now that you’re logged in, you’ll see a table that will offer you a huge variety of options asking for you to “Choose An Option”. With exception to the osCommerce side menu on the left, they will all take you to the same screen no matter which one you choose with the item you chose opened. So at this point, let’s start by clicking the word “Configuration” right under where it says “Choose An Option”. If it prompts you again for your login info, go ahead and enter them again. On all of these options from here on out, if you have any questions about a specific item, just click to highlight the item that you’re wondering about and it will tell you what it does on the right hand side. Then if you decide you want to change it, click the Edit button, make the changes and then click the Save or Insert button. If you’re not sure, it’s probably best not to touch it. Just ask us and we’ll tell you in layman terms what it does. Again, we’re just covering the basics. If you only want to know about adding, editing, deleting products, etc, scroll down to the section called “Catalog”. It’s best to follow along step by step as we move from section to section. Configuration Under Configuration you’ll find about 14 selections. Here’s what each one does. • My Store – This area allows you to enter general information about your store that the visitor will see such as mailing address, phone number, Store name, etc. All of this should be self explanatory. The items you probably don’t want to mess with are the Search Engine Friendly URL’s area because it really causes issues sometimes and the search engines are doing a great job at finding stuff anyway even without this. • Minimum/Maximum Values – This is pretty basic stuff. For instance, if the minimum value is set to 2 on the Last Name and a visitor registers, the last name they put in must be at least 2 characters long or it will give them an error. There are also maximum values too, but that’s pretty much how it works. The only thing different is where it says “Best Sellers”, “Also Purchased”, etc. This doesn’t refer to characters. This refers to how many of those products will be shown in your store. So for instance in that Best Seller window on your store Home Page, it will only show one product at a time in this window unless you change this number to 2 or 3. Best bet is to leave it alone. Maximum values deals a lot with these types of settings, so again, if you have questions, click on the item and it will tell you what it does on the right hand side. Then click Edit if you want to change it. • Images – Ok. This one is very tricky. This is where you indicate the image sizes as they appear in your store in the various areas. In a perfect world, all the pictures that you upload would be a perfect square like 200 x 200, but yeah, that’s not going to happen. When you upload a picture, it could be one of a few typical sizes, but if you cropped, edited, resized or got the photo from somewhere else, it could one of a million different sizes. By default, when you add products, the store tries to resize the image down from the standard 800 x 600, 640 x 480, 1024 x 768, etc. Those are typical sizes. But if the image is not a typical size, then the picture will appear distorted in your store until the visitor clicks the image to see the full size photo. These settings allow you to tinker with those settings by allowing you to tell the store what dimensions to resize the photo to. You can also remove these dimensions altogether and it will always show the full size image everywhere in the store. That’s not suggested since that means when people are just browsing, the full size photo appears in even the standard table listing which could throw off you entire layout. So tinker with it and find the best setting possible or upload small photos only and remove the settings altogether so that it appears exactly how it’s supposed to without any distortion. • Customer Details – This area simply gives you the option to ask the visitor for information that’s not typically asked for with an online store like Gender, Suburb, etc. If you want to get that info from them, here’s where you do that. • Shipping & Packaging – This area is self explanatory. If you plan to use the USPS, zone based or UPS add-on’s or ANY shipping add-ons that will calculate the shipping cost from your zip code to the buyers zip code, you need to set these correctly. Enter your zip code, the heaviest you’ll ship, if it’ll cost more for items over that max weight, etc. But your shipping cost calculations will be wrong if the areas in this section are not right. • Product Listing – This area regulates what and how much product info the visitor sees. Some people turn off the manufacturer to avoid the buyer bypassing the seller and going direct to the manufacturer to buy. If that’s an issue for you, then you probably want to turn that off. It’s not too clear here, but basically it’s 0 for disable and 1 for enable to turn these features on or off. • Stock – Stock is a useful feature. If you have limited supplies, you can choose to have the store control your stock. If you say you have 5 of a product, then once those 5 are sold, it marks the product as Out Of Stock and won’t allow the buyer to buy any more or you can also opt to let them go ahead and pay for the items even if the stock can’t meet their order. You can also have it alert you when the stock is low. Change all of that here. Be aware that if you have a brick and mortar store also, you may have to keep an eye on stock sold from there and how that affects these numbers. • Logging and Cache – These 2 areas allow you to either log everything that happens in the store or alternately save it in cache memory. The logging part is fine and can serve as a useful tool when you’re trying to figure out what’s going on with your store, but leave the cache option to false, because it causes all types of strange things to happen like mysterious old store menu selections and other weird happenings unless you regularly clear the cache in Cache Control under Tools. • Email Options – Unless you’re familiar with the different email sending methods, formats and some of the geeky things that happen in the background with email, then just leave this at the default. Your website administrator will change this if the emails are not going through or if you’re having problems. • Download – This area is pretty neat. If you plan to sell MP3’s, audio files or some type of downloadable content like documents or whatever, enabling the download features will let you do that. The customer will buy the item, the store will take payment, and then give them the option to download the file from a special URL. You can also regulate how many downloads they’re allowed per purchase, when the download expires and more. • GZip Compression & Sessions – Yeah, don’t even touch these unless you know what they are. Leave that to your website admin. Catalog (Adding, Editing, Deleting Products Oh My!) Yes, it’s the area we’ve all been waiting for. I should have saved this for last because there are 6 more headers after this one. But here we are. This area is where you’ll add products, categories, attributes, delete, set pricing, descriptions and so much more. Deep breath and here we go: • Categories/Products – This is a MAJOR section of the admin area. This is where it all happens. In this area, you’ll see two buttons on the right called New Category and New Product. Click New Category to create a new category and New Product to create a new product. Duh. So the first thing you need to do is click New Category and create all of the categories you plan to have in the store. Then click on the folder icon on the left of the category name to open that category and THEN click the New Product button to add the product into that category. Or you can add another category to create a sub-category like for instance having the category of Shirts and then sub-categories under that called Womens, Mens, etc. There’s really no limits to category levels, but don’t make it frustrating for the customer. The point of this is to make sure that you’re inside of the category you want the product to be posted in before clicking the New Product button. Just play with it some. When you create a Category, you’ll have an option to upload a picture for that category. If you don’t upload one, then it will just show the little folder icon. But once you’re done, you can edit it, delete it or even move it. Just highlight the category you want to change and then the appropriate button. Or click the picture of the folder to the left of the category name to open that category to add products or subcategories. Adding products is a tad trickier. When you click Add Product, you’re going to see a BUNCH of fields available to you. Here’s what each field means that you’ll see when adding a “New Product” o In Stock/Out of Stock – If it’s something that’s not in stock yet, choose out of stock or in stock if it’s available now. o Date Available – By default if you leave this blank it will post the product into the store as soon as you save it. But if you want the product to appear in the store in the future, just put the date its available here and the store will not show that product until the date you specify. o Products Manufacturer – We haven’t covered this part yet, but there is a manufacturer’s area we’ll discuss in a little bit where you can indicate manufacturer names. After you enter those names in that area, those names become available here to choose from the drop down box. This will help you if you plan to let the customer search for products by manufacturer. o Products Name – Put the product name here. o Tax Class – With internet sales (mostly or until the laws change), you do not have to pay taxes on items sold online unless the buyer resides in the same state as the seller. This differs from state to state, so don’t go by this here. But you would indicate here whether an item is taxable or not. If it is taxable, set that here. And that doesn’t mean that it will charge tax every time, but only when it falls within the guidelines that you set up in Locations/Taxes area that we haven’t talked about yet. o Products Price (Net and gross) – Input the price for the item in the Net column and your cost in the Gross column. It will automatically fill in the Gross area for you based on some strange percentage scale. I typically just leave it alone since I don’t want my costs indicated anywhere in the logs anyway just in case. o Products description – Put the description of the product here. The problem here is that even if you make it look all pretty, it will put it into one ugly run on paragraph unless you use html tags. Posting html tags here to show you examples doesn't work too ell, because these pages just go ahead and translate them as actual tags. So I've moved the quick html lesson to www.hortonwebdesign.com/lesson.htm. View it there. o Products Quantity – If you plan to use the stock control option of the store we described earlier where it shows the item as out of stock when the stock is depleted, put how many you have of this product here. o Products Model – Put the products model number or part number here. o Products Image – Click the Browse button to upload the photo of the image. Just remember what we talked about with the images above. o Products URL – If you have another website where people can find more detailed info about the product, put that site address here. o Products Weight – Put the products weight here if you plan for the store to calculate shipping based on the weight of the product. Make sure it’s the packaged shipping weight. And once you’re done, click Preview to see what your masterpiece will look like to visitors. If you like it, click Insert. If not, click Back and fix it or Cancel to forget it ever happened. • Products Attributes Products Attributes is a confusing section, so I’ll keep the description minimal to avoid confusing the issue. There are 3 sections to this area which are Product Options, Option values, and the Product Attributes. The first thing to state is that you can’t use this area until you’ve entered products into the Products area above because you attach an attribute to a specific product. Let’s use an example like a shirt. Let’s say you’ve entered the shirt as a product in the Categories/Product area above. Now let’s say that the shirt comes in various sizes and colors. Size would be one attribute of the shirt and color would be another, so you’d have to set up 2 separate attributes for that product. The first thing you’d do under Product Options is put the word Color in the field that says “en:”. En stands for English. If your website is available in multiple languages there will be more fields here. But we typically remove any other languages for our clients, so there should be only that one field that says en: and I’ll proceed assuming that’s all that you’re seeing as well even though you may see more. We’ll talk about removing the other languages later. Once you put the word Color in that field, click Insert and it will create that option. Do this again for Size and insert that also. The next thing is Option Values. Go over to the right side under Option values, use the drop down box and find the Option you just created (color or size). Once selected, you then enter the value. Let’s say you’ve chosen “Size” from the drop down box. You’d then enter Small, Medium or Large in the Option value field and click Insert. Once you’ve created all of your options and values, we can move onto the Attributes area at the bottom. In the Attributes area, choose the product these values are for in the first column, the option name in the second column, ad then the option value in the third. So in our example, we’d choose Shirt, then Size, then Large. There are 2 columns after that called Value Price and Prefix. If you’re just providing the options for a customer to choose and there’s no price difference when they choose that option, you’ll leave the next 2 columns alone and just click Insert. Then you’ll do this for each option value (small, medium, large, etc.). BUT if that option choice increases or decreases the base price, then that’s different. You would put the dollar amount change in the Value Price and a + sign for an increase in price or a – for a decrease in price. So if the shirt is $10, but $12 if the shirt is large, you would put a 2.00 in the value price field for a large shirt and a + sign to show that $2 will be added to the base price for that item. In some cases you’ll want to leave the price at 0.00 when you’re entering the product into the store (In the Categories/Products area) and then put the full cost of the product in this Attributes area based on which choice they choose. We’ve done that before on several occasions because sometimes product pricing can change widely based on which products or options they choose. • Manufacturers Very simply, you enter the various manufacturers of the products you carry here. Click Insert to add a manufacturer name and logo image and then save it. Then when you add products to the store, you’ll be able to choose that manufacturer from the drop down box in that field. • Reviews There will be nothing in this area if no reviews have been posted. When customers login to the store, they can then post a review about a product they purchased. This area simply lets you edit or delete any reviews that may have been posted. • Specials If you’d like to offer special pricing on a product, you can do that here. Click New Product, choose the product from the drop down box, enter the new pricing and then the date that the pricing is good until and click Insert. When that date arrives, it will remove the special pricing. • Products Expected Products Expected keeps track of items that are about to become part of your inventory if you indicated that the product was going to become available at a later date when you were entering the product. Modules Ok, now that we’re done with the long part. Now we can move onto modules. • Payment – In the Payment module area, they offer a wide variety of payment options that will be presented to the customer once they’re done shopping. We’re going to cover these out of order from most popular to the ones you probably won’t use. By default it will offer you about a dozen selections and only 3 of which are the most widely used. The BIGGEST thing to keep in mind is that ALL of the options you install will be available to the customer. So if it’s got a 0 in the Sort Order column, that option will appear for them. Multiple payment options are good. o PayPal – With PayPal you’ll need to set up a Business account with PayPal first at www.paypal.com. This is free to do, but you’ll need to give them personal info and then they’ll ask for your bank account info. Once they have that, they will make 2 small deposits into your account. Once they do that, you log back into PayPal and tell them what those deposit amounts were and then you’re verified. Once verified, you can choose this payment option here. As with any of the options, if they’re not pre-installed, you’ll click Install to offer that payment option and you’ll then click Edit to enter the information they need. With this PayPal payment option, once the buyer is done shopping they can choose to pay via PayPal which will allow them to pay via checking account, automatic draft or any major credit card without having to get a merchant account with any banks. o Credit Card – This one you’ll want to be careful with. Most online credit card transactions that happen online are done via a secure socket layer (SSL) and are processed right there online. This requires purchasing the SSL through a company like Verisign which runs about $400 per year to maintain and then the setup of a merchant account through a credit card processing facility or your bank. That’s why PayPal is a great option for processing credit cards to avoid all of these extra costs. This walkthrough assumes that you don’t have an SSL, but if you do, get with your website administrator and let them help you set this up right. Assuming you don’t, here’s what happens if a customer pays via credit card direct on your site instead of going through PayPal. First, make sure that you select the split card option. That means that the middle numbers of the credit card will be e-mailed to you and the first and last digits and expiration date are stored in the password protected area of your website. We show you how to get that info later. Just make sure that if you use this payment method, that you indicate how this is done in the Privacy area for your customers to protect yourself from any privacy nuts. Better Business Bureau members will be required to do this anyway. o COD or Checks/Money Order Doubtful that you’ll use this, but if you allow them to pay when they physically get the order, then these options would be fine. This would probably work for a pizza delivery place or something. o The rest of them The rest of the options are RARELY used. 2Checkout is becoming more popular and has about the same type of setup as PayPal. If you’re familiar or comfortable with any of the other ones listed, go for it. If not, leave them alone. • Shipping Out of the gate, the shipping modules offered are slim and sometimes even popular ones like UPS have to be obtained from the Contributions area of the osCommerce website. But most of these suffice for a lot of people so we’ll talk about the ones that typically come pre-installed. The BIGGEST thing to keep in mind is that ALL of the options you install will be available to the customer. So if it’s got a 0 in the Sort Order column, that option will appear for them. And they will go with the lowest priced option regardless if it calculated wrong and comes out of your pocket. Test them out and see which one is more accurate and stick with that one. o Flat rate – This option is for when you have one flat rate that you charge no matter what they order or how much they order. o Per Item – This allows you to indicate a dollar amount for each item purchased. So if you want to charge $2 PER item ordered, you’d use this option. o Table Rate – If you want to charge shipping based on total dollar amount of the order, use this option. For instance, 0-$10 is $3 shipping, 10-20 is $5 shipping, etc. o USPS – USPS will base the shipping charge on the total weight of the order, so unless you have indicated weights for all of your products, don’t use this option. It does not update its shipping charges when postage increases happen either, so you have to manually update it or simply add on a handling charge to cover the difference. A $5 handling charge normally hits it right on the head. They try to update the charts with each new version of osCommerce, but play it safe. • Order Total Modules This area allows you to set some neat features and here they are. o Low Order Fee – Set this if you want to charge them a fee for not ordering up to a specific dollar amount. For instance if you want to charge a $5 fee if the order is not $10 or higher. o Shipping – Here you can offer free shipping if the order is over a certain dollar amount. o Subtotal – Turn this on to show the user the subtotal of their order before taxes, shipping, handling, etc is added in. o Tax – Turn on if you want to show them how much tax they paid. o Total – Turn on to show them the complete total order charge with everything included. Leave this set to true because everyone wants to know what the TOTAL cost will be and leaving it off is bad business. Customers Now for the customer area. There are only 2 sections here which are Customers and Orders. Both will be blank until you get some orders placed in the store. Once someone orders items, their information is stored in this area. The Customer area will show you their info like address, past orders and also the option to email them. The other area is Orders where it shows orders placed in your store in chronological order. If you chose the credit card option as a payment method, you’d click on the order and then click Edit and the credit card info will be in that area with exception to the middle digits which will be sent to you via email. Locations/Taxes This area is important for those wishing to charge tax on the items or taxes only in certain states, etc. • Countries – Unless you’re planning to sell products worldwide, this area will show every country out there. You could kill yourself deleting each one or have your website administrator kill them in one swoop by deleting them from the database in phpMyAdmin. I’m not going to show you how to do that here because that’s just asking for trouble. So just highlight the ones you want to delete and then click Delete or contact your web guy to do it for you. • Zones – All of the zones are pre-entered and these get deleted when the country that they’re a zone of get deleted. But for instance, if you were to remove every country except for the United States, you’ll still see about 60 zones showing. There are only 50 states though, so how could this be? That’s because, along with the states, it will also show the Armed Forces locations and even Guam and Virgin Islands. So if you do narrow it down to one country, go through the zones and delete stuff like that unless you plan to ship there also. They are WAY too thorough. • Tax Zones – These zones are different from the regular zones above. These are zones that will be taxed. Remember that in most states, online orders are not taxable unless the Buyer is from the same state as the seller. So if you reside in Florida, Florida is the only zone that needs to be shown here. By default, Florida is typically the only tax zone showing here out of the box. If that’s not your state, click Edit and change the name to your state. You can also add other states also of course. Once you’ve done that, you’re not done though. Click on the image of the folder next to the zone name to open it (just like you did with the Categories). You’ll then see what zone that folder is set to. If it’s not right, click edit to change it and then Update. But look inside that tax zone folder! Just like people, the folder name means nothing. It’s what’s inside that counts. As always, check your local and state tax rules. • Tax Classes – You can set up tax classes here. The default is taxable goods which will be added to all products from buyers from your state IF you indicated the item was taxable when you entered the product. • Tax Rates – Here you will indicate what the tax rate is for each tax zone you’ve set up. Make sure that even if it’s right, click Edit anyway because by default it will say “FL tax rate” in the Description field of the order. So even if its right monetarily, it will read “FL tax rate” on the order and that may set off red flags to your buyers regardless of whether the actual total is right or not. It’s just text, but it’s wrong (unless you live in Florida). Localizations Here you’ll set stuff like currencies, languages, etc. • Currencies – Add, edit or delete the currencies that you plan to accept. • Languages – Add, edit or delete the languages available on your site. My pet peeve is the British flag for English. It’s correct to an extent, but for U.S. based stores, it’s not right. Email us at info@hortonwebdesign.com for a replacement US flag image for this oversight. Then you just drop it into the following directory: /catalog/includes/languages/English/images and overwrite the icon.gif file. • Order Status – One of the neat features of the store is the ability for customers to log back in and see the status of their order. By default, the options are Pending, Processing and Delivered. Under the Customers area, you click on Orders and highlight and edit the order (like you do when retrieving the credit card info). On the bottom of that edit screen for the order will be a drop down box where you can choose one of the 3 options, as well as leave notes to be emailed to the customer or only for your personal viewing. This area allows you to create more than just these 3 default options such as On Hold, Payment Declined or whatever you’d like. Reports I’m not going to delve too much into this since it’s self explanatory. This gives you 3 reports to choose from which include Products Viewed, Products Purchased and Best Customer Orders-Total. You can view the best selling products, who your most valuable and loyal customers are and what your most popular products are along with other details. Tools And finally, the last section, Tools. • Database Backup – This provides you with options to backup the store. If you make a lot changes to the store (or plan to), be sure to back it up here. If things get messed up, you can also restore from the backup from here. • Banner Manager – If you’ve gone about the hassle of creating ad banners, you can use this banner manager to rotate them on and off the pages, manage them in groups, indicate when they’ll stop and start and on and on. This also is a nice feature if your store becomes popular and advertisers want to pay you to place their ads on your store in rotation. • Cache Manager – If strange things start appearing on your site like other people’s info or old info you’ve removed ages ago that just won’t go away, use the cache control. Choose the cache file you want to clear ad then click the little recycling looking icon to clear it out. It won’t erase your store information, so it’s okay. • Define Languages – Oh boy. The big daddy. Everything you see on the store can be altered from this area. From the “What’s New Here” to “Welcome” to “Privacy” to “Conditions”. Simply click the file you want to edit, scroll through and find it and change it. If it gives you permission errors, check with your website administrator to set those permissions for you to give you free reign here. BUT BEWARE! This is coding and alterations here can screw up your whole store, so be careful. We will not fix clients stores that have tinkered around in here, so ask before messing with this. • File Manager – This can have the same devastating effect as Define Languages above. This allows you to literally alter EVERY AREA of your website and not just the store. It’s like a trimmed down website editor. So unless you know what you’re doing, avoid this area like the plague. AND AGAIN BEWARE! This is coding and alterations here can screw up your whole store and in this case your ENTIRE website, so be careful. We will not fix clients stores or websites that have tinkered around in here, so ask before messing with this. • Send Email – This is a cool feature that lets you email specific customers, All Customers or only customers that have signed up for your newsletter. Choose who you want to send an email to, type out the Subject and email and click Send! Great to announce specials to your past customers. But use sparingly or find yourself spam blocked! • Newsletter Manager – Create weekly or monthly newsletters here and then save them to send later. If you’re satisfied with it, click Lock and then click Send and it will send it to everyone that signed up for your newsletter. • Server Info – This will give you detailed information about the server that your website is on all the way down to the program versions. It will even tell you the last time your website guy scratched his scalp. Use this if you start having problems and the techies need more detailed info about what software you’re using. • Whose Online – And finally use this to see if any of your customers are in your store browsing around. Not sure why you would need this unless you were some kind of control freak, but here it is! And that’s it! Obviously, we didn’t cover EVERYTHING in GREAT detail, but it’s pretty darn thorough. If you just don’t want to deal with any of this and just have us set it up for you, email us at osc@hortonwebdesign.com for more osCommerce installation information or for product imports using the EasyPopulate product, email us at ep@hortonwebdesign.com. We look forward to serving you and hope this document has served you well! ****************************** Easy Populate Addendum (The Re-Release) Common Importing Issues using the greatest software ever. Haven't really changed anything. Any additions/suggestions are welcome for future revisions. Support Thread: http://forums.oscommerce.com/index.php?sho...=163358&hl= Contributor: Chris Horton (Daddyslipdisk) Email: For EasyPopulate - ep@hortonwebdesign.com For osCommerce - osc@hortonwebdesign.com These guidelines below are based on osCommerce 2.2 Milestone 2 version and using Mibbles Easy Populate With Product Attributes released on 7-26-05. There have been dozens of releases since this, so just use what you wish and enjoy. Well, I have finally and successfully uploaded over 3000 products into the osCommerce store. But it surprised me how many problems I had during the configuring of it that EVERYONE should have run into. Even if you follow the instructions to the letter from the easypopulate.pdf file, you still get hammered with all types of obstacles that are not mentioned anywhere. And even common things that laymen like myself would run into are covered in the oscommerce forum MULTIPLE times. I'm NOT going to cover items that are addressed in the easypopulate.pdf file of the docs folder you unzipped. Read that thoroughly and follow it to the letter. The following are items that I ran into that I feel weren't covered well enough or at all. All of these problems are covered within the support forum somewhere, but this should cover everything you'll experience when importing and how to avoid the problems ahead of time. Enjoy and let me know if this helps anyone at all. Problem 1 - Warning: file (/blah/blah/blah..) The first issue I got was the one that everyone seems to experience at least once during importing and that is the setting in easypopulate.php for the line that says $TEMP_DIR. If it's not set correctly, you'll get errors that look like this; Warning: file(/yourserverusername/homepages/16/d100301682/htdocs/catalog//catalog/temp/test898_tabdelimited.txt): failed to open stream: No such file or directory in /homepages/16/d100301682/htdocs/catalog/admin/easypopulate.php on line 684 Warning: Invalid argument supplied for foreach() in /homepages/16/d100301682/htdocs/catalog/admin/easypopulate.php on line 689 The directory structure will be different, but that's the error. Solution - There are 2 reasons that I came across that cause this issue. The first (but not the reason why the specific error above happened) is that during the regular installation procedure, a "temp" folder isn't created in the "catalog" directory when it should be. And if it is, it isn't set with the right permissions. That's a big problem because the program is trying to write to that folder and obviously, if it doesn't exist or can't be written to, you get errors. Use an FTP program and log onto your site. Open the "catalog" folder and see if there is a folder called "temp" there. If there isn't, make one. If there is (or if you create one), chmod it to 777, meaning give all permissions to User, Group, and Other. That's the first thing. The second thing, and the reason for the error above is that you'll notice that the address it's looking for is "..htdocs/catalog//catalog..". Obviously catalog//catalog is not correct. This problem originates from a file that you uploaded during installation in the catalog/admin folder called easypopulate.php. By default, if you open that file using a text editor, you'll see that the file has 2 lines in it that say; $tempdir = "/catalog/temp/"; $tempdir2 = "/catalog/temp/"; You can update multiple files to fix this issue or just change those lines. You'll want to give it "directions" on how to get to that temp folder from the root of your server. In my case, I changed mine to; $tempdir = "/home/globeche/public_html/catalog/temp/"; $tempdir2 = "/home/globeche/public_html/catalog/temp/"; Do not use a web address like “http://www.mysite.com/catalog/temp” because http wrappers won't allow it to write to that temp folder. I've seen some posts in the forum here that say, "put $localhost in there", etc. But when I tried that, I got the same error again, but with $localhost as part of the error. Just put the full server path to that temp folder like I did above and you'll be good to go and those errors will go bye-bye. Once I was able to get past that first error, I then began experiencing problems with the import. And how you configure your import file is VERY important. The best thing I can tell you is to download the "complete" store file using Easy Populate to see how the columns should be named. That's very important. The easypopulate.pdf file does a great job explaining each field and what it's for, as well as how to do categories, product attributes, etc. READ IT! Problem 2 - EOREOR field The first import issue that is easy to miss in the instructions though is the EOREOR field. I read somewhere in some documentation that if you left that field blank it would default to some default setting. My sides hurt. Solution - You MUST put "EOREOR" (without the quotes) in EVERY CELL AT THE END OF EVERY ROW in the EOREOR column. If not, it'll import the first product and that's it. EOREOR tells Easy Populate that it's the end of that row and to now go to the next row to import the next product. Problem 3 - The Apostrophe Catastrophe The second thing an import will die on is apostrophes ('). Easy Populate does NOT like apostrophes in the file you're importing. Solution - Replace all of your apostrophes with \'. So, for instance, the word "won't" will look like this instead - won\'t . And if you're using a text editor and using the "replace" feature, make sure you physically look for apostrophes in the file, because for some reason, there can actually be apostrophes that it doesn't recognize. For instance, there's a difference between ' and ’. There's not a key on the keyboard to generate that latter character. I don't even know how it's created in the first place, but Easy Populate doesn't like either one. So look closely at your data and make sure you replace both by putting a forward slash (\) in front of each and every one, regardless of whether it's ' or ’. Problem 4 - Delimited Unlimited Your fields are all screwed up when it imports. Pricing is in the description field, model number in the product name, vice versa, etc. It's just all messed up. Solution - Go tab delimited. Stay away from comma delimited files completely. I simply don't see how anyone can even describe a product without using commas anyway. So just avoid it. The next obvious thing is, check your field names. Again, I can't stress enough to read that section of the easypopulate.pdf document. It's your Bible. Those are the most popular errors you’ll get when importing products. Follow the easypopulate.pdf file word for word and then use this document and you shouldn’t have any problems. If you feel that any of this needs revision or items need to be added to it, please post your issues in the support forum and we’ll revise this document as needed. They want Easy Populate to be the easiest program for you to use and enjoy and these steps along with the pdf file documentation will have you squealing with joy! And of course, let me know if any of this has helped anyone at all. God bless and enjoy! Email: For EasyPopulate - ep@hortonwebdesign.com For osCommerce - osc@hortonwebdesign.com
  11. I installed the UPS shipping calculation module a while back and for the most part it appears to be working ok. But I've added $5 handling into the mix and the final shipping amounts that are being charged to the customer are almost to the penny. Now it should be $5 higher, but it's not. Which is fine because I'm not eating any shipping which is good, but is there some sort of update to get for this UPS module to update the prices being quoted or is this actually going directly to UPS to get these quotes? The next question is that I have a repeat customer that orders products for other customers. Her info is in the customer field on the invoice and the customer she's sending to is in the Shipping address field. For some reason, the UPS module is basing shipping on her info in the Customer area and not the customers info in the Shipping section. Is there some way to change that? So far, this customer is the only one that's like this since for most of my other customers, the info is the same across all of the fields. But there doesn't appear to be a way to alter what field it looks at to get its pricing. And lastly, is there some sort of plug-in that will allow a customer to see what the pricing would be for shipping before they get to the end of the ordering process? Like a "find out UPS shipping costs for this item here" button or something? I may lose sales because of it, but I'd rather let the customer be informed so that there's no surprises. Thanks in advance for any input!
  12. I need 2 contributions. I have a clients store that sells groceries. And basically they need a contribution that will split up shipping by 2 separate carriers. One for USPS for non-persihable goods and the other UPS for perishable items. I imagine this causes a problem when you have a customer that orders both. Is there a way to do this? And lastly, I also need a contribution that will not charge shipping at all based on specific zip codes. BUT those customers would have the option to 1) pick up at the store, 2) have it delivered to them for free (if they live in the correct zip code), and 3) have it shipped using the method from the paragraph above. And likewise, if the customer does NOT live in the free zip code areas, they won't see that option at all. Anyone have any ideas how I can deal with this? :huh:
  13. :blink: I installed the Custom Table Rate with 2 Fields contribution (http://www.oscommerce.com/community/contributions,3153/page,2), but it doesn't work. I followed the instructions to the letter, but something isn't taking. I have some products that exceed the shipping cost of what is defined in the standard table rate, so I installed this contribution to help fix that. Since all of my products have a weight of 0, I put the weight of 25 pounds on the heavier products so that it would add an additional $20 to shipping on those specific items without affect the shipping cost of the lesser weighted items. I have my Price table rate set up and that's always been working fine, but then I added a Weight table rate of 1:0,26:20.00. And then I made the heavier products have a weight of 25 pounds. But when I do a test checkout, only the price table rate shows up. And yes, the Weight & Price option is selected. One interesting thing about this contribution is that I didn't have to edit any files outside of the language file. So it seems that may there might be a piece of the instructions missing out of some code somewhere that tells the system to add the Weight table in also if it has the heavier weight. Does anyone have any idea how to fix this problem or do you know of a way that I can handle this problem with the heavier products with another contribution? Because the other issue is that I also have some dining serving pieces that by the piece aren't affected by the Weight table, but I do have to charge more if they order the complete set. And since that complete set selection is set up in the Attributes area, there's no way to indicate weight on it. >_<
  14. Ok, It's very strange how I figure out my own issues lately. This will definitely be added to my revision of the Easy Populate Import documentation. The customer had changed the catalog\admin\easypopulate.php file to look for semi-colon delimited files instead of tab. Changed it back to the tab delimited default and everything imported fine. Sweet. :thumbsup:
  15. Now I've prided myself on being pretty knowledgable about EasyPopulate. But I must be tired or missing something, so I'm bowing my head and asking. Have a client who's using the latest version of both osc and easypopulate. He has an import file of about 2500 products. The file is complete, all headers are in place and properly named (sample below), model number field present with different model names for each product, apostrophes prefaced with a \, etc. Everything is ready to go. I open EasyPopulate, import the file and it says: File uploaded. Temporary filename: /tmp/phpDP6bqy User filename: Book4.txt Size: 38908 But it doesn't run down the products one by one like other imports I've done with the "item added" messages. It just says that message above and that's it. Then when you go into categories/products area, nothing's there. I even broke it down into test files of 75 products and still the same thing. Then once it's imported into the temp folder, I try and import it from there again via EasyPopulate, but still the same result. I even added all of the fields that I'm not using and put them in the format order that EasyPopulate exports in and even copied and pasted my data into that file. Am I missing something? :blink: Here's a sample of my file. The file I import is tab delimited, but for ease on the eyes I went with a csv file here; v_products_model,v_products_image,v_products_name_1,v_products_description_1,v_p roducts_url_1,v_products_name_2,v_products_description_2,v_products_url_2,v_produ cts_name_3,v_products_description_3,v_products_url_3,v_products_price,v_products_ weight,v_date_avail,v_date_added,v_products_quantity,v_attribute_options_id_1,v_a ttribute_options_name_1_1,v_attribute_options_name_1_2,v_attribute_options_name_1 _3,v_attribute_values_id_1_1,v_attribute_values_name_1_1_1,v_attribute_values_nam e_1_1_2,v_attribute_values_name_1_1_3,v_attribute_values_price_1_1,v_attribute_op tions_id_2,v_attribute_options_name_2_1,v_attribute_options_name_2_2,v_attribute_ options_name_2_3,v_attribute_options_id_3,v_attribute_options_name_3_1,v_attribut e_options_name_3_2,v_attribute_options_name_3_3,v_attribute_values_id_3_1,v_attri bute_values_name_3_1_1,v_attribute_values_name_3_1_2,v_attribute_values_name_3_1_ 3,v_attribute_values_price_3_1,v_attribute_options_id_4,v_attribute_options_name_ 4_1,v_attribute_options_name_4_2,v_attribute_options_name_4_3,v_attribute_values_ id_4_1,v_attribute_values_name_4_1_1,v_attribute_values_name_4_1_2,v_attribute_va lues_name_4_1_3,v_attribute_values_price_4_1,v_attribute_values_id_4_2,v_attribut e_values_name_4_2_1,v_attribute_values_name_4_2_2,v_attribute_values_name_4_2_3,v _attribute_values_price_4_2,v_attribute_values_id_4_3,v_attribute_values_name_4_3 _1,v_attribute_values_name_4_3_2,v_attribute_values_name_4_3_3,v_attribute_values _price_4_3,v_attribute_values_id_4_4,v_attribute_values_name_4_4_1,v_attribute_va lues_name_4_4_2,v_attribute_values_name_4_4_3,v_attribute_values_price_4_4,v_attr ibute_values_id_4_5,v_attribute_values_name_4_5_1,v_attribute_values_name_4_5_2,v _attribute_values_name_4_5_3,v_attribute_values_price_4_5,v_attribute_options_id_ 5,v_attribute_options_name_5_1,v_attribute_options_name_5_2,v_attribute_options_n ame_5_3,v_attribute_values_id_5_1,v_attribute_values_name_5_1_1,v_attribute_value s_name_5_1_2,v_attribute_values_name_5_1_3,v_attribute_values_price_5_1,v_attribu te_values_id_5_2,v_attribute_values_name_5_2_1,v_attribute_values_name_5_2_2,v_at tribute_values_name_5_2_3,v_attribute_values_price_5_2,v_attribute_values_id_5_3, v_attribute_values_name_5_3_1,v_attribute_values_name_5_3_2,v_attribute_values_na me_5_3_3,v_attribute_values_price_5_3,v_attribute_values_id_5_4,v_attribute_value s_name_5_4_1,v_attribute_values_name_5_4_2,v_attribute_values_name_5_4_3,v_attrib ute_values_price_5_4,v_attribute_options_id_6,v_attribute_options_name_6_1,v_attr ibute_options_name_6_2,v_attribute_options_name_6_3,v_attribute_values_id_6_1,v_a ttribute_values_name_6_1_1,v_attribute_values_name_6_1_2,v_attribute_values_name_ 6_1_3,v_attribute_values_price_6_1,v_attribute_values_id_6_2,v_attribute_values_n ame_6_2_1,v_attribute_values_name_6_2_2,v_attribute_values_name_6_2_3,v_attribute _values_price_6_2,v_attribute_options_id_7,v_attribute_options_name_7_1,v_attribu te_options_name_7_2,v_attribute_options_name_7_3,v_attribute_options_id_8,v_attri bute_options_name_8_1,v_attribute_options_name_8_2,v_attribute_options_name_8_3,v _manufacturers_name,v_categories_name_1,v_categories_name_2,v_categories_name_3,v _tax_class_title,v_status,EOREOR 1.8MUSBPRINTERCABLE,C-USBAB-1.jpg,1.8M USB PRINTER CABLE,,,,,,,,,4,,10/23/2005,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,PRINTER,,,Active,EOREOR 10 M,PL-X-0.jpg,10 M CROSS-OVER UTP CATEGORY 5 CABLE,,,,,,,,,8,,10/23/2005,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP CROSS-OVER,,,Active,EOREOR 10 M 2,PLK-C5E-PP.jpg,10 M STANDARD UTP CATEGORY 5 CABLE,,,,,,,,,8,,10/23/2005,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP STANDARD,,,Active,EOREOR 15 M ,PL-X-0.jpg,15 M CROSS-OVER UTP CATEGORY 5 CABLE,,,,,,,,,11,,10/23/2005,,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP CROSS-OVER,,,Active,EOREOR 15 M ,PLK-C5E-PP.jpg,15 M STANDARD UTP CATEGORY 5 CABLE,,,,,,,,,11,,10/23/2005,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP STANDARD,,,Active,EOREOR 2 M ,PLK-C5E-PP.jpg,2 M STANDARD UTP CATEGORY 5 CABLE,,,,,,,,,4.5,,10/23/2005,,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP STANDARD,,,Active,EOREOR 20 M ,PL-X-0.jpg,20 M CROSS-OVER UTP CATEGORY 5 CABLE,,,,,,,,,13.5,,10/23/2005,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP CROSS-OVER,,,Active,EOREOR 20 M 2,PLK-C5E-PP.jpg,20 M STANDARD UTP CATEGORY 5 CABLE,,,,,,,,,13.5,,10/23/2005,,-1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP STANDARD,,,Active,EOREOR 25 M,PL-X-0.jpg,25 M CROSS-OVER UTP CATEGORY 5 CABLE,,,,,,,,,15,,10/23/2005,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP CROSS-OVER,,,Active,EOREOR 25 M 2,PLK-C5E-PP.jpg,25 M STANDARD UTP CATEGORY 5 CABLE,,,,,,,,,15,,10/23/2005,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,UTP STANDARD,,,Active,EOREOR 25WIREA1.8M,C-IEEEAC-2.jpg,25 WIRE A 1.8M PRINTER CABLE,,,,,,,,,1.95,,10/23/2005,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,OTHER,CABLES,PRINTER,,,Active,EOREOR