Planet osCommerce
September 22, 2007
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.
September 03, 2007
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; 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
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.
August 29, 2007
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; 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
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
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.
August 20, 2007
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; 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
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
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
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!
July 20, 2007
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.
Our 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.
June 24, 2007
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.
June 09, 2007
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.
June 08, 2007
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.
June 05, 2007
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.
May 14, 2007
I’m glad to report that the forum has successfully migrated to a new server. The move started last week on Friday which left the forum in a read-only state that led into the weekend. This was required to keep the database consistent while the DNS changes were taking place, and to make sure the new server could handle the load properly incase it had to go back to the old server.
The read-only state was removed on Saturday where logins, new registrations, and postings were being accepted again, and has so far been running fine.
April 25, 2007
Although our development priorities are with finalizing the 3.0 release, a final 2.2 release will also be made prior or simultaneously with the 3.0 release. This will move the 2.2 Milestone 2 release into a final 2.2 release with a small number of known bug fixes, and will close the 2.x release line.
No major features will be introduced into 2.2 as any framework enhancements would break compatibility with add-on contribution packages, and any feature missing is likely to be found with over 4,000 add-ons currently available.
One core framework change that will be introduced with 2.2 is a compatibility layer for servers with register_globals disabled. Currently 2.2 Milestone 2 demands that register_globals be enabled otherwise it refuses to continue working.
The register_globals requirement has always existed since the beginning with The Exchange Project Preview Release 1.0 (March 2000) as at this time PHP 3 was used commonly in conjunction with PHPlib (for session management) and the release of PHP 4.0 was being anticipated with the new Zend engine and native session management support.
Trivia: The Exchange Project Preview Release 1.0 only supported PHP 4 at the time due to the native PHP session management functionality it introduced. It was not until June 2000 that PHP 3 support was added with using PHPlib for its session management functionality, with the release of an “extra pack” for The Exchange Project Preview Release 1.1. Support for PHP 3 at the core level was introduced with The Exchange Project Preview Release 2.0 in December 2000.
The programming standards since The Exchange Project 1.0 to osCommerce 2.2 Milestone 2 have used proper variable scope usage for the $HTTP_GET_VARS ($_GET) and $HTTP_POST_VARS ($_POST) variables. As security and register_globals were non-issues back in the day, the main reason for using correct variable scope usage here were to inform developers which scope the variables were being accessed from. The only variables not used in its correct scope were the session variables which were accessed at the global scope (hello $HTTP_STATE_VARS), and was programmed in mind with register_globals being enabled (which it was by default until PHP 4.2.0 (April 2002)).
Although register_globals needed to be enabled, it was not until June 2002 that it was forced upon in osCommerce 2.2 Milestone 1 (February 2003) with an evil exit() message if it was disabled, as a means to reduce the number of bug reports made with PHP 4.2.0+ installations. This was seen as a temporary measure at the time to have a proper register_globals compatible solution before the 2.2 release was finalized.
The requirement for register_globals was fixed with a proper solution in July 2003 during the development of osCommerce 2.2 Milestone 3. As this was just one of the major incompatibilities to osCommerce 2.2 Milestone 2 it was later decided to completely break compatibility for further improvements and continue onwards to a 3.0 release.
Due to the long development period for 2.2 Milestone 3 / 3.0, it unfortunately kept the register_globals requirement active on the 2.2 Milestone 2 release during this time and will be finally fixed for the final 2.2 release. The fix is covered by a compatibility layer and can only be active on PHP 4.3+ installations. This is to keep compatibility with the add-ons available where advancements to PHP that are used for the compatibility layer are available since 4.3.0. It is not possible to implement a fix for lower PHP versions without breaking compatibility with the available add-ons.
This allows 2.2 to be still used on servers running PHP 3+, PHP 4+, and PHP 5+ with register_globals enabled, and optionally on PHP 4.3+ and PHP 5+ with register_globals disabled. This makes the 2.2 release more interesting even though it is an old release simply because it is a widely used, community supported (4,000+ add-ons!), mature, and secure solution that is a viable alternative to the next generation 3.0 version once it is finalized and released.
The changes for existing installations can be seen here:
http://svn.oscommerce.com/fisheye/changelog/osCommerce/?cs=1583
http://svn.oscommerce.com/fisheye/changelog/osCommerce/?cs=1584
register_globals has lived the past few years with a bad reputation simply due to bad programming or learning from examples at a time where security was not an issue as it is today. The osCommerce 2.2 Milestone 2 release was a big step towards a secure codebase and has not been affected by register_globals vulnerabilities that other PHP solutions have been affected by, even that it requires it to be enabled.
osCommerce 3.0 will work on servers with register_globals enabled or disabled, and disables it at run-time if it is enabled. This is to pass secure coding standards onto developers for the add-ons they develop and make available, and is in preparation for future releases when register_globals is removed from PHP 6.0.
April 23, 2007
Hi,
The live shops can now be filtered by the country. This filters each main category and empty categories are not shown.
http://shops.oscommerce.com/
This is very nice to be filtered by countries!
Enjoy!
March 29, 2007
We’re looking at releasing osCommerce 3.0 Alpha 4 tonight (Friday 30th March CEST). Although the roadmap entries for this release were finalized a while ago, some standard updates were performed on the framework to get both the Administration Tool and Catalog sides on par with each other. This left our Lebkuchen somewhat longer in the oven than planned but man does it taste and look real good now
One of the last pieces of work that was developed for this release was the migration of the Administration Tool language definitions to the new ini style format that was introduced for the installation routine. This was done in preparation for the HTML E-Mails roadmap entry for 3.0 Alpha 5 where e-mails can be sent out in the language the customer has selected. By moving to the ini style format for the language definitions, it allows us to overwrite definitions with another language set at run-time which was not previously possible with the use of PHP constants.
Getting this work in now for the 3.0 Alpha 4 release gives it a greater audience for aggressive testing rather than leaving it for the 3.0 Alpha 5 release.
The 3.0 Alpha 4 release is also a great starting point for developers to start getting familiar with in regards to creating add-ons for it. Although there are still framework changes planned that will make the add-ons incompatible with the final 3.0 release, we hope to receive a lot of feedback from developers with how their experience with the release went, and how to further improve the framework to make it even easier to integrate add-ons for the final 3.0 release.
To kill time in waiting for the release to occur here are two movies demonstrating the Who’s Online page with the MaxMind GeoIP Country Lite module activated, and a second movie demonstrating the new Administrator Log section, customer address book administration page, and batch job capabilities.
Who’s Online Movie
Thanks to the MaxMind GeoIP Country Lite module, it is now possible to see the country flag as icons beside each customer entry, as well as additional information to the IP address which is GeoIP module dependent.
It’s also now possible to delete active customer sessions via the Who’s Online page. Although such functionality is available, it must obviously be used with extreme care.
Administrator Log Movie
The visual representation of customers is also improved by showing gender specific icons next to each customer and address book entry. This makes it easier to address the customer correctly when contacting them directly.
The introduction of the Administrator Log feature shows what database modifications were performed by which administrator. The logging information helps when a mistake was made and can be backtraced to who made the change and when. Administrators that have access to this section only see the entries to the sections they themselves have access to, and can be filtered together with a specific administrator.
The different coloured backgrounds for the Administrator Log entries mean the following:
- Green: inserted database field
- Orange: modified database field
- Red: deleted database field
The introduction of the Batch Job Capabilities feature brings in new checkboxes to the table listings on each Administration Tool section where actions can be performed on many entries at once. Newer actions such as exporting will be introduced in the next alpha development releases.
March 15, 2007
Well it’s been a while since I posted a site of the month. You may wonder why… After looking through 100’s of stores I was thoroughly disappointed as there were so so few quality designed osCommerce stores. I finally came across one:
Softforest
Softforest specializes in bamboo bed and bath products.
I choose this site because it is easy to navigate and has a very simplistic yet elegant design.
Also after reviewing sites, I want to emphasize several points.
1) DO NOT RESUBMIT YOUR SITE MULTIPLE TIMES. You will receive an email if your site has been approved.
2) DO NOT use your url as your title.
3) If your site is in another language (other then English), add a description of what you sell in English in the description field.
March 06, 2007
The core roadmap entries for the 3.0 Alpha 4 release have been finalized today in trunk on the development repository. There is still some cleaning up to do and some tickets to still take care of, which means a public release of 3.0 Alpha 4 is just around the corner.
As most of the changes in the 3.0 Alpha 4 release are with framework improvements, the coolest feature that can be seen is the new Administrators Log section on the Administration Tool. This section displays all database modifications performed on the Administration Tool and can be used with a simple call to the database class:
$Query = $osC_Database->query('update :table_customers set customers_firstname = :customers_firstname where customers_id = :customers_id');
$Query->bindTable(':table_customers', TABLE_CUSTOMERS);
$Query->bindValue(':customers_firstname', 'Joe');
$Query->bindInt(':customers_id', 1);
$Query->setLogging('customers', 1);
$Query->execute();
The parameters passed to the setLogging() class method are the section of the Administration Tool the modification is occurring from (”customers” being the Customers section) and the ID of the database record (optional). The query above would log the old value of the customers first name and the new value in the administrators_log database table.
The Administrators Log feature is used together with the Administrators Access Levels implementation and serves to keep the store owner up to date with modifications other administrators have performed.
The output of the Administrators Log is currently rather raw and will be improved in later releases where modules can display the data in a more human readable format.
A movie presenting the Administrators Log feature will be posted in the coming days.
We are also now registered at the CIA site that displays the activity occurring on the development repository server. Commit changes are also now displayed in the development IRC chat room in real-time.
February 28, 2007
There’s a posix related bug in PHP 5.2.1 that affects BSD systems. The closest bug report is 40410 which was reported for 5.2.1 RC 4 and is marked as closed.
Although 40410 fixed a posix related compilation error, usage of the PHP function posix_getgrgid() in PHP 5.2.1 returns the following fatal error:
Fatal error: Out of memory (allocated 2097152) (tried to allocate -1 bytes) in /tmp/test.php
This was reported to Anthony Dovgal, who took care of 40410, and confirmed that this problem was fixed in 5.2.2-dev (php5.2-200702281330).
I came across this problem today while working on the Administration Tool -> Tools -> File Manager section, which uses the posix_getgrgid() function to display the group owner name of the files and directories. As Mac OS X is based on BSD, it also affected my development environment.
Some updates were backported today to the osCommerce 2.2 development branch regarding the Backup Manager section on the Administration Tool.
The problem that was addressed was that the contents of the sessions database table was being restored from an earlier state when the backup was made. This behaviour could introduce a conflict in session data when a database restoration would merge the session data if an earlier session ID is currently in use again.
The chances of this occurring would be rare and has been fixed so that the backup logic does not store the contents of the sessions database table in the sql dump, and the restoration logic clears the sessions table when an import is performed.
The changes here will be included in the next 2.2 Milestone 2 update package, and can be manually performed by reviewing commit r1274.
February 13, 2007
Hi All! It’s been a while since my last blogging entry so here is a quick wrap-up of what has been happening.
We’re still working hard on the 3.0 Alpha 4 release and wanted to have gotten the final 3.0 release ready at the end of 2006. The features on the roadmap for the 3.0 release are not what is extending the 3.0 release schedule, but the core framework that is continually being improved on during the alpha release development cycle.
The current ticket (OSC-23) being worked on implements batch capabilities to the Administration Tool and is being programmed together with a major framework update. This brings in a more OOP approach to the Administration Tool that matches the Catalog side, and opens opportunities for the core and for add-ons to take advantage of, especially by means of administrative RPC calls.
This is the last major framework update that will be worked on for the 3.0 release, where cleaning-up and polishing will occur during Alpha 5 and Alpha 6.
We’re looking at releasing 3.0 Alpha 4 by the end of the month, and Alpha 5 and 6 quickly thereafter.
I will also post new movies showing some new features on the Administration Tool but this will wait until ticket OSC-23 is finalized.
Frank Heinen has joined the development group in the team and has been of great help with taking care of reported tickets/issues and being active in the community. Our priority is getting the Alpha 4 release finalized, and look forward to working closer with additional developers as soon as it is released to help with future releases.
Over to the community support forums, the forum software was upgraded today and also brings in a change to the representation of the team to the community. All team members usernames have been changed to their real names, and will also incorporate photos of themselves in their user profiles. To keep a reference, the username changes are:
hpdl -> Harald Ponce de Leon
241 -> Stephen Bissett
BlueNoteMKVI -> Chris Dunning
F.R.@.N.K -> Frank Heinen
wendyjames -> Wendy James
modom -> Melinda Odom
The_Bear -> Pierre Rollin
wheeloftime -> Howard van der Burgt
andyy15 -> Andrew Yuen
Please report any unusual problems introduced with the forum software upgrade in the Project Feedback channel on the forums (or directly to a team member if you can’t view the forums at all now
). Please be sure to refresh your browsers cache as there may be some minor CSS or javascript issues.
On the personal side, my responsibilities have increased by being a proud owner of a dwarf-hamster. This was a christmas present given to me and was presented as “I-Ham: Internet Capable Hamster”
It’s nice seeing her run around in her environment when I’m still working late at night
February 01, 2007
Just a short note to say that it is snowing in Arkansas! It started yesterday and is still lightly snowing today. My dog Maggie is using her nose as a snow shovel so that is pretty funny!
I have been pretty busy as of the first of this new year but hope to do some more work on the docs soon.
Everyone take care and spring will be here soon!
January 27, 2007
It’s just about the end of January and time for my site of the month pick. After searching far and wide I decided to choose Knot Just Baskets.
Knot Just Baskets has a simple and effective design. They sell gift baskets and gifts for various occasions. I found there unique osCommerce site contained an effective navigation scheme.
In response to replies to my previous site of the month posting I have proposed a new idea to the osCommerce team. I suggested the integration of a poll module to the current blog system set up on the osCommerce site. That way I will be able to select 2 or more site’s for consideration for my “site of the month” title. By adding a poll osCommerce visitors and site users worldwide will be able to provide feedback. My “site of the month” title will be given to the site that receives the highest amount of votes by the end of the month. I would love to hear your feedback on this idea. Feel free to post a response to this blog.
December 10, 2006
Hi all,
I hope everyone is not stressing out for the Holiday season!
I have decided to start Andrew’s osCommerce site of the month. Each month I will post my favorite osCommerce store based on all the live shops entries reviewed by me. It will be based on design and usability.
My favorite site for DECEMBER is:
The Rocking Horse
On line baby boutique & stylish gifts.
I really like the site’s overall layout. They did an excellent job with the design and navigation buttons. The osCommerce portion is nicely integrated into the rest of the website.
December 08, 2006
Just want to say Merry Christmas and Happy New Year to all!
What a joyous season of the year! It even snowed here a little. My dog Maggie was outside using her nose as a shovel for the snow so that was funny … she was running around with the snow on her nose.
The docs are slowly being moved to this wiki and still in progress although this will slow down during the holidays.
Take care if you are driving or flying to family and enjoy the season!
November 24, 2006
Hi Everyone!
I hope you all had a wonderful Thanksgiving and Thanksgiving weekend! I cooked a chicken instead of a turkey this year and had my special dressing and homemade cranberries … wow am I full! I get a brand of chicken that does not have chemicals in it and is only around in certain areas. The brand is called “Smart Chicken” … that chicken wasn’t too smart if he ended up on the table!!! LOL
Anyway, I have started moving the doc information from the knowledgebase to the new wiki confluence site and cleaning it up. The new wiki is really nice because you can type in the “Rich Text” box area and the code is automatically extrapolated into the wiki box. Also the wiki editing is much easier than other wiki sites I have seen. As I understand it the new wiki site will send pdf files of the text so this is a plus.
I really thank Harald a lot for making this so nice and easy for all of us! Thank you Harald!
I look forward to getting the docs ready for ms3 and ask the community to send me ideas or changes to look into.
We all need to work together!
Hi everyone, I hope everybody had a good Thanksgiving. I just got back from shopping after attempting to buy several tech items. One of which was a 250 gig external hard drive. After getting to the stores at around 8 am I had no luck
Lines were long and stores did not have enough of the advertised items. How many people believe in shopping on Black Friday? Is it worth it anymore or is it just better to shop online? Do you offer Black Friday specials on your osCommerce store? I am beginning to think it’s better to just stay at home especially with my experience today, not being able to get anything that was advertised. And after you get what’s advertised you have to spend time filling out rebates!
More info on Black Friday
November 06, 2006
PHP 5.2.0 was recently released which “includes a large number of new features, bug fixes and security enhancements” to the PHP 5.x series. The PHP Group also published an upgrade guide for existing PHP 5 users that documents the (incompatibility) changes the new release brings.
osCommerce 2.2 Milestone 2 Update 060817 works fine with PHP 5.2.0 (with register_globals and register_long_arrays enabled).
There is however one change that 5.2.0 brings in that causes osCommerce 3.0 Alpha 3 to produce a PHP FATAL error in the sessions implementation, specifically when the session data is stored in the database (by default for osCommerce 3.0).
This is due to a change in session_set_save_handler() where the “write” and “close” handlers are called after objects have been destructed.
As the sessions implementation in osCommerce 3.0 is done in a class/object, writing session data and closing the session are no longer possible as the registered object would be destructed and no longer exist to perform those duties.
The proper solution here is to use session_write_close() in the destructor of the osC_Session class:
class osC_Session {
...
function __destruct() {
session_write_close();
}
}
As __destruct() is a PHP 5 feature only, an alternative solution is needed for PHP 4 compatibility (the minimum requirement for osCommerce 3.0 will be PHP 4.1), and that is to register session_write_close() as a shutdown function:
session_set_save_handler(array(&$this, '_open'),
array(&$this, '_close'),
array(&$this, '_read'),
array(&$this, '_write'),
array(&$this, '_destroy'),
array(&$this, '_gc'));
register_shutdown_function('session_write_close');
This has already been reported at our new Issue Tracker and has been fixed at r1107.
November 03, 2006
The Commit Policy for developers has been updated to describe the process of referencing tickets on Jira when the changes involved solve that ticket.
http://svn.oscommerce.com/confluence/x/JQ
When viewing a ticket on Jira, the referenced commit changes will be automatically shown under the “Fisheye” tab where the comments are shown.
The Repository Browser (Fisheye) also automatically links to the tickets when referenced in the commit log.
November 02, 2006
The Trac solution on the Development Site that was responsible for the wiki, tickets, and repository browser has been replaced due to the persistent problems it had on the server. The Development Site is now running on 3 new “enterprise-class” solutions that provide more features and flexibility in fostering the developer community.
The solutions now taking care of the wiki, tickets, and repository browser are:
- Confluence (Wiki)
- Jira (Tickets)
- Fisheye (Repository Browser)
Each can be easily reached at:
http://svn.oscommerce.com
The contents of the previous Trac installation have been migrated over to the new wiki and ticket sites. Please note that the accounts created previously for Trac are no longer used, and that a new account has to be created on Jira if tickets are to be submitted or tracked. Please also be sure to replace your Trac RSS subscription feeds to the new feeds each solution provides.
A hardware upgrade of more memory is also pending due to the extra resources the solutions place on the server. These are Java based solutions running on 2 Tomcat application servers; one for Confluence and Jira, and one for Fisheye (which currently requires its own application server), and are being served by the Apache webserver.
The Apache webserver has been tuned due to it basically acting as a proxy server. It was infact about to be replaced by lighttpd but realized that Apache is still needed due to the subversion repository. I am personally still interested in seeing what benefits lighttpd can bring in this setup and will look into it again in the coming weeks.
With the new Wiki site now live and running we are also contemplating moving the content from the Knowledge Base site over to it. Due to the content on the Knowledge Base site being based on current development versions, moving it over to the Development Site will make it a perfect fit where all development related work can be found on the one site. This would then leave the oscommerce.info domain serving static documentation that is produced by the Wiki site for the stable releases.
A change to the Tickets site has also been performed where it will be possible to submit tickets regarding language definitions and developer branches. This has been started on the languages with the developers that have already created user accounts on Jira, and will include the other developers as soon as their accounts have been created. The benefit here is submitting a ticket in a specific category will automatically assign it to the developer working on the job.
The Repository Browser (Fisheye) is also a radical change compared to Trac and will take a few mouse clicks understanding how it works.
It’s fun looking at graphical representations of the amount of lines in the codebase with Fisheye. Additional statistical information regarding the development repository can be found at Ohloh:
http://next.ohloh.net/projects/3341
It’s currently only measuring /trunk/oscommerce and will look at updating it to /trunk/ to also include the languages being worked on.
Overall I’m very impressed with the new Development Site and therefore thank Atlassian (Jira, Confluence) and Cenqua (Fisheye) for making it possible by supplying free licenses to the solutions for Open Source projects
Other changes in our network infrastructure have also occurred the past week where the database server for the Community Support Forums was upgraded. A new faster dedicated server is also being currently prepared to move the German Community Support Forums over to from its current dedicated server. The total number of servers running the osCommerce Network of Support Sites is 5 dedicated servers, in addition Sunsite.dk and SourceForge who mirror the downloads for project releases and contribution files.
Some interesting facts I hope
October 15, 2006
So I was at a restaurant yesterday and we ordered a dish with vegetables. As soon as it comes out and I begin to dig in and guess what I see in it? It was a green caterpillar! With all the news in the US about e-coli and raw spinach and this recent incident that I had, I suggest paying careful attention and make sure you wash your vegetables prior to cooking or eating it. Have you ever found something really weird in your dish at a restaurant? This was defiantly a first for me!
On a side note, I finished the final stages of a project I have been working on. As a webmaster looking for link exchange have you ever wondered if a site is a reliable reciprocal or paid link partner? I have created an organization QLEW (Quality Link Exchange Websites) which allows webmasters to leave comments on websites that offer reciprocal or paid link exchange. Membership is free but all QLEW members must abide by a strict code of ethics. If you have an osCommerce store that has a link directory please check out becomeing a member of Find quality link exchange websites.
October 07, 2006
Well I was surprised to see the PR (Page Rank) increase on one of the stores I have been working on Nita Creations. The PR went up from a 3 to a 4. It looks like Google has preformed a PR update. On the subject of SEO (Search Engine Optimization), An osCommerce store owner recently asked me the following question “How do I get my store listed on Google?” This in my opinion is a very common question that new store owners encounter after setting up there osCommerce site. So what are some basic steps that can be taken to increase the chance of Google indexing your website?
Here is a basic list of things to do.
- First, find a niche for your site and select a group of keywords.
(proper keyword selection is essential and cannot be stressed enough)
- Next, find link partners to backlink to your website.
(links back to your website from high PR pages RELATED to your site are especially useful.)
Now on to optimizing your osCommerce store.
- Make sure your title tag as well as alt tags contain your selected keywords.
- Make sure you have a sitemap that will help Google and other search engines spider your page.
- Make sure to always have fresh content.
These are just the basics, I cannot guarantee your site will increase in popularity but following these basic steps will certainly point your site in the right direction.
What are some PR determining factors?
- Which website links to you?
- PR of the website linking to you.
- Anchor text used in the link linking to you.
- Whether or not the website linking to you are deemed by Google as authority websites.
Feel free to post a comment with suggestions that helped you increase page rank and the popularity of your website. I also recommend that you visit the Next Steps/ Marketing forum here: http://forums.oscommerce.com/index.php?showforum=40
October 05, 2006
I returned from a 3 week break on the weekend, yes just after getting 3.0 Alpha 3 out the door, and am in top spirits to continue full-time work again on osCommerce. I did not make any public statement about this as I had my notebook and mobile phone with me to be able to take care of important issues during this time.
This was the first experience for me at connecting online over a mobile phone and did not face any technical problems doing so. The only negative aspect I had with it was when checking my inboxes due to the amount of spam I receive. Even using IMAP and only downloading headers took a while to complete but was sufficient in picking out the emails that looked important enough.
I was also able to bring the development site up during this time after it crashed a couple of times. There is a threading problem with ClearSilver (which Trac depends on) and FreeBSD/AMD64 which occasionally causes the web server to crash. Fortunatly Trac have moved on to their own templating engine called Genshi which the developoment site has been recently updated to (0.11-dev). Although a risky move, I hope this brings an end to the downtime of the development site.
I mentioned briefly in a blogging entry in March that I would be going to Tegernsee/Bayern again in September for the Oktoberfest. I went for a week in March and was there again for 3 weeks this time. The major difference being ofcourse the seasonal change where everything was now green instead of white. And ofcourse what you order after a long walk (beer vs hot chocolate drink)
Here are two pictures of the same temple I took pictures of in March, on top of Wallberg mountain:
Now that the sea was free of ice I rented a small 2,000 watt electric boat and took it for a spin:
The Allianz Arena soccer stadium:
And ofcourse some pictures of the Oktoberfest:
(on the Star Flyer, about 50m high)
(on the Ferris Wheel)
(on the Olympia Roller Coaster (with 5 loopings), yep, look closer to see me on it
)
I also went on the EuroStar Roller Coaster - both rides were too short in my opinion.
(on the Flying Circus (the ride I enjoyed most; and yep, look closer at around 39s to see me on it
))
mvi_0454.MOV
(me with a Maß in my mouth)
(follow these outside the tents to find the toilets)
With the fun and social experience at the Oktoberfest there was another experience that topped it that occurs normally in nature. After reaching a restaurant during one of our long walks through the forest, we were able to witness a group of young deers in an opening and were able to hear the adult deers deeper inside the forest. This was a rewarding experience after a long walk, enjoying a beer and seeing this not far from where we were seated:
mvi_3887.MOV
Overall a great holiday, and look forward to the next Oktoberfest next year
I’ve been spending this week catching up on work and will start committing some changes on the administration tool next week for the alpha 4 roadmap entries. I started on modularizing the administration tool during my break and look forward to finalizing the work involved as the access levels implementation depends on it. The modularization of the administration tool makes it even easier to install administrative contribution add-ons without the need to edit core source files.
September 02, 2006
If your live shops description is in a language other then English, please use a free translation service to provide a description of what you are selling in English. All too often when reviewing live shop directory submissions I run into submissions that are in a foreign language that I do not recognize. Sometimes, these entries contain products in which I have no clue as to what they actually are. This makes it hard when selecting an appropriate category for the entry. So to ensure that your store gets placed in the appropriate category, please include a description of what your store is selling in English.
August 25, 2006
Common questions on the general support/ installation and configuration forums answered:
I see threads pertaining to these common issues too frequently while surfing the forums.
1) SSL Questions
Before posting a SSL question, search the forums.
Then review this article:
Click Here
Also read the following article: SSL, A General Discription
2) Feature Questions
Example:
I need to set a minimum order quantity per product. How can this be done?
or
I want to give my customer’s a discount for orders over $30.00. How can this be done?
Before posting a question regarding the addition of extra features do a search on the contribution section of osCommerce.
Click Here
3) Password Protection of admin area
If you need to protect your admin panel consider using a .htaccess file.
Password Protect Directories
4) register_globals is disabled in your PHP configuration error
To fix this problem I recommend this solution:
a ) create a text file
b ) rename it to php.ini (when renaming be sure to rename the file utitled.txt to php.ini not php.ini.txt)
c ) include the following in this text file (now named php.ini):
register_globals = ON
d ) upload this file into your catalog folder
Feel free to add to this entry, hopefully people new to osCommerce will find this information useful.
Before posting a question.
Always remember to do a forum search. All to often your question will already be answered!
August 23, 2006
I added Order Editor 2.6.3 to my store today to deal with orders that customers make with custom ring sizes that require special pricing. When doing so I noticed that I had remnants of order editor 1.6 on my server. Fortunately all turned out well and I got everything to work.
I realized I should have been doing something from the beginning that I wanted to point out to all new osCommerce users. When installing your first contribution to your store I suggest creating a text file and recording the date, name of contribution and contribution version. Then after installing new contribution thereafter, I suggest adding them to this list. I regret not doing this when setting up my store, I now have well over 60 contributions installed on my store but do not know the version of each contribution installed and when it was installed. This information will be very useful if any of the contributions need to be reinstalled or updated/upgraded.
August 22, 2006
In Germany we usually start to see Spekulatius in grocery stores around Christmas. This year seems to be different as Spekulatius has made an early appearance.
I’m not complaining about it - I just had to double check in my mind what month we were in. I ofcourse picked up a packet to buy
My acknowledgment that it was indeed too early for Spekulatius came at the checkout, where the cashier said “Wow, you can actually buy these now?”.
mmmmmm… Spekulatius dipped in coffee..
So, while I’m here enjoying some Spekulatius, I’m still hoping that the summer is not over just yet.
.. and what’s new on the development front? I’ve been doing some robot work of standardizing the framework and moving from the old tep_ function format towards the new osc_ namespace.
That isn’t just a simple search and replace one can do to rename tep_* functions to osc_* function names, as it would still be the same under the hood and wouldn’t warrant a milestone release to be made.
As an example, the general.php functions file has been slimmed down from ~48 functions to 18. The functions were either deprecated or moved to the new class definitions.
All html_output.php functions have been standardized, with the Catalog, Administration Tool, and Installation module all using the same file.
The address related functions have been moved to a new osC_Address class, and it is now actually possible to administrate the address formats. The format strings have been moved to the countries database table making it easier to administrate them.
This allows the address format to be very specific for the country it is assigned to. Examples here are European countries that add a country letter code in front of the post code (eg, D-54570 Kirchweiler, for Germany).
Nothing here can be shown in a movie though as the work being done is in the framework, which can all be seen over at the Development Site.
The 3.0 Alpha 3 release is also nearly ready and am looking forward to addressing features again for the Alpha 4 release.
mmmmm.. Spekulatius…
August 04, 2006
After reviewing several live shops directory submissions, these two stores stood out.
Didier Goubet
Didier Goubet has a very nice header and makes good use of icons on the right infoboxes.
To the left there is a very nice rotating picture.
Kaizen Health
A very nice header and layout. A very clean overall design.
Kaizen Health has a really nice rotating sub-header.
Although both sites have a unique design they both are not designed for a 800 X 600 resolution screen.
August 01, 2006
Hi All!
I added some more sites today to the Live Shops and really liked artistri. It has been really stripped down but since it is showcasing art this really works well.
The lack of all the side boxes, and navigation all being at the top of the site kept me focused on looking at the art and not distracted by lots of stuff I am not interested in. Not all types of stores could pull off this layout and have it work for them but it definately works for this website.
July 30, 2006
I went to the dollar store today and found shelves of missed marked back to school items containing the below price tag:

(1 FOR $0.00)
I have never seen so many products at one time incorrectly marked at $0.00! This is an excellent reminder to all osCommerce store owners to check their prices to make sure that none of their products are incorrectly priced.
To be on the safe side I suggest adding “ANY $0 PRICED ITEMS ARE NEW ITEMS AND ARE CURRENTLY BEING PRICED AND ARE TEMPORARILY NOT FOR SALE” to the conditions of use page.
July 27, 2006
While reviewing multiple live shop submissions, I have noticed several things:
When writing a description write about something unique about your site that makes your store stand out from the rest of the stores in the category. I see too many one sentence descriptions that have little to no thought put into them. A better description will also help us determine the correct category to place your site under.
Please make sure that your site has all required information filled out (Shipping and Returns, Privacy Notice, Terms and Conditions). Also make sure that the links to these pages are easy to find.
I have also noticed several broken links as well as sites that do not even use osCommerce.
Following these guidelines should assure that your site will be approved for the live shops directory much faster.
July 26, 2006
I haven’t yet found a suitable “diff” application for the Mac that is as good as Beyond Compare for Windows. Under Linux it isn’t a problem as Beyond Compare can run fine under a Wine environment, which is unfortunately not available on the PPC platform.
As the unix “diff” program is commonly available, I followed up its manpage to see what parameters were available to adequately report a listing of different files within two separate directories. The following command meets my demands appropriately:
diff -rq --ignore-matching-lines=$Id: --exclude=.svn --exclude=.DS_Store dir1 dir2
This recursively scans dir1 and dir2 to list different files, while ignoring “$Id:” strings within files and “.svn” directories. Any (Mac specific) “.DS_Store” directories are also excluded from the listing.
I created an alias for this to save retyping the whole command each time I need it:
alias oscdiff='diff -rq --ignore-matching-lines=$Id: --exclude=.svn --exclude=.DS_Store $1 $2'
I can then use that as simple as:
oscdiff dir1 dir2
This helps me when I work on my own development branch and when it is time to commit to /trunk/, can make sure that all changes have been merged over.
I have recently noticed some general trends when reviewing OsCommerce sites. Many OsCommerce shop owners forget to do the following:
Change the rollover color of their links to match their stores color scheme.
This can be done here: catalog/stylesheet.css
Change the buttons to match the design/color scheme of their store.
This can be done here: catalog/includes/languages/[Your Language]/images/buttons
Change the icons to reflect their store design.
Right click on the image you wish to replace. Most of them are named table_background_default.gif or something along those lines. Once you get the properties, look at the path and then upload your new image in its place.
July 25, 2006
I just experienced another nasty PHP4 / PHP5 compatibility issue that plagued the logging features of the support site administration tool (which is planned to be introduced in the 3.0 Alpha 4 release).
The implementation uses the strrpos() function to grab the end of a string from a string searched starting point. The opposite function is strpos() that searches from the start of the string instead from the end.
The string to search for, the needle, can be a character or a string for the normal strpos() function in both PHP 4 and PHP 5.
There is however a difference with the strrpos() function where PHP 4 accepts the needle as a character only, and can first be a string from PHP 5 onwards.
This took some time to debug where my local server is running on PHP 5 with the logging features working fine, and the support site running PHP 4 where the issue was first evident.
There is a warning about this on the documentation page which I overlooked during the implementation phase. Such incompatibility warnings should be marked with the infamous <blink> tag so they stand out better
The positive side to this is the valuable user comments on the php documentation pages where numerous functions are provided to workaround the problem.
Workaround functions are obviously not elegant solutions to use, and will look at improving the logic further for the 3.0 Alpha 4 release.
July 19, 2006
Hi All
I added 100 or so websites earlier today and saw a few I wanted to mention here.
Nub’s Nob Ski Resort
Original layout, simple but very eye catching. I like the layout and the colors they chose. Very easy on the eyes and makes you want to take a look around.
Crooked Tree Breadworks of Petoskey Michigan
I love the simplicity of this site along with the color choices. It is very easy to navigate and not cluttered. So many sites have way too much going on it because distracting. They did a great job keeping it clean.
Buy Natural Skincare
This site is very well done and hard to tell it is osCommerce, expecially if you are not familiar with it.
A little crowded for my tasts but what they have done as far as making it their own made this a good site to point out.
This one has a very professional look. Even though it has the stock osCommerce layout… header, 3 columns and footer… they have done great things with the look that makes it original. I love the fact they have great detailed descriptions for each category. Great use of space.TRUEly Natural
http://dallas.caramelcomics.com/catalog/
This site did a great job of making osCommerce their own expecially with the layout. First time I have seen one like this and I was impressed. It’s not fancy but the look really catches your eye and made me want to look around. Nice big product images as well.
Well, that is my list for now. I am sure I will come across some others to point out.
July 11, 2006
Hi,
We now have a navigation system in place for the live shops!
The link is under the “Network” section.
http://shops.oscommerce.com/
Each sponsor and new site added has their own section plus the main categories are broken down again for easier searching.
Have fun and enjoy!
July 07, 2006
Hi All
I went through a bunch of new sites today and came across two I would like to share because they are very well done.
Ineke
and
i*Sunglasses
Both sites are using a template system but they really caught my attention.
The first site is totally original. I haven’t seen anything like it, and although the second site is a template I see very often they did things to it to make it their own. So many people get the template that this company is using but do little or nothing at all other than changing the logo to make it something different.
I really suggest taking a look at these if you plan on purchasing or downloading a free template.
Great examples on how to change them and make them even better.
July 06, 2006
I haven’t been actively online the past few weeks but have been pretty busy offline, and will blog about the past few weeks soon. For now I’m keeping this entry focused on showcasing the multiple product images feature that is finalized and ready to be fine-tuned.
The idea behind the implementation is to define image groups with their relevant sizes and to resize all images in each image group. The primary image group is an “Originals” group that holds the base image to resize from (ie, the largest image size).
The initial implementation was to form an image to image group relationship to only resize images in relevant groups to save on disk space on the server. This relationship was later removed to have images resized in all groups as disk space is cheap, and it’s cool to show a bunch of images ready for viewing when needed.
There are so far 5 image groups defined as default:
Originals
Thumbnails (default)
Product Information Page
Large
Mini
The Thumbnails group is defined as the default group which is shown throughout the catalog. The Product Information Page group is slighly larger than the Thumbnails group and is used on the product information page only. The Large group is larger than the Product Information Page group and is used for the popup window to show the single product image in more detail, or to view additional images of the product. The Mini group was added in last to be used in the You’ve Recently Visited module, and is smaller than the Thumbnails group size.
It’s up to the template on how the images are shown on the product information page. Traditionally it has only shown one image to click on for a larger view, and is now easily possible to show additional images on the product information page relating to a group, with or without the need for a popup-click-to-enlarge feature.
For the default template one image is still being shown on the product information page, and has its popup window dynamically sized depending if additional images exist or not. If the product only has one image defined, the popup window is sized specifically to the Large image. If multiple images exists, the popup window is sized accordingly to fit in a 2 column Thumbnail view and a larger view of the selected product image.
The administration part is really fun to work with, but will need to have user interface issues addressed as the edit product page is a form that needs to be submited to save any changes, where the actions on product images occur instantly with AJAX (uploading, deleting, and drag-and-drop sorting).
An additional issue exists of an iframe being used to handle the file uploads, due to forms not being able to be nested. Due to the tabs on the page, FireFox sometimes does not show the iframe (file upload form) until the tab is clicked on again, and Safari also has some issues with not uploading the file occasionally.
Otherwise it is working great and is really fun to play with
Here is a movie showcasing the multiple product images feature:
osc30a3_product_images.mov
Yes, if you’re not following the RSS Timeline feed on the development site, this work is in /trunk/
June 01, 2006
You know, remodeling a home is a pain… well can be a pain but it sure does make you feel good when you can see the end of the work. Hopefully for me that will be soon. : ) I mention the remodeling because Melinda (modom) has been great enough to help me keep up with the Live Shops while I have been busy trying to paint, rip up carpet, put down tiles, etc and so on.
I got through 3 pages (60 entries give or take a couple) worth of entries tonight. Lots of great sites added, but sometimes I have to wonder what people are thinking. I came across several sites that were not active… not only did they not even have a coming soon page (which still can’t be listed but atleast it is something) but they actually still had the generic place holder page webhosts give new people. There were a couple where the sites could not be found. I would really like to know why someone would submit a website if the store (or any site at all if they are trying to sneak em by someone) isn’t even there.
Another thing I would like to mention, although I know it has been said several times now by me and by Melinda… there are rules to submitting websites. Atleast 10 sites had to be removed because they did not follow the rules. It is bound to happen but it gets frustrating when it keeps happening over and over and going through the Live Shops is something I (and others) do in our spare time… what little there is of it.
Anyhow, I did come across a couple of really great sites… meaning they were well done and appealed to me. Everyone has their own tastes and people should definately check out the sites as they get added to see what others are doing with osCommerce.
I really liked https://sklep.swiatczekolady.pl/index.php although I couldn’t read a word of it and have no idea what the title is. I do know they sell chocolates. The site definately took some time to change the stock look. The product list page is pretty neat and they put a lot of thought into the product descriptions.
I also liked http://www.kleidershop.ch They used the STS template system for the layout which is very clean and professional looking. Only thing I found that could be an issue was that there was a javascript error.
Now, this site may not impress some but I absolutely loved the colors and the fact that even though the layout itself is very “standard” they did some really cute things with the look tpo make it their own. http://www.girlcharlee.com/
Well, I am off now to go do some work before I head to bed. Lucky me.
May 26, 2006
Hi,
We are keeping caught on the Live Site Submissions … thank you Wendy!
However, we are finding that there are several duplicate submissions and some are not following the Live Shop rules here:
http://www.oscommerce.info/kb/280
All sites that do not follow these guidelines are deleted.
All sites that put in duplicate submissions are deleted … we have a checker in place so it really does not help you to make multiple submissions.
Soon we will have a category navigation for the Live Shops and your site will be in the most appropriate one!
On some earlier site submissions I found a few sites that I thought were really nice to share.
1. Eden Bridals
This site is very clean and elegant and has lots of graphic work. The only thing I would change on this site is the Result Pages: 1 2 3 4 5 … [Next >>] navigation links in the stylesheet to be more in line with the colors of the site … a nice burgundy color would be good!
2. Rawlings Leather Goods
I especially like the way a graphic is to the left of each category listing when you click on that category and love the colors!
3. At Wix End
You can navigate from category to category using the little arrow buttons on the same line as the name of the category … good job and nice, soothing colors!
We look forward to community input!
Sincerely,
Melinda
May 18, 2006
It looks like we have to use another compatibility function due to inconsistencies between PHP versions.
For PHP versions below 4.3.5, defined() returns an integer (1 or 0), whereas from 4.3.5 onwards it returns a boolean (true or false).
This makes it impossible for us to use the following:
if (defined('CONSTANT') === true) {
...
}
A note has been added to the PHP documentation page to warn others of this inconsistency.
Relevant bug report:
http://bugs.php.net/bug.php?id=27443
May 15, 2006
We’ve just announced our new public development server and are anxious to see the possibilities it can bring. I’ve been working on this the past week and look forward to development again to finalize the 3.0alpha3 release.
Although public access to our development repository is now available, public testing will first pick up when 3.0alpha3 is finalized as it will be packaged and available for download. No download package for the 3.0alpha2 release is available due to the problems it has on PHP4 servers, which have been fixed in the development repository.
The new public development server also brings us back to our roots as an Open Source Project, after closing the public CVS server we had a while ago to concentrate on the new framework and to cease the support conflicts it created on the support forums.
We’ve learned from that experience and have separated the development server from the support site.
Those that previewed the new site all provided positive feedback, and look forward to fostering a development community again.
Tip: Subscribe to the Timeline RSS feed on the development server to keep up to date with the development progress made
April 29, 2006
Or maybe it is just me being a goofball… but I have just spent a bunch of money trying to make a Betta happy. Bettas are those colorful fish you see in Walmart or petstores that most people keep in a small bowl. Well, the other day my husband and I were in Walmart and we were in the pet section getting food for my dogs and I spotted the Bettas all lined up in these tiny little plastic bowls with white covers. I am such a softy and talked my husband into letting me get one. Like we need another pet. We have 4 dogs and 2 cats as it is. Anyhow, to make the fish happy I HAD to have a bigger tank so we got a 1 gallon tank, some pretty glass stones and a plant. Not bad, everything included about $40.
Ok, get home fish is in the new tank and happy. I am happy cause the fish is entertaining. Had to name him because Bettas have amazing personalitys. Like little bitty dogs or something. So anyhow, named the fish Bart. He seems really happy for a couple of days. Wouldn’t you know it though… poor thing get’s bored and keeps attacking his shadow and swimming in circles. I have had several Bettas in my life but never one that had so much energy so I had to have a bigger tank for him. HAD to. Did I mention I am a goofball?
Now, 3 days go by and I talk my husband into taking me to the pet store to get a bigger tank but I don’t feel good so he goes by himself. He comes home with a 5 gallon tank, another plastic plant, a big rock, more gravel and an algae eater Yay! Get Bart, that’s the Betta, into the new tank and he is like so psyched. He’s swimming in the stream of the filter like some little under water surfer having loads of fun. I am happy cause he is happy. 2 days go by and he is no longer swimming around all happy but spending most of his time bugging the algae eater trying to make him swim so I think he needs some friends. I really think he sees “sucker” written on my forhead.
Two days later after watching Bart act all depressed we go to the petstore and get him 4 friends. No idea what kind of fish they are but they are small and kind of cute. Well, Bart doesn’t like two of them so we have to give them to the sister in law. So now the tank has Bart, Zig and Zag… two speedy little yellow fish, and the algae eater without a name.
You would think things are perfect now but no. Things are great for about a day and a half. Because it is a new tank and plastic plants the algae eater has nothing to eat and is like acting nutso so the husband stops at a petstore on the way home from work today and picks up 2 live plants and algae eater food. omg who ever heard of such a thing? And because the fish won’t eat the food that falls to the bottom he also picked up a crab. Yes, a little crab. I named him Gary. That thing can eat and eat… he hasn’t stopped since we put him in the tank.
Well so far so good but it has only been a couple of hours. Bart is loving one of the plants the algae eater is liking the other. I have to wait until later on to put the tablet food in and see if he will eat that. Zig and Zag are well…. zigging and zagging all over the place and Gary the crab is cleaning the tank and pretty funny to watch.
So to make a Betta fish happy, this insane sucker of a woman has spent just about $150. I think I need to see someone about my softness but it is almost my birthday so I have told the husband he doesn’t have to get me anything. Like he was going to after spending all this money on a fish anyhow.
They are fun to watch and sitting right here on my desk so that is a plus. I catch myself just sitting here watching them for long periods of time. Kind of relaxing and honestly more fun than most of the stuff on tv. Zig and Zag like to chase my led light I shine in the tank and Bart comes up to the surface and “kisses” my finger if I put it in the water… yes, I am easily entertained. This story should have already clued you in.
As a side note… anyone who tells you Betta fish can be happy swimming in a bowl the size of a coffee cup is just plain old wrong. They just don’t know any better.
February 11, 2006
As some of you or all of you may have heard, the Live Shops are now up to date. Melinda and Rhea worked very, very hard. I did what I could, which wasn’t nearly as much as they did but now it is my turn to work and keep the sites up to date.
I am checking them every day which seems to be working well so far. Going to keep my fingers crossed that I am able to keep up. There are many submissions a day which is fantastic. Just shows how popular osCommerce is!
Don’t forget to follow the guidlines when submitting a site so it can be listed.
If you are unsure what they are go here…
http://www.oscommerce.info/kb/280
and that will tell you what you need to know.
Gotta run, got a canasta game to play!
Have a good one.
February 03, 2006