On time for christmas: SilverCart 1.3.4

I can‘t belive it‘s christmas next week. 2012 flew by, literally. Each of us was working hard to further improve SilverCart and to keep up with the client work.

We started the year with SilverCart 1.3 and the full multilingial support. Roland did a great job refactoring, so we could release this important milestone in July. You can revisit all the features and improvements of SilverCart 1.3 here in the blog post. 

In September, we shipped SilverCart 1.3.1 which focused on the widget system and functionality of the backend (i.e. admin panel).

In October, SilverCart 1.3.2 was due. We packed so many features into this release, it could undoubtedly have been labelled 1.4. Most important improvement was the enhanced order management with the quick data access. Our clients love the widget system, it‘s a very powerful tool and we refined that as well.

SilverCart 1.3.3 came out November. The main focus was performance. We improved the caching mechanisms a lot and also gained some milliseconds by tweaking some functions. But we also developed new features, such as the definable quantity units. 4.75 meters of cloth anyone?

SilverCart 1.3.4 will be the final release for this year. We identified some more performance issues, added config options for the cache, added new widgets...well, just check out the detailed list:


  • Database performance enhancements.
  • Performance enhancement of cart and positions.
  • Enhanced template caching.
  • SilvercartProductGroupNavigationWidget gained possibility to expand only the active branch.
  • Added customisable addCartFormNames to SilvercartProduct.
  • Forms in widgets on product detail view pages get handled correctly now.
  • Added cache to product group pages getProducts.
  • Added number of products in a product group to 'SilvercartProduktGroupPageSelectorsForm'.
  • Disabled jumping when clicking on a SilvercartProductPage tab.
  • SilvercartAvailabilityStatus gained a field for additional information.
  • ExtraCssClasses can be used with content view widgets now. SilvercartProductGroupItemsWidget gained new field ExtraCssClasses.
  • Added new widget SilvercartPageList.
  • Countries can be set as prioritive now; prioiritive countries will be displayed at the top of dropdown lists when using SilvercartCountry::getPrioritiveDropdownMap() as dropdown source;
  • Added ModelAdmin for CustomHtmlFormConfiguration; Added new tag "$getCustomHtmlFormSpecialFields" to all forms;
  • Added WidgetCacheKey to SilvercartPageList.
  • Pimped SIlvercartSubNavigationWidget: Added transable title, added option to show sibling pages, performance enhancements.
  • Added page injection to SilvercartTools::getPageHierarchy()
  • Added SilvercartContentParser
  • Added method SetRadioSizeMax to SilvercartImageDecorator.
  • Added plugin hook to add additional product data to add to a product list
  • SilvercartDataObjectSet provides a function to reset a DataObjectSets item indexes ($dataObjectSet->resetItemIndexes())
  • Results of SilvercartManyManyComplexTableField can now be limited to the controllers related objects by calling SilvercartManyManyComplexTableField::limitToRelatedObjects();
  • SilvercartProductGroupPage_Controller::getInjectedProducts() provides exclusion parameter now.
  • Made ProductNumberShop extendable via plugin provider for SilvercartShoppingCartPosition


  • Fixed malfunction of AddCartForms in widgets on non product group pages.
  • Fixed potential PHP warnings when checking for quantity in SilvercartShoppingCartPosition.
  • SIlvercartProductGroupChildProductsWidget lazy loading adjustments.
  • SilvercartSubNavigationWidget uses OriginalLink instead of Link now.
  • Added custom cache key for every checkout step to prevent malfunctional caching.
  • SilvercartShoppingCartPosition forms get registered correctly in SilvercartShoppingCart now.
  • LanguageForm is excluded from caching now.
  • ProductQuestion from ProductDetailPage works again.
  • SilvercartProductGroupPageSelectorsForm provides a cachekey for number of products and sort parameters now.
  • SilvercartSearchResultsPage shows correct number of results now.
  • Expanded CacheKeyExtension for SilvercartCheckoutFormStep2.
  • SilvercartCheckoutFormStepPaymentError directs to checkout form step 3 instead of 2 now.
  • Fixed cachekey for SilvercartProductGroupPage.
  • SilvercartSubNavigationWidget calculates child page levels correctly now.
  • FillInRequestValues of SilvercartContactForm will be called properly now.
  • Shopping cart will not process its frontend constructor operations in backend anymore.
  • Exclude SilvercartCheckoutFormStep5 from caching.
  • Added workaround to prevent server errors when using search queries with more opening brackets in it than closing brackets. This problem results in a sapphire bug in SQLQery.
  • Minor i18n corrections of SilvercartProductGroupHolder CMS fields.

The updated API-doc is also available at api.silvercart.org.

You can download SilverCart 1.3.4 or get yourself a hosted demo up and running in a few minutes.

Where there is light, there is shadow. Not everything turned out to be as planned. Our original idea to migrate to SilverStripe 3 could not be made true. It‘s strange, because SilverCart grew so vastly, there is no way to migrate to SilverStripe 3 in a few months. And given the fact that we have quite some customers asking for featues and improvements for their exisiting SilverCart installations right now, each day we implement new features in SilverCart is a day missing to build SilverCart 2 - which in turn now takes one day longer to build. Considering that SilverStripe 3 is also evolving (Version 3.1 beta has just shipped) it‘s perfectly ok for us to catch up later in 2013.

We‘ll all take a break from Monday, december 24th until January 2nd, so we won‘t be around much longer this year. Forum and mail support will be restricted, but we‘ll take a wee peek every now and then.

We wish you all a merry christmas and a happy new year 2013.

Merry christmas with SilverCart eCommerce Software

© T.Tulic - Fotolia.com