This Zen Cart tutorial is meant to help zen cart users and store owners better understand the process behind the purchase and activation of downloadable products, since it is actually not as straight forward as one might think. It is still a very simple process, but on occasion, you might have that one confused customer who pays for a downloadable product, and does not get access to the activation link immediately afterward.
First of all, it is important for you to know that in zen cart stores that have been set up properly, download links are not made available to your customers until you have received payment for the product. Most payment modules commonly used with zen cart are configured so that new orders which contain downloadable products are automatically marked as ‘Orders Status: Pending’. In a nutshell, this means that your zen cart store will assume that you have not received your payment, and therefore, it should not give out the download link to the customer, until you tell it differently.
After you have verified through your payment gateway that the money has been safely transferred, you can activate the download links for your customer. This is very easy do do. Just log in to your zen cart admin area, and select the correct order. Click on Edit, and scroll down to the bottom of the page. Here, you will find a menu, where you can change the order’s status from ‘pending’ to ‘processing’. This tells your zen cart that you have received your payment, and it is okay to let the customer download the product. They will now be able to do this by navigating to their ‘My Account’ page and selecting the order.
Most Zen Cart experts, ourselves included, recommend running zen cart on standard webserver configurations, where PHP as used apache ‘module’. There are some hosts, however, who insist on running PHP as a CGI application. While you can still run a Zen Cart on these kinds of servers, you will find that there are more limitations to what you can do with your zen cart store. Most of these have to do with extra restrictions that are placed on data storage and processing limits. The file permissions you are allowed to set in this mode are a good example of these limitations. The highest they can be set is 755, which is too low for some purposes.
If you must host your zen cart store on a webserver that is set up this way, there are a few things you can do to get the best performance from your website.
Set the ‘Maximum simultaneous processes’ to 1024
Set ‘Process timeout’ to 10 seconds
There are also a few changes you should make to the standard installation process when your webserver is configured like this. The most important thing to remember is that you should not change ANY file permissions, except for at the end of the process, when you will need now set the configure.php files to 444 permissions. This means that the file is read-only, and no one will be able to edit it unless they change the permissions to a higher state.
The reason for setting these limits, and leaving the file permissions so low, is to avoid getting a ton of 500 internal server errors. These kinds of errors are common on webservers that use PHP as CGI, and they can build up rather quickly, and create a number of problems.
In Zen Cart, it is possible to configure products so that they are categorized as both physical/shippable and virtual/downloadable products. There are very few instances in which this functionality is useful, but if you happen to find yourself needing to set a product up this way, look no further! In this Zen Cart tutorial, we will teach you how to properly configure a product in this manner.
The first thing you should do is to check and see if your products are set to ‘Always Free Shipping’ or ‘0 weight’. If this is the case, go check Admin–>Configuration–>Shipping/Packaging, and make sure that these settings match those of your products.
The main difference between a product that is only physical or virtual, and one that is a combination of the two(Sometimes called a ‘combo’ product) has to do with the weight attribute assigned to any given product type. Unlike a physical or virtual product, combo products can have their Weight added to the Product and/or the Attribute. Which one you choose to add it to is not really all that critical.
To actually create a combo product, mark it as’Product is Virtual: No, Shipping Address Required’, and ‘Always Free Shipping: Special’ .
Since Physical/Virtual combo products require a shipping address by default, zen cart will automatically calculate the weight as it usually would for a product which does not require a shipping address. This allows the shipping to function properly, despite the fact that the product is also marked as downloadable.
After marking the product in this manner, simply go on to configure it with the Special and Shippable/Download Combo, including the weight on the product and/or Attribute(s) for shipping. You can add additional attributes to the download as needed.
Zen Cart is one of the best shopping cart programs out there. It is a favorite among ecommerce businesses because it typically requires very little maintenance, which gives store owners more time to themselves. Even though maintenance is minimal for normal operation, however, there are some circumstances under which maintenance tasks can build up, and create what can seem like a mountain of work for the store owners. There are many practices which can lead to this, but most commonly, it is found in stores where products and/or EZPages are constantly being added/edited/updated.
Luckily, a Zen Cart plugin exists to help with this issue. It’s called SitemapXML(formerly ‘Google Sitemap’), and it’s job is to generate pre-formatted XML site maps for Google. The only problem is that this site map needs to be manually updated from the admin area from time to time. This can take up an annoying amount of time under some circumstances, but this process can be automated, which is what this tutorial will focus on. It should be noted that in order to do this, you will need to be able to write and schedule a cron job on your web hosting account.
Before you begin, make sure that you already have SitemapXML installed. After this, you will need to call the page generating the XML file with a cron job using cURL. Go to your CPanel area as provided by your web hosting company, and schedule the cron job to run as often as you think is necessary. They should run more or less after every time you make an update. This is the code you will need to set in order to automate the process:
CRON JOB 1: