Zen Cart Error Message ‘Unauthenticated content’

This Zen Cart tutorial discusses an error message which reads ‘This page contains both secure and nonsecure items. Do you want to display the nonsecure items?’ This error can also read as ‘Page contains unauthenticated content’, or ‘connection partially encrypted’.

This error means that you have hard-coded URLs somewhere in your zen cart, rather than relative paths. This warning can also be triggered if there are banners in your zen cart with ‘http://’ links, which are set so that they will not show on SSL pages. Another cause is click-tracking tools which access your site using javascript, and link to http:// pages elsewhere.

The easiest way to figure out what is causing the problem is to search through your web browser’s View Source page for ‘src=”http://’. Once you find the hard link/s, fo through your template files/stylesheets and remove all the hard-coded links you found.

In the future, you can prevent this error from popping up again by enuring that you never hard-code a full ‘HTTP://’ URL anywhere on your site.

It should also be noted that this error can also be caused by images mentioned in your stylesheet that do not exist. In this case, they will produce ‘404 Not Found’ errors. In turn, these can sometimes create a ‘loop’ while attempting to display a 404-error-page, which often generates more error messages, and compounds the problem. Aside from throwing off a whole lot of error messages, this kind of repetitive loop can create a lot of extra traffic on your hosting account, which can get you into trouble with some web hosts, though this repercussion is highly conditional on what web hosting company owns the servers on which you host your zen cart store.

If you need help with your zen cart web site please contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart Understanding The configure.php File – Part One

This Zen Cart article is the first in a series which aims to help zen cart users and store owners better understand their configure.php files, so that they can customize their websites more easily. The configure.php file basically deals with the configuration of URLs and paths throughout the site, though it does have a few other functions as well. We will discuss all of these over the course of this series.

Zen Cart creates it’s URLs by combining two values from the configure.php file, and these values are the first things we’ll review. They are the ‘HTTP_SERVER’ and ‘HTTPS_SERVER’, and in a nutshell, these values comprise your website’s domain name. When someone visits the URL assigned to them, they will be taken to your domain’s webroot, regardless of whether your store is actually there. If your store is in a sub-directory, then DIR_WS_CATALOG and DIR_WS_HTTPS_CATALOG are added to the URL so that customers are taken to the folder in which your store located. If your store is in the webroot(public_html), though, then there should not be any issues.

Pages that are not secured with SSl are influenced by the ‘HTTP_SERVER’ and ‘DIR_WS_CATALOG’, along with the page section of the URL(I.e., ‘http://www.my_domain.com/index.php?main_page=shopping_cart).

SSL pages are configured basically the same way, except that instead of ‘HTTP_SERVER’, they are specified under the ‘HTTPS_SERVER’ value(Note the ‘S’). It is very important to remember that even if you define SSL pages, they will not work properly unless you have a valid SSL certificate on your website. If you do not have one, you should really contact your web host about getting one. SSL certificates add an extra layer of security to your site, and inspire customer confidence, which ultimately translates into higher conversion rates.

If you need help with your zen cart web site please contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart Why Should You Upgrade Your Store?

When you own and/or manage a zen cart store, keeping the software up to date is essential. Zen Cart v1.5.4 was released at the end of December 2014, containing a number of bug-fixes and security improvements that set it apart from Zen Cart v1.5.3. Aside from all the benefits that came from upgrading your zen cart store, upgrades can be performed pretty quickly, depending on what modules you have installed in your zen cart.

Upgrading to the latest available version of Zen Cart is important for a number of reasons. Foremost among these is the performance of your store. Every new version of Zen Cart is released with fixes to many of the bugs and glitches in the last version, and sometimes even in response to these issues. If you don’t upgrade your store when new versions are released, you will miss out on all these new features and fixes. Not to mention that if you fall behind a few releases, your may end up running your store on a version of Zen Cart that is no longer supported. This means that the software is so antiquated that it becomes more trouble to try to fix problems in a cart running the software than it would be to upgrade. When this happens, it becomes extremely difficult to fix even minor problems, as anyone you ask on support forums will simply tell you to upgrade.

Another important point is the security updates that come with new releases of Zen Cart. As hackers and thieves develop new methods of gaining access to your website, it becomes increasingly important that web store owners operate their sites with the best security practices available in order to protect themselves and their customers.

If you need help with your zen cart web site please contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart How to Include the Manufacturers Logo on the Product Info Page

If your zen cart store carries products by many different manufacturers you will want to show their logo on the product info page. This type of instant brand recognition will increase your sales of these items. This Easy Help Zen Cart Tutorial will show you how to modify your zen cart php files to show the manufacturers logo on the product info pages.

In your favorite plain text editor open the includes/templates/override/templates/tpl_product_info_default.php file. If there is not an override already made for this file, copy the includes/templates/template_default/templates/tpl_product_info_default.php to the includes/templates/override/templates/tpl_product_info_default.php.

Locate the place in the file where you want your manufacturers logo to show and add this code:


<?php 
   if ($check_image = zen_get_products_manufacturers_image((int)$_GET['products_id'])) { 
     echo '<a class="manufacturer" href="' . zen_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $manufacturers_id) . '">' . zen_image(DIR_WS_IMAGES . $check_image) . '</a>' . "\n" ; 
   } else { 
     echo 'NO IMAGE'; 
   } 
  
 ?>

Next, open the includes/modules/pages/product_info/main_template_vars.php file. This is a zen cart main core file so be sure to back it up and make a note of your changes for future upgrades.

Find this:


$products_manufacturer = $manufacturers_name;  

On the next line add this:


$manufacturers_id = $product_info->fields['manufacturers_id'];  

Save your changes and upload the files to your server making sure that you overwrite the files already on your server. Navigate to a product info page in your zen cart and refresh your browser to see the manufacturer logo.

If you need help with your zen cart web site please contact us for a quote.

Picaflor Azul specializes in creating beautiful, modern zen cart designs customized to meet your specific business needs. Our NexGen E Commerce designs feature responsive designs which have layouts optimized for desktops, laptops, portrait and landscape tablets, and portrait and landscape phones. A responsive design will increase your sales and conversion rates from customers who are shopping your site using their mobile devices. Read our zen cart articles to find out how our responsive designs can benefit your business.

zen cart plus picaflor azul equals success

Zen Cart How to Disable P O Box Addresses for the UPS Shipping Module

If your zen cart uses the UPS shipping module but you do not want your customers to be able to enter a PO Box address, you will have to add some custom code to your zen cart UPS shipping module. This Easy Help Zen Cart Tutorial will show you how to add custom php code to your UPS module so that your customers can not enter PO Box addresses.

In your favorite plain text editor open the includes/modules/shipping/ups.php file. Be sure to back up this file in case you make a mistake and need to restore the back up to your zen cart in a hurry.

Find this:


      // disable only when entire cart is free shipping
      if (zen_get_shipping_enabled($this->code)) {
        $this->enabled = ((MODULE_SHIPPING_UPS_STATUS == 'True') ? true : false);
      }

Immediately after, add this:


// bof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb']
if (!IS_ADMIN_FLAG) {
global $order;
$street_address = $order->delivery['street_address'];
// BEGIN PO Box Ban street address
    if ( preg_match('/PO BOX/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/BOX/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/POBOX/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/P\.O\./si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/P\.O/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/PO\./si', $street_address) ) {
      $error = true;
    }

$suburb = $order->delivery['suburb'];
// BEGIN PO Box Ban suburb
    if ( preg_match('/PO BOX/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/BOX/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/POBOX/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/P\.O\./si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/P\.O/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/PO\./si', $suburb) ) {
      $error = true;
    }

    if ($error) {
      $this->enabled = false;
    }
}
// eof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb']

So you should have this:


      // disable only when entire cart is free shipping
      if (zen_get_shipping_enabled($this->code)) {
        $this->enabled = ((MODULE_SHIPPING_UPS_STATUS == 'True') ? true : false);
      }

// bof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb']
if (!IS_ADMIN_FLAG) {
global $order;
$street_address = $order->delivery['street_address'];
// BEGIN PO Box Ban street address
    if ( preg_match('/PO BOX/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/BOX/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/POBOX/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/P\.O\./si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/P\.O/si', $street_address) ) {
      $error = true;
    } else if ( preg_match('/PO\./si', $street_address) ) {
      $error = true;
    }

$suburb = $order->delivery['suburb'];
// BEGIN PO Box Ban suburb
    if ( preg_match('/PO BOX/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/BOX/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/POBOX/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/P\.O\./si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/P\.O/si', $suburb) ) {
      $error = true;
    } else if ( preg_match('/PO\./si', $suburb) ) {
      $error = true;
    }

    if ($error) {
      $this->enabled = false;
    }
}
// eof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb']

      if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_UPS_ZONE > 0) ) {

Save your changes and upload the file to your server making sure that you overwrite the file already on your server. Test by trying to checkout in your zen cart using the UPS shipping module and a PO Box shipping address.

If you need help with your zen cart web site please contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart How to Exclude Specific Products from Best Sellers

Each time a customer makes a purchase from your zen cart store, the data is stored in the database. This allows zen cart to compile a list of best selling products. If you have certain products that you do not want to show on your stores best seller list (for example a limited time or quantity product, or a free offer product), you will need to add some custom php coding to exclude them from the list. This Easy Help Zen Cart Tutorial will show you how to add some custom code to exclude products from your stores best sellers list.

In your favorite plain text editor open the includes/modules/sideboxes/override/best_sellers.php file. If there is not already an override for this file you can create one by copying the includes/modules/sideboxes/best_sellers.php to includes/modules/sideboxes/override/best_sellers.php.

Find the Select statement near the top of the file:


      $best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered
                             from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, "
                                    . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c
                             where p.products_status = '1'
                             and p.products_ordered > 0
                             and p.products_id = pd.products_id
                             and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
                             and p.products_id = p2c.products_id
                             and p2c.categories_id = c.categories_id
                             and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id)
                             order by p.products_ordered desc, pd.products_name";

      $best_sellers_query .= $limit;
      $best_sellers = $db->Execute($best_sellers_query);
    } else {
      $best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered
                             from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
                             where p.products_status = '1'
                             and p.products_ordered > 0
                             and p.products_id = pd.products_id
                             and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
                             order by p.products_ordered desc, pd.products_name";

      $best_sellers_query .= $limit;
      $best_sellers = $db->Execute($best_sellers_query);
    }

and change it to this:


    $best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered 
                             from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " 
                                    . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c 
                             where p.products_status = '1' 
                             and p.products_ordered > 0 
                             and p.products_id = pd.products_id 
                             and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' 
                             and p.products_id = p2c.products_id 
                             and p2c.categories_id = c.categories_id 
                             and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id) 
                             and p.products_id not in (10, 12) 
                             order by p.products_ordered desc, pd.products_name 
                             limit " . MAX_DISPLAY_BESTSELLERS; 

      $best_sellers = $db->Execute($best_sellers_query); 

    } else { 
      $best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered 
                             from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd 
                             where p.products_status = '1' 
                             and p.products_ordered > 0 
                             and p.products_id = pd.products_id 
                             and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' 
                             and p.products_id not in (10, 12) 
                             order by p.products_ordered desc, pd.products_name 
                             limit " . MAX_DISPLAY_BESTSELLERS; 

      $best_sellers = $db->Execute($best_sellers_query); 
    }  

This example shows products with id’s 10 and 12 being excluded from the Best Sellers list.

Save your changes and upload the file to your server making sure that you overwrite the file already on your server.

If you need help with your zen cart web site please contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart How to Show Newest Products First in the Center Box Modules

If your zen cart online store gets new products on a regular basis, it is a good idea to promote these whenever possible. Zen cart natively had center boxes for New Products, Featured Products, and Specials. This Easy Help Zen Cart Tutorial will show you how to add some custom php code to show the newest products first in the center box modules.

This example is specifically for the New Products center box, but similar code could be used for the Featured Products and Specials center boxes as well.

In your favorite plain text editor open the includes/modules/override/new_products.php file. If there is not already an override for this file on your server, you can create one by copying the includes/modules/new_products.php to the includes/modules/override/new_products.php.

Near the top of the file find this code:


$display_limit = zen_get_new_date_range();

And change it to this:


$display_limit = ' order by p.products_date_added desc limit 1';

Save your changes and upload the files to your server making sure that you overwrite the file already on your server.

If you need help with your zen cart web siteplease contact us for a quote.

Picaflor Azul specializes in responsive e commerce web design. The trend toward customers increasingly shopping online using their mobile devices is not just a fad. Don’t lose out on sales because your site is not able to be navigated or rendered on modern mobile devices. Our responsive designs are optimized to look great and be easy to navigate on desktops, laptops, portrait and landscape tablets, and portrait and landscape phones. Just email us at info@picaflor-azul.com with your project requirements and we can offer you a quote for a new responsive custom design or for converting your current design to a responsive design.

zen cart plus picaflor azul equals success

Zen Cart How to Set Free Site Wide Shipping for Certain Customers

You have a zen cart business that uses group discounts for special customer groups. One of your customer groups is a group for resellers. This group gets free shipping on all items in your store. This Easy Help Zen Cart Tutorial will show you how to add custom php code to your shipping module file to give site wide free shipping for one customer group.

In your favorite plain text editor, open the includes/modules/shipping/freeoptions.php file. Be sure to back this file up and make a note that you have edited it for future upgrades since it is a zen cart core file.

Find this:


   // disable only when entire cart is free shipping
      if (zen_get_shipping_enabled($this->code)) {
          $this->enabled = ((MODULE_SHIPPING_FREEOPTIONS_STATUS == 'True') ? true : false);
      }

Add this code on the next line:


// bof: offer only to customers in resellers group
  if (!IS_ADMIN_FLAG) {
    if ($_SESSION['customer_id'] > 0) {
      global $db;
      $group_id_resellers = 1;
      $sql = "SELECT customers_group_pricing from " . TABLE_CUSTOMERS . " WHERE customers_id = '" . $_SESSION['customer_id'] . "'";
      $chk_group_id = $db->Execute($sql);
      if ($chk_group_id->fields['customers_group_pricing'] != $group_id_resellers) {
        $this->enabled = false;
      }
    } else {
      $this->enabled = false;
    }
  }
// eof: offer only to customers in resellers group

So you have this:


      // disable only when entire cart is free shipping
      if (zen_get_shipping_enabled($this->code)) {
          $this->enabled = ((MODULE_SHIPPING_FREEOPTIONS_STATUS == 'True') ? true : false);
      }

// bof: offer only to customers in resellers group
  if (!IS_ADMIN_FLAG) {
    if ($_SESSION['customer_id'] > 0) {
      global $db;
      $group_id_resellers = 1;
      $sql = "SELECT customers_group_pricing from " . TABLE_CUSTOMERS . " WHERE customers_id = '" . $_SESSION['customer_id'] . "'";
      $chk_group_id = $db->Execute($sql);
      if ($chk_group_id->fields['customers_group_pricing'] != $group_id_resellers) {
        $this->enabled = false;
      }
    } else {
      $this->enabled = false;
    }
  }
// eof: offer only to customers in resellers group

      if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FREEOPTIONS_ZONE > 0) ) {

Save your changes and upload the files to your server making sure that you overwrite the files already on your server.

If you need help with your zen cart web siteplease contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart How to Change the Date Format from the Default US

If your zen cart store is based outside of the US, you may want to change the date format used throughout your site from the default US format MM/DD/YYYY to the format used in the UK and elsewhere DD/MM/YYYY UK. This Easy Help Zen Cart Tutorial will show you how to customize your zen cart to change the date format from US to UK.

In your favorite plain text editor open the includes/languages/override/english.php file. If there is not an override for this file already you can create one by copying the
includes/languages/english.php to the includes/languages/override/english.php.

Find this section around line 22:


@setlocale(LC_TIME, 'en_US.ISO_8859-1');
define('DATE_FORMAT_SHORT', '%m/%d/%Y'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'm/d/Y'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');

Change it to:


@setlocale(LC_TIME, 'en_US.ISO_8859-1');
define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'd/m/Y'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');

In the same file find this section around line 29:


// Return date in raw format
// $date should be in format mm/dd/yyyy
// raw date is in format YYYYMMDD, or DDMMYYYY
if (!function_exists('zen_date_raw')) {
function zen_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
}
}
}

Change it to:


// Return date in raw format
// $date should be in format mm/dd/yyyy
// raw date is in format YYYYMMDD, or DDMMYYYY
if (!function_exists('zen_date_raw')) {
function zen_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
}
}

In the same file find this section around line 67:


// text for date of birth example
define('DOB_FORMAT_STRING', 'mm/dd/yyyy');

Change it to:


// text for date of birth example
define('DOB_FORMAT_STRING', 'dd/mm/yyyy');

In the same file find this section around line 200:


define('ENTRY_DATE_OF_BIRTH_ERROR', 'Is your birth date correct? Our system requires the date in this format: MM/DD/YYYY (eg 05/21/1970)');
define('ENTRY_DATE_OF_BIRTH_TEXT', '* (eg. 05/21/1970)');

Change it to:


define('ENTRY_DATE_OF_BIRTH_ERROR', 'Is your birth date correct? Our system requires the date in this format: DD/MM/YYYY (eg 21/05/1970)');
define('ENTRY_DATE_OF_BIRTH_TEXT', '* (eg. 21/05/1970)');

Now, open the admin/includes/languages/english.php file. Be sure to make a back up of this file since it is a zen cart core file.

Find this section around line 20:


setlocale(LC_TIME, 'en_US.ISO_8859-1');
define('DATE_FORMAT_SHORT', '%m/%d/%Y'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'm/d/Y'); // this is used for date()
define('PHP_DATE_TIME_FORMAT', 'm/d/Y H:i:s'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
define('DATE_FORMAT_SPIFFYCAL', 'MM/dd/yyyy'); //Use only 'dd', 'MM' and 'yyyy' here in any order

Change it to:


setlocale(LC_TIME, 'en_US.ISO_8859-1');
define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'd/m/Y'); // this is used for date()
define('PHP_DATE_TIME_FORMAT', 'd/m/Y H:i:s'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
define('DATE_FORMAT_SPIFFYCAL', 'dd/MM/yyyy'); //Use only 'dd', 'MM' and 'yyyy' here in any order

In the same file find this section around line 29:


// Return date in raw format
// $date should be in format mm/dd/yyyy
// raw date is in format YYYYMMDD, or DDMMYYYY
function zen_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
}
}

Change it to:


// Return date in raw format
// $date should be in format mm/dd/yyyy
// raw date is in format YYYYMMDD, or DDMMYYYY
function zen_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
}

In the same file find this section around line 85:


// text for date of birth example
define('DOB_FORMAT_STRING', 'mm/dd/yyyy');

Change it to:


// text for date of birth example
define('DOB_FORMAT_STRING', 'dd/mm/yyyy');

In the same file find this section around line 204:


define('JS_DOB', '* The \'Date of Birth\' entry must be in the format: xx/xx/xxxx (month/date/year).\n');

Change it to:


define('JS_DOB', '* The \'Date of Birth\' entry must be in the format: xx/xx/xxxx (date/month/year).\n');

In the same file find this section around line 231:


define('ENTRY_DATE_OF_BIRTH_ERROR', ' (eg. 05/21/1970)');

Change it to:


define('ENTRY_DATE_OF_BIRTH_ERROR', ' (eg. 21/05/1970)');

Save your changes and upload the files to your server making sure that you overwrite the files already on your server.

If you need help with your zen cart web siteplease contact us for a quote.

zen cart plus picaflor azul equals success

Zen Cart Show Category Description on the Product Info Page

By default, the zen cart product page contains a lot of information. One piece of information that it does not contain is the category description text. This Easy Help Zen Cart Tutorial will show you how to add some php code to show your category descriptions on the product info pages.

In your favorite plain text editor, open the includes/templates/override/templates/tpl_product_info_display.php file. If there is not already an override of this file, you can create one by copying the includes/templates/template_default/templates/tpl_product_info_display.php to the includes/templates/override/templates/tpl_product_info_display.php.

Find the point in the file where you would like the category descriptions to show, and add this:


<?php echo zen_get_category_description(zen_get_products_category_id((int)$_GET['products_id']), (int)$_SESSION['languages_id']) ?>

This zen cart tutorial is brought to you by the Dover Fine Responsive Zen Cart Template.

dover fine respnsive zen cart  template

This template features a super minimal and modern layout with a responsive full screen slide show on the home page. This means that the slide show will fit the entire screen of whatever device is being used to view your site. The template is optimized for desktops, laptops, portrait and landscape tablets, and portrait and landscape phones. Use the full screen slide show to show case your products. The template features a super flexible full page layout. The template colors are already neutral, but if you want to change the colors to match your current branding, it can be easily done by using css. If you want to make css changes to the template we strongly recommend using chrome or firefox and installing the web developer tools.

If you need help with your zen cart web siteplease contact us for a quote.

portrait and landscape
Picaflor Azul specializes in responsive zen cart design. Contact us to convert your current zen cart to a responsive design, or to have a fantastic new custom design made just for your business.

zen cart plus picaflor azul equals success