Prices are moving out

Posted by Michael Vax Oct 20, 2009

The upcoming 6.2 release of Elastic Path will include some big changes to price management. Currently, prices are a property of the product and live inside the catalog. This means the only way to have multiple prices for the same product is to use virtual catalogs. That's fine if you want to have different prices in different stores, but it doesn't help if you need to have multiple prices for the same product in the same store.

     

In 6.2, prices are getting lives of their own. They're moving out of catalogs.

     

There are several business and technical drivers behind this change:

 

  • In many enterprises, different systems are used to manage pricing and catalog information. This means different update cycles and integration points.
  • It is not uncommon to distribute responsibilities for maintaining pricing and catalog data between different departments or people.
  • Online retailers want to have flexibility to price products differently for different customer segments. For example, you may want to offer better prices to registered users.
  • The ability to support multiple price lists is especially important in B2B environments where prices can be determined by the contract with each business customer.
  • By separating Price from Product, it would be possible to cache other product information in memory, which would significantly improve storefront performance.

     

In 6.2, all price information (price tiers, sale and list prices, etc.) is now stored in price lists. A price list contains prices in one currency only. If your store supports multiple currencies, you will need to create a separate price list for each currency.

     

    FromCatalogToPL.jpg

     

 

There will be a new way to manage prices in Commerce Manager. There will be a Price List Manager activity that provides a way to manage a set of product prices from price list's perspective. Users will still be able to use the Pricing tab in the Product Editor to manage prices for a product, but under the hood, the prices are actually stored in multiple price lists, not in the Catalog.

 

Commerce Manager permissions have been extended to separate responsibilities for managing catalog from managing price information.

     

Separation of prices from catalogs is also reflected in EP's import/export features. When exporting catalogs using the Import-Export tool, the exported catalog data will not include price information anymore. Price lists will be imported and exported using Price List Import / Export instead. And in the Commerce Manager, it will be possible to import price lists in CSV format as well.

     

In 6.2 you will be able to define any number of price lists and use them with more than one catalog across multiple stores. Let's see how this works.

     

A Commerce Manager user associates a Price List with a Catalog by creating a Price List  Assignment (PLA).

    PLA.jpg

     

     

Each PLA has a priority and, optionally, some targeted selling conditions that determine which shoppers are eligible for the price list. These conditions use the same tags that are used to determine which Dynamic Content shoppers see in the storefront. A Price List Assignment is very similar to a Dynamic Content Delivery. For more information, see the blog posts on the Tagging Framework and Dynamic Content.

 

Users can associate multiple Price Lists with a catalog by creating multiple Price List Assignments, each with different priorities and targeted selling conditions.

    PLAs.jpg

     

By evaluating PLA conditions against the shopper's tag set, EP builds a Price List Stack from Price Lists that meet the targeted selling conditions. Price Lists are arranged in the stack according to their priorities. To determine a product's price, the system goes through the Price Lists in the stack until it finds the first price list that contains a price for the product.This means that it is not required for a Price List to have prices for all products in the Catalog. If, for example, you have different people managing prices for different product categories, you can create separate price lists and assign them all to the same catalog.

PL Stack.jpg

Price management is a complex area, and required quite a bit of upfront design and refactoring many points of the application. Being able to leverage the Tagging Framework for Price List Assignment was a big help. A lot of customers are really looking forward to this, so it was definitely worth the effort. We have a couple other big features coming in 6.2 and I'll try to take a few moments to talk about them in the next couple weeks.

0 Comments Permalink

We often get asked whether Elastic Path can be integrated with a CMS. We always answer, "yes, of course!" but I suspect at least a few of us wonder how much effort is really involved. I know I did. Well, now I can say that the effort is minimal (no coding required!), at least if you're using Alfresco. Alfresco is a production-ready, open source content management system, and in this post, we'll see just how easy it is to install Alfresco, import your assets, and set up Elastic Path to pull assets from Alfresco.

 

First, you'll need to get Alfresco on your machine. Alfresco comes in two flavors:

  • Enterprise Edition, which includes full commercial support
  • Community Edition, which is unsupported and intended for developers who just want to play around with it.

 

Download the Community Edition (at the time of writing, the current version of the Community Edition is 3.2). Note that although the Community Edition is unsupported, you can still ask questions in the Alfresco forums. The Alfresco wiki is also an excellent source information.

 

When you run the Alfresco setup, it will ask you to specify the setup type. To keep things simple, choose typical. This installs all the required components including Java, Tomcat, and MySQL. If you already have Tomcat installed, you may need to change the Server and Connector ports to avoid conflicts. You can do this after the installation is complete by editing tomcat\conf\server.xml under your Alfresco installation directory.

 

After it's installed and running, go to the login screen (http://localhost/alfresco) and enter the administrator username and password (admin/admin).

 

After logging in, go to the Company Home area and create a space to store the assets for your Elastic Path deployment. Under Browse Spaces, click Sites. (You can choose Web Projects instead if you prefer.)

alfresco_browse_spaces.png

Click Create->Create Space.

alfresco_create_space.png

Enter a name and title for the space and click Create Space. Your space now appears under Browse Spaces.

alfresco_new_space.png

Now you need to add your Elastic Path assets to your space. The fastest way to do this is to zip your entire assets directory and import the zip file into the space.

 

First click the space name. Then click More Actions->Import.

alfresco_import.png

Browse to the assets zip file, select it, and click OK. After the zip file is imported, the contents are extracted automatically and the directory structure is recreated within the space. It might take a few minutes to complete, so the folder may not appear in Alfresco right away. (You can delete the zip file after the assets folder is created.)

 

Now we need to get the SMB/CIFS path that we can use in Windows Explorer to access the assets. Click the View Details icon under the assets folder.

alfresco_view_details.png

If you're using Internet Explorer, click View in CIFS. (Because it's using a UNC path, it won't work in other browsers.)

alfresco_view_in_cifs.png

In the Community Edition, all the supported repository access protocols are enabled by default, including FTP and SMB/CIFS. Unless you've done something strange, you should see a Windows Explorer window showing the contents of the assets folder in Alfresco. (If you're not using Internet Explorer, copy the CIFS link from your browser and paste it into Windows Explorer.)

alfresco_explorer.png

Take note of the path in the address box. It should start with the Alfresco server name followed by an "a". That "a" is automatically added by Alfresco, but it can be configured by changing the cifs.serverName property in tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\fileServers\default\file-servers.properties , located under your Alfresco installation directory. For more information, see http://wiki.alfresco.com/wiki/File_Server_Subsystem.

 

The next step is to map that path to a Windows drive letter. (The COMMERCE/SYSTEM/assetLocation setting in Elastic Path must be set to a valid file system path; UNC paths are not supported.) In Windows Explorer, click Tools->Map Network Drive. Select an unused drive letter and enter the path in the folder field. Make sure Reconnect at logon is selected. Then click Connect using a different user name. Enter the Alfresco administrator user name and password. Click Finish.

alfresco_map_net_drive.png

The final step is to log on to the Commerce Manager client and configure the COMMERCE/SYSTEM/assetLocation setting to point to the assets folder on the mapped drive. After you do this, restart your app server. Your storefront will now be pulling its theme files, images, etc. from Alfresco. You'll also need to point the different VFS settings in Elastic Path to use Alfresco's FTP so that the CM client's asset manager is able to retrieve the assets from Alfresco as well.

 

Once your assets are in Alfresco, you'll be able to take advantage of its sophisticated content approval workflow and collaboration features.

11 Comments Permalink

Checkout Revisited

Posted by Janis Lanka Oct 1, 2009

The checkout process is quite possibly the scariest part of the online shopping experience. Customers get anxious about divulging sensitive personal information, not to mention parting with their hard-earned cash. Long and complicated customer registration forms to fill out, strange error messages, security concerns, too many steps, etc., all contribute to shopper frustration and all too often, cart abandonment.

 

We recently did a review of our current out-of-the-box checkout process and we made the following observations:

 

  • There are too many steps, resulting in a high cart abandonment rate.
  • The distinction between customer types is confusing. "Am I a registered customer or an existing one?" "What's a 'guest'?"
  • Giving the option to register during the first step of checkout is an unnecessary distraction. It gives customers too much time to change their mind!
  • While the cart total is visible during each step, it doesn't provide a breakdown on specific items that have been added to the cart.
  • Customers who have a promotion code don't know where to enter it, which leads to frustrated calls to customer service.

 

We started looking at ways to simplify the process and we came up with a shorter, smoother, and clearer checkout process that works well for various industries and customer types/profiles. In this new and improved checkout process, there are only three stages:

  • shipping information
  • billing information
  • receipt and (optional) registration.

Shipping Information

In the new process, the login and shipping information pages are merged into a single page. If a returning customer can't remember their login name or password, they can skip it and just enter the shipping details without any extra clicks. Here, guests and new customers are treated the same.


The contents of the shopping cart are displayed on this page and on both of the other checkout pages, so the customer always knows exactly what they're buying. The coupon and promo code fields are also available at each step, under the shopping cart summary. Once a coupon or promo code is applied, the cart total is updated automatically via AJAX.

c_shipping.png

 

Billing Information

The billing step asks for the customer's email address and any other information required for invoice purposes. All the shipping information entered in the last step appears once again for final customer review. The final confirmation block is a good place to have a subscription or "sign up for email alerts" check box. Even if customers don't create an account, they may still choose to be on the mailing list.

c_billing.png

 

Receipt and Registration

Unlike the standard checkout process, the customer is only asked to register for an account after they've made their purchase. Some retailers might worry that nobody will register unless they're required to. If that's a concern, you can provide some incentive for registering (like a discount on their next purchase). Keep in mind that the point is to avoid distracting the shopper from their goal, which is to make their purchase.

 

If the customer registers for an account after checkout is complete, that order will be associated with the new account. Unfortunately, previous orders they created will not be, even if they were created under the same email address as the new account. (This is for security reasons.)

c_confirmation.png

 

This new checkout process will require using AJAX/JavaScript validation at every step, making it a bit tedious to code, but worth it in the long run.

 

We are currently in the process of integrating this new process for several of our clients and will be keeping a close eye on their performance and results. Of course, this process may not work for every ecommerce site. Hopefully this will at least give you some inspiration for ways to improve your own checkout process. There are always areas that can be simplified and streamlined. Just keep testing various aspects of your checkout process. That's the only way to really learn what works best for your audience.

 

Stay tuned and subscribe to our RSS feed because down the road we will follow up with another post regards the results and observations.

1 Comments Permalink