osCommerce Blog

PayPal Promotion for UK Merchants

March 14th, 2008 by John Fitchett
Posted in Partners

PayPal are pleased to offer this exclusive promotion to UK osCommerce merchants. Sign up to Website Payments Pro or Express Checkout by the 7th June 2008 and you could be in with a chance of winning one of 10 prizes allowing you to pay no monthly fees or transactional fees for three months with PayPal!

Simply call 0800 358 9450 and quote osCommerce. (Terms and Conditions)

osCommerce V2.2RC2a comes with the PayPal modules as default payment options, including Website Payments Standard, Website Payments Pro (UK & US) and Express Checkout (as a stand alone option). These new modules can also be downloaded as Add-Ons for osCommerce merchants running version 2.2MS2 and above.

New Community Add-Ons Site

September 22nd, 2007 by Harald Ponce de Leon
Posted in osCommerce

The new community add-ons site is now live which aims to replace the current contributions section on the support site by providing additional features to help developers maintain their add-on packages.

The new site will be rolled out in 3 stages with the first stage contemplating the existing contributions section. In addition, community members and developers can help clean the structure of add-on packages by reporting uploads to be removed.

The following changes are planned for the second and third stages of updating the new site:

2nd Stage Updates:

  • register_globals compatibility flag for 2.2-RC1 and 2.2-Final installations
  • Maintainers can assign their add-ons as public or private to allow or disallow additional uploads from other community members
  • If an add-on is private, maintainers can assign other community members as maintainers who are allowed to upload files to the package

3rd Stage Updates:

  • Allow maintainers to edit descriptions
  • Allow maintainers to link their uploads to a forum topic (for support)
  • Allow maintainers to upload screenshots of the add-on in action
  • Allow maintainers to link to other add-ons as a “related” feature
  • Allow community members to adopt an inactive add-on

The new community add-ons site can be reached at:

http://addons.oscommerce.com

We look forward to rolling out the additional features in the coming weeks and look forward to the additional suggestions the community has for improving the experience of finding, downloading, and contributing additional add-on packages.

Introducing Product Attributes

September 3rd, 2007 by Harald Ponce de Leon
Posted in osCommerce

Although the product attributes implementation has been replaced with the newer Product Variants feature, a new feature of the same title is being introduced to 3.0 Alpha 5 which deals with non-core related product data with a flexible and modular implementation.

This allows modules to be created to define new data parameters for a product which can easily be accessed via its module code.

Once a product attribute module has been installed via the Administration Tool (in the same manner payment and shipping modules are installed), its field is automatically added to the edit product page where the module controls the presentation of having its value defined.

This allows add-ons to be installed that add data fields to the product without the need to modify the edit product page in order to save the data in the database.

A minor change to the database class has also been performed to automatically bind the database table names in SQL queries which allows any database table to be accessed without the need to define it first in the includes/database_tables.php file. (This file will be removed in the 3.0 release)

Here is a short QuickTime movie showing the new Product Attributes feature with the following attribute modules:

1) Date Available (javascript controlled input field)
2) Manufacturer (pull down menu)
3) Shipping Availability (pull down menu)

osCommerce Online Merchant Product Attributes QuickTime Movie
osCommerce Online Merchant Product Attributes QuickTime Movie; 1.1MB

The product information page on the store front-end has also been updated to allow the dynamic product variant combination values to control certain data on the page, such as the product price and the product model.

osCommerce Online Merchant Product Info Page
osCommerce Online Merchant Product Info Page

The introduction of the new Product Attributes feature is currently defined for master products only, which product variants will use, and will be definable at the product variants level once the edit product page has been redesigned to handle the presentation of the data.

Product Variants and Custom Values

August 30th, 2007 by Harald Ponce de Leon
Posted in osCommerce

The new Product Variants feature has been extended to allow custom variant values which customers can define themselves. Common use of custom variant values is accepting text to apply to the product, for example, Apple providing engravements on their iPod multimedia devices, and clothing stores that print custom text on the front and back of t-shirts.

Here is a short QuickTime movie showing how product variants are created for a t-shirt product, and extended on by providing custom variant values:

osCommerce Online Merchant Product Variants QuickTime Movie
osCommerce Online Merchant Product Variants QuickTime Movie; 3.7MB

The primary change to support custom variant values went into the shopping cart class where it referenced each product in the shopping cart via its product ID. This brought in a limitation where it was not possible for a customer to add a t-shirt with different custom text values to their shopping cart incase they wanted to order the same t-shirt multiple times with different texts.

To allow this behaviour, each product in the shopping cart is now referenced by an automatically generated, customer specific, item ID where it is possible to order multiple quantities of a product, and now possible to order a product multiple times with different custom variant values.

osCommerce Online Merchant Product Info Page
osCommerce Online Merchant Product Info Page

It is now possible to mark a product variant as the default product variant on the Administration Tool to have default values already selected on the product information page. This shows above with the “Size” pull down selection list and the “Colour” radio button choices.

As this product accepts custom values, each time it is added to the shopping cart it is treated as a separate product in the shopping cart contents. This allows the product to be added multiple times with the same variant combination values but with different custom text values.

osCommerce Online Merchant Shopping Cart Page
osCommerce Online Merchant Shopping Cart Page

This behaviour only applies to products with custom variant values where adding a normal standard product to the shopping cart multiple times would increment its quantity value.

The parsing of the product variant combinations are performed by modules assigned to the variant group, which can easily extend the behaviour of product variants to suit ones needs. This modular implementation has also introduced our first PHP 5 optimized abstract class which forces modules to follow an operation standard.

To further extend the Product Variants feature, we will also be looking at making it possible for customers to upload files when adding products to their shopping cart. This builds on the custom text possibility for t-shirts where logos and images can be attached to an order. The next set of changes will finalize the implementation for the 3.0 Alpha 5 release and be committed to /trunk/, with the file upload extension being looked into for the 3.0 Alpha 6 release.

Introducing Product Variants

August 21st, 2007 by Harald Ponce de Leon
Posted in osCommerce

The Product Attributes implementation for the 3.0 Alpha 5 release is being replaced with a new cleaner and flexible solution called Product Variants. This extends the previous Product Attributes feature by creating separate product records for each variant and assigning them to one master product.

This allows the quantity, price, model, weight, status, and other product data information to be assigned distinctively to each variant a product has. As each variant has its own product record, referencing a product with a specific variant combination is easily performed with the product ID.

This is an extreme improvement over the previous implementation where specific attribute combinations were referenced with a string value containing the product ID and the various attribute group and attribute value IDs (eg, 14{2}14{5}256).

Here is a short QuickTime movie demonstrating how Product Variants are defined on the Administration Tool and how they are handled on the Online Store:

osCommerce Online Merchant Product Variants QuickTime Movie
osCommerce Online Merchant Product Variants QuickTime Movie; 1.6MB

The Administration Tool product listing identifies products containing variants and graphically distinguishes the records to normal product records:

osCommerce Online Merchant Administration Tool Product Listing
osCommerce Online Merchant Administration Tool Product Listing

The price range for the product variants (the minimum and maximum prices) are shown in the product listing as well as the number of total quantities the master product has.

Defining variants for a product can be performed by clicking on an “Add Variant” action button and by double clicking on the variant values to add:

osCommerce Online Merchant Administration Tool Product Variants
osCommerce Online Merchant Administration Tool Product Variants

The product variant combinations are held within javascript values and are first saved (or deleted) when saving the product record.

The Online Store also distinguishes between normal products and products with variants by showing either the full product price for normal products, or the minimum price for products with variations:

osCommerce Online Merchant Product Variant Pricing
osCommerce Online Merchant Product Variant Pricing

The Product Variants feature has been freshly committed to my subversion development branch and will be merged to trunk as soon as the implementation is finalized. The interaction with product variants on the product information page is being finalized and will be showcased later this week with another blogging entry.

If you’re keeping up to date with my development branch, please take a look at the changes and provide feedback on the community forums. Thanks!

Optimizing for PHP 5; Object Visibility

July 20th, 2007 by Harald Ponce de Leon
Posted in osCommerce, PHP

With our recent announcement of optimizing the osCommerce Online Merchant v3.0 release for PHP 5, I will begin blogging about the changes performed here for the v3.0 Alpha 5 and v3.0 Alpha 6 releases to serve as a guide for our community developers. This should help in understanding how the v3.0 framework is designed and how add-ons can take advantage of the optimized framework.

gophp5-100x33.pngOur decision to optimize the v3.0 framework for PHP 5 is based on the end of life support cycle for PHP 4 which ends at the end of this year. The announcement the PHP Group made regarding this coincides with the efforts of the GoPHP5 initiative whom which we are also supporting.

This allows us to concentrate on a PHP 5 optimized framework for future releases in the v3.x release series without the need to spend resources on PHP 4 compatibility past its end of life cycle.

The first PHP 5 optimized commits have already been performed in our development repository which reflects the classes and Object Oriented design of the framework. The new Object Model of PHP 5 allows us to tighten the design of the framework with the use of “object visibility”, and will be the first step in optimizing the framework for PHP 5.

Object visibility is in regard to defining class members and methods into three different visibility levels: public, protected, and private, which reflect how they can be accessed from outside the class, within the class, and within its inherited children.

The three levels function as:

public - this element can be accessed from inside and outside the class object
protected - this element can be accessed from inside the class object and its inherited children
private - this element can only be accessed from inside the class object

We’ll take a look at a shortened version of the session class to describe how each three visibility levels work.

<?php
  class osC_Session {
    protected $_id = null;
    protected $_name = 'osCsid';
 
    public function __construct($name = null) {
      $this->setName($name);
      $this->_setCookieParameters(SERVICE_SESSION_EXPIRATION_TIME);
    }
 
    public function getID() {
      return $this->_id;
    }
 
    public function getName() {
      return $this->_name;
    }
 
    public function setName($name) {
      session_name($name);
 
      $this->_name = session_name();
    }
 
    protected function _setCookieParameters($lifetime = 0, $path = null, $domain = null, $secure = false, $httponly = false) {
      return session_set_cookie_params($lifetime, $path, $domain, $secure, $httponly);
    }
  }
?>

The class members $_id and $_name are both protected and allow only to be accessed from within the class and its inherited children. This disallows accessing these members from outside the class as shown in the following example:

<?php
  $osC_Session = new osC_Session();
 
  echo $osC_Session->_id; // not allowed
  $osC_Session->_name = 'test'; // not allowed
?>

To allow access to these members from outside the class they must be defined with the public visibility level. As we don’t allow this as part of our coding standards, get and set methods are defined in the class that allow public access to the class members, as shown in the following example:

<?php
  $osC_Session = new osC_Session();
 
  echo $osC_Session->getID(); // allowed
  $osC_Session->setName('test'); // allowed
?>

Accessing the getID() and setName() class methods from outside the class object is allowed as these have been defined with the public visibility level.

On the other hand, the _setCookieParameters() class method is defined with a protected visibility level and cannot be accessed from outside the class object. The _setCookieParameters() class method can therefore only be accessed from within the class and its inherited children, as is being done in the class constructor.

The session implementation in v3.0 (Alpha 5) has been impoved to allow modules to be loaded that define how the storage of the session data is accessed. An example session module is the database module that stores the session data in the database. Each session module is an extension to the osC_Session class and therefore inherits its class members and methods.

This allows the database session module, named osC_Session_database, to access the public and protected class members and methods from the main osC_Session class.

If there were class members and methods defined in the osC_Session class with the private visibility level, its inherited children such as the osC_Session_database class would not be allowed to access it.

The default behaviour in PHP 4 is to allow full public access to all class members and methods. By using the visibility levels PHP 5 provides, it is possible to disallow public access to class members and methods to keep certain functionality for internal use by the framework only.

Further information regarding object visibility levels can be read at the PHP Manual.

As each class is being updated in the framework, phpDocumentation is also being written to provide a developers API guide with the v3.0 release, that describes each class member and method. This documentation will be completed during v3.0 Alpha 5 and v3.0 Alpha 6.

Web Hosting - Getting Your Website Online

June 24th, 2007 by Andrew Yuen
Posted in Live Stores

Ok so now that you have registered a domain name what’s next?
The next step is finding a reliable web host or setting up a web server. There are several types of web hosting options out there.

The cheapest type of web hosting is known as ISP (Internet Service Provider) web hosting. ISP web hosting is where the pages of your web site are located on your ISP’s server. The majority of ISP’s offer two methods of hosting your site:

a) Setup a sub site on the ISP’s main site.

b) Set up a virtual domain on the ISP’s server (where you are allowed to use the domain name that you purchased). ISP web hosting in my opinion should be avoided. The disadvantages (such as ISP’s may limit disk space, ISP’s may prevent the use of CGIs, ISP’s may charge for additional bandwidth, ISP’s may not allow you to access web analytics/usage logs) outweigh the main advantage (ISP are the cheapest hosting solution).

Using a hosting company is the second option and is highly recommended for small to medium sized businesses. Hosting companies generally provide either virtual hosting (shared hosting where your site resides on a server that also hosts other websites) or dedicated servers. Virtual hosting is the most common solution that small to medium sized businesses choose. However, depending on how large your website is and how many visitors your website receives a dedicated server may be the best option. Let’s briefly go over what you should look for when choosing a hosting company.

1) Does the hosting company offer 24/7 support? Do they have a support ticket system or online chat system where you can connect with a live person?

2) Does the hosting company offer a money back guarantee?

3) Does the hosting company provide you with control panel access?

4) Does the control panel that the hosting packages comes with include a password protect directory feature?

5) What type of web analytic tools are available to keep track of website statistics?

6) Does the hosting company allow you to run CGI scripts?

7) Does the hosting package come with POP (Post Office Protocol) support?

8) Does the hosting package come with a dedicated IP address? If so can SSL (Secure Socket Layer) be installed on the server?
(This is very important especially if you plan on setting up an e-commerce website.)

9) Does the hosting package include Fantastico which has osCommerce pre-installed making installation easy?

10) Does the hosting company allow FTP access to the server?

11) How much space and bandwidth is provided with each hosting package?

If you cannot answer any one of these questions for a particular hosting company then I strongly recommended not choosing that particular hosting company.

A Helpful Hint:
Before choosing a hosting company do some research. Visit hosting forums and check out what current as well as past customers have to say about the hosting company you plan to use.

Finally, the most expensive method is having your own on-premises server. An on-premise server requires a dedicated high speed connection as well as a server that is properly configured. This option is recommended for very large companies. One must consider the following when choosing this option:

a) You must have an individual or employee that knows how to resolve issues and maintain the system on site.

b) You will be responsible for data backup as well as implementing a power backup system.

Step one Choosing a Domain Name

June 9th, 2007 by Andrew Yuen
Posted in Live Stores

OK OK Andrew I have weighed both the advantages and disadvantages of starting an online store. Let’s go for it, where do I start?

Anybody who wants to open an online store and is planning on using osCommerce as there e-commerce solution must have the following:

a) Domain Name
b) Hosting

These two items are mandatory and both must be purchased.

*There are exceptions, for instance you could opt not to buy a domain name and opt for a subsite. Many internet service providers provide members with a directory for instance www.somthing.com/your_name. These are knows as subsite’s and usually do not cost any money. But let’s step back and think about this option. As a customer, if I saw a subsite I would think hey, this looks really unprofessional, maybe I should not purchase from this store. Not only that, let’s take a look at the domain name, it’s long and also may contain weird characters such as (_) underscore or (~) tilde. Finally, if you start off with a subsite and wish to move to a full domain name, any page rank that your subsite had will be lost as you will loose the domain name. With an actual domain name, if you want to switch servers all you have to do is change your domain name server settings.

Let’s take a look at domain names, highly recommended over subsite’s. There are a multitude of websites that offer domain name registration. In my opinion, stick with major sites that provide a) quality support b) have been around on the net for awhile.

After choosing a domain name registration company, it is time to choose a domain name. There are a variety of top level domains (tlds) to choose from. The most common are .com, .net, .org, .biz, .info and .us. Choosing the correct extension depends on where you are located and what you are selling. For instance if you are targeting only US markets and the .com and .net of your preferred domain name is not available, consider registering the .us extension. For online store, I always recommend the .com (commercial) and .net (network) when available. Keep in mind that although the .net extension was originally designed to be used by technical web sites it can be registered by anyone.

Let’s go over a few tips on selecting a domain name.

Length matters. Select a domain name that is short and concise.
It is easier to remember Mysite.com then this-is-my-site-on-the-web.com.
 
Your domain name should contain keywords whenever possible. This is a good trick to use to boost your site’s popularity for particular keywords on search engines.

Your domain name should be directly related to what you are selling. For instance if you are selling widgets your domain name should be something like ABCwidgets.com. I have noticed that the majority of visitors to many of my client’s sites arrive by typing in the domain name directly instead of going through search engines. This tactic allows for visitors to associate your domain name with what products you are offering when they type your domain name in directly.
 
Use generic names whenever possible. Try to choose a name that people may type into the address bar of their browser without hearing about you. For instance a domain name such as webdesign.com, is really good since people who are looking for web design services may just type webdesign.com into the address bar of their browser. However, this may be hard to accomplish without lots of money to buy these generic term domain names since many of them are already taken. Don’t let this discourage you from doing research within your field to find generic names associated with what you are selling.
 
These simple techniques will help increase your repeat visitor rates. Before choosing a domain name, it is advisable to search the uspto.gov website to make sure you are not infringing on any trademarks. Domain Name Availability is a useful tool (which supports various extensions) for checking the availability of domain names.
 
In my next blog entry I will go over hosting and SSL, the second important aspect of getting your business online.

Getting Your Business Online – Disadvantages

June 8th, 2007 by Andrew Yuen
Posted in Live Stores

Although there are many advantages to having a website, one also must consider the disadvantages. There are a large number of people who do not use the internet. Some people actually want to physically touch and see products that they want to purchase. Many people have an issue with using their credit card’s online, they are afraid of credit card fraud. Some people think that going to a traditional store to buy a particular item is much more convenient not use the internet.

The main point:

Depending on the business not everyone will use the web to find that particular business.

On a side note: You may think that the elderly in particular do not use the internet. Surprisingly, the elderly are the LARGEST population of growing internet users. The majority of them go online to shop for pharmaceutical products.

http://blogs.zdnet.com/ITFacts/?p=8049

Although I am at the computer every day doing work for clients and surfing the web for information, sometimes it does not cross my mind to search the net for a particular product. For instance I recently was looking for a new lawnmower. It never occurred to me to check eBay for lawnmowers on sale in my area for pickup (to save on shipping). I ended up going directly to the local hardware store to buy a new lawnmower. People do not always turn to the internet as their first choice of places to purchase a particular product.

If your have the impression that you will be instantly raking in tons of money by opening an online store on the internet, you should reconsider building that store. Even major companies are having trouble converting visitors into sales. A majority of people use the internet to compare prices and then go to local stores to purchase the item. As a store owner you should not depend on your online store as your sole source of revenue and expect it to make a major impact on your bottom line.

The main point:

Before you dive into e-commerce and start your own online business consider both the advantages and disadvantages. Depending on what you are selling, it just may not be a good idea to build an online store.

Getting Your Business Online – Advantages

June 5th, 2007 by Andrew Yuen
Posted in Live Stores

You may be wondering why I have not kept up with the site of the month posts. Recently, a featured store option has been added on to the live shops directory. Now, instead of sites of the month, I will be proposing featured sites to the rest of the osCommerce team. When I do select a featured site, I will also blog about why I choose that site if it is approved by the rest of the team.

I will be starting a series of blog entries geared towards small business owners looking to bring their business online with osCommerce.

For my first entry I will be discussing the advantages of the internet and how the internet can benefit small business owners.

Before building an online presence a small business owner must understand the benefits and drawbacks of building a website/ online store.

One of the major advantages of having an online store or website is that information is available to customers 24/7. This is an important aspect of the web that is often overlooked. As a customer, if I wanted information about a company that does not have a web site I would have to wait until they opened to call them. Even then, I may have to deal with an annoying animated phone system or answering machine. The internet, combined with e-mail, allows potential clients or customers to learn what they need to know at their convenience.

What are some other major advantages of having a store online? One major advantage is the reduction of marketing costs. Putting marketing information online saves the business owner a lot of money.

In addition to reducing marketing costs, websites also reduce support costs. A business owner can save money by using the Web to provide support when staff is not available. For instance, a business owner can integrate a Frequently Asked Questions module into their store which will assists in answering customer questions.

Websites also give companies a modern image. Having a .com and a company email address gives the impression that your business is current and up to date on technology. However, if you are creating a Web presence solely based on this decision then you must determine if that is enough of a benefit to justify the costs of going online.

Finally, creating an online store and/or website will greatly help with your company image. A professionally designed website can make your company look important and impressive.  For instance, positive product reviews left on your online store can dramatically improve your company image.

My next blog entry will cover the disadvantages of the web. Poorly designed web sites, web sites that are incomplete and web sites that are partially under construction can have a negative effect on company image. Many home-based or low-budget website fit this category. All too often when reviewing Live Shop entries I see stores that fit this category. These sites do more harm to the business then good.

Entries (RSS)