The latest release information about the Sitecore E-Commerce Fundamental Edition.
We welcome your feedback. On the forum pages, we have set up 2 forums:
- Sitecore E-Commerce Fundamental. The main forum.
- Sitecore E-Commerce suggestions for submitting suggestions for new features and improvements.
1. Config Changes
This section describes the config file changes between SEFE releases.
1.1. Config file changes in SEFE 1.1.0 rev.110511
The config file changes in SEFE 1.1.0 rev.110511 compared to SEFE 1.0.2.
Unity.config changes:
- Remove the following obsolete payment provider aliases from the <unity> section. The payment provider model has been simplified and does not require the differentiation between “online”, “offline” and “reservable” payment providers anymore:<alias alias="IPaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IPaymentProvider`1, Sitecore.Ecommerce.DomainModel"/>
<alias alias="IOfflinePaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IOfflinePaymentProvider`1, Sitecore.Ecommerce.DomainModel"/>
<alias alias="IOnlinePaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IOnlinePaymentProvider`1, Sitecore.Ecommerce.DomainModel"/>
<alias alias="IReservableOnlinePaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IReservableOnlinePaymentProvider`2, Sitecore.Ecommerce.DomainModel"/> - Add the following payment provider alias to the <unity> section. There is an alias for the new unified base payment provider: <alias alias="PaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.PaymentProvider, Sitecore.Ecommerce.DomainModel"/>
- Remove the “IOffline” prefix from the payment provider registrations in the <unity><container> section: <register type="
IOfflinePaymentProvider" mapTo="OfflinePaymentProvider">
<property name="PaymentSystem" />
</register>
<register type="IOfflinePaymentProvider" mapTo="OfflinePaymentProvider" name="PayByCheck">
<property name="PaymentSystem" />
</register>
<register type="IOfflinePaymentProvider" mapTo="OfflinePaymentProvider" name="MoneyTransfer">
<property name="PaymentSystem" />
</register> - Add the following mapping aliases to the <unity> section. These are aliases for the new Entity Mappers and Member Converters:<alias alias="Item" type="Sitecore.Data.Items.Item, Sitecore.Kernel" />
<alias alias="IEntity" type="Sitecore.Ecommerce.DomainModel.Data.IEntity, Sitecore.Ecommerce.DomainModel" />
<alias alias="EntityMapper" type="Sitecore.Ecommerce.DomainModel.Data.EntityMapper`2, Sitecore.Ecommerce.DomainModel"/>
<alias alias="IEntityMemberConverter" type="Sitecore.Ecommerce.DomainModel.Data.IEntityMemberConverter, Sitecore.Ecommerce.DomainModel"/>
<alias alias="EntityToItemMapper" type="Sitecore.Ecommerce.Data.Mapping.EntityToItemMapper, Sitecore.Ecommerce.Kernel"/>
<alias alias="ItemToEntityMapper" type="Sitecore.Ecommerce.Data.Mapping.ItemToEntityMapper, Sitecore.Ecommerce.Kernel"/>
<alias alias="ConvertibleEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.ConvertibleEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
<alias alias="BooleanEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.BooleanEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
<alias alias="DateTimeEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.DateTimeEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
<alias alias="ProductSpecificationEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.ProductSpecificationEntityMemberConverter, Sitecore.Ecommerce.Kernel"/> - Add the following mapping registrations to the <unity><container> section. They bind the mapping contracts with implementations:<register type="EntityMapper[IEntity, Item]" mapTo="EntityToItemMapper" />
<register type="EntityMapper[Item, IEntity]" mapTo="ItemToEntityMapper" />
<register type="IEntityMemberConverter" mapTo="ConvertibleEntityMemberConverter" />
<register type="IEntityMemberConverter" mapTo="BooleanEntityMemberConverter" name="BooleanEntityMemberConverter" />
<register type="IEntityMemberConverter" mapTo="DateTimeEntityMemberConverter" name="DateTimeEntityMemberConverter" />
<register type="IEntityMemberConverter" mapTo="ProductSpecificationEntityMemberConverter" name="ProductSpecificationEntityMemberConverter" /> - Add the following constructor injection to the <unity><container><register type="IOrderManager"> section. It makes FastQuery the default search provider, which increases the performance:<constructor>
<param name="searchProvider">
<dependency name="FastQuerySearchProvider" />
</param>
</constructor> - Add the following order status aliases to the <unity> section. These statuses are used by the new reservable payment providers to reflect the current order state:<alias alias="Authorized" type="Sitecore.Ecommerce.Orders.Statuses.Authorized, Sitecore.Ecommerce.Kernel"/>
<alias alias="Captured" type="Sitecore.Ecommerce.Orders.Statuses.Captured, Sitecore.Ecommerce.Kernel"/> - Add the following order status registrations to the <unity><container> section. They bind the base order status class with the new implementations:<register type="OrderStatus" mapTo="Authorized" name="Authorized" />
<register type="OrderStatus" mapTo="Captured" name="Captured" /> - Add the following collection aliases to the <unity> section:<alias alias="IEnumerable" type="System.Collections.Generic.IEnumerable`1, mscorlib"/>
<alias alias="Collection" type="System.Collections.ObjectModel.Collection`1, mscorlib"/> - Add the following string collection registration to the <unity><container> section:<register type="IEnumerable[string]" mapTo="Collection[string]">
<constructor/>
</register> - Add the following Product Factory aliases to the <unity> section:<alias alias="ProductFactory" type="Sitecore.Ecommerce.DomainModel.Products.ProductFactory, Sitecore.Ecommerce.DomainModel"/>
<alias alias="ItemProductFactory" type="Sitecore.Ecommerce.Products.ItemProductFactory, Sitecore.Ecommerce.Kernel"/> - Add the following Product Factory registration to the <unity><container> section:<register type="ProductFactory" mapTo="ItemProductFactory" />
Sitecore.Ecommerce.config:
- Add the following pipeline processors to the <sitecore><processors> section. The processors monitor if an order item or an order line item was changed and perform the order price recalculation if needed:<uiDeleteItems>
<processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:before="processor[@type='Sitecore.Shell.Framework.Pipelines.DeleteItems,Sitecore.Kernel' and @method='Execute']" method="OnItemDeleted" />
</uiDeleteItems>
<saveUI>
<processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:after="processor[@type='Sitecore.Pipelines.Save.Save, Sitecore.Kernel']" method="OnItemSaved"/>
</saveUI>
<uiDuplicateItem>
<processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:after="processor[@type='Sitecore.Shell.Framework.Pipelines.DuplicateItem, Sitecore.Kernel' and @method='Execute']" method="OnItemDuplicated"/>
</uiDuplicateItem>
<uiCopyItems>
<processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:after="processor[@type='Sitecore.Shell.Framework.Pipelines.CopyItems,Sitecore.Kernel' and @method='Execute']" method="OnItemCopied" />
</uiCopyItems> - Add the following grid page size setting to the <sitecore><settings> section (optional). This setting overwrites the default Sitecore value (15) in order to decrease the Catalogs grid size: <setting name="GridPageSize">
<patch:attribute name="value">10</patch:attribute>
</setting> - Add the following pipeline to the <sitecore><pipelines> section. The processor hides the Content Editor fields which store Product Catalog form data such as search criteria, selected products and product selection methods:<getContentEditorFields>
<processor type="Sitecore.Shell.Applications.ContentEditor.Pipelines.GetContentEditorFields.GetFields, Sitecore.Client" >
<patch:attribute name="type">Sitecore.Ecommerce.Shell.Applications.ContentEditor.Pipelines.GetContentEditorFields.GetFields, Sitecore.Ecommerce.Shell</patch:attribute>
<HiddenFields>{81AD5AA7-316C-4F79-9DFF-8FEBFCFBFB4E}|{4423D09D-E95A-4827-B12D-E682BE2DE834}|{39BB71D9-E6B4-4F50-BFAC-1C586724D3B9}|{4200DA93-E824-4FA0-B93B-5F9AB662E3DC}</HiddenFields>
</processor>
</getContentEditorFields>
2. Release History
Some of the issues described on this page contain internal reference numbers listed in parentheses. You can use these reference numbers to communicate with Sitecore about a particular issue or feature.
May 13, 2011
Sitecore E-Commerce Fundamental Edition 1.1.0 rev.110511 is released.
Change log
New features
- PayPal has been implemented as a new payment provider. Here is the full list of supported payment providers:
- The PayPal payment provider is distributed as a separate package, see:
https://www.paypal.com - The Amazon payment provider is distributed as a separate package, see:
https://payments.amazon.com - The Authorize.NET payment provider is distributed as a separate package, see:
http://www.authorize.net/. - The Scandinavian DIBS payment provider is distributed as a separate package, see:
http://www.dibs.dk. - The BBS payment provider is distributed as a separate package, see:
http://www.bbs-nordic.com - The QuickPay payment provider is distributed as a separate package, see:
http://quickpay.net/ - The ePay payment provider is distributed as a separate package, see:
http://www.epay-payments.com - The PayEx payment provider is distributed as a separate package, see:
http://payex.com/
- The PayPal payment provider is distributed as a separate package, see:
- The implementation of payment providers, payment provider contracts and related base classes has been re-factored. All providers now implement our IReservable contract, e.g. there can be separate reservation and capturing of payments, when the order has been processed. For more information, see the Sitecore E-Commerce Payment Method Reference Guide.
- The payment providers are available as separate downloads on SDN, so only the required one(s) need to be downloaded and configured.
- Re-factored and improved PIM implementation and API. A number of things have been improved:
- The default implementation of product classes which wraps the CMS, items storing product data, now includes a dictionary-like collection that can map all simple product specification data between objects and CMS items, making it possible to use a few product classes to map to multiple specialized product templates in CMS. Users can use this feature to easily add custom information about products to the system without having to recompile their solution.
- New and re-factored data mapping and data conversion implementation for mapping Sitecore items to .NET product classes. The data converters are registered in Unity and can be replaced and/or extended to users’ needs.
- A new mapping implementation doesn’t reply to the Entity attribute specifying template ID for the class or field names per attribute. A default mapping scheme will do the mapping implicitly, but it can be overwritten using the Entity .NET attribute to specify specific name and/or type conversion.
- It’s now possible to implement multiple different product classes in C# that maps to different product templates in Sitecore. The registration is done in Unity and will return back to the default mapping, if no specific mapping is configured.
- The API is backward compatible, but the returned product types will now depend on the product template. The mapping is done using a new PIM API component named ProductFactory, which is configured in Unity, so that it can be replaced and customized.
- The Product Catalog used to manage and configure products has been updated to utilize the new PIM implementation and will also resort to product item lookup, in case the product class doesn’t contain the property configured as column in the search result grids.
- The Order and Product Catalogs have been optimized to provide faster order and product search as well as paging.
- Minimal order management functionality has been added to the CE.
- If one or more order lines are updated, removed or added, the order price will be re-calculated.
- During the checkout in the SEFE example pages installation, the payment is now only reserved and the payment system specific reservation ticket is stored on the order for later capturing or cancelling. A new order state “Captured” has been included, which contains business logic for capturing the full reservation amount on the order. Business login has been added to the Cancelled order state so the payment reservation is cancelled when set.
Minor improvements
- The system fields for the Product Catalog regarding search criteria and configured products have been hidden by default to prevent people from updating the values in two places and avoid conflicts.
- Fast Query is now used by default for order searching, resulting in faster search results and search criteria being case-insensitive. The Unity file has been updated using explicit parameter injection telling the OrderManager which Search Provider to use, making it clear which provider is used and easier to change.
- It’s been tested that Lucene can be configured as a search provider for orders. It requires a minor customization of the default DatabaseCrawler to include the item ID by overwriting the AddSpecialFields method.
Issues resolved
- Multiple concurrent page requests could result in an exception due to missing locking of the shared resource.
- WffM 2.2.0 is now supported, which is the only WffM version that runs on CMS 6.4
- Order price fields didn’t store data in the right format (invariant culture), which could result in wrong numbers depending on the culture used in Sitecore client. A conversion script has been added that allows the existing orders to be converted from one specific culture to the invariant culture, which is used by Sitecore to store numbers.
- The website definition attribute EcommerceSiteSettings was not used for retrieving/loading of the Site Settings (343691)
- The issue with configuring multiple product catalogs for multiple sites has been fixed (341890)
- Search result grid used to lose the paging buttons under certain circumstances and certain screen resolutions (342856)
- Sorting and grouping has been disabled on the Product and Order Catalog page, because the implementation would sometimes cause issues.
- Product profiles have been cleaned up. The Nicam-related values have been removed to prevent the system from displaying the OMS error: “Profile key Beginner/Amateur/Semi Pro/Professional not found in profile Focus.”
- SEFE was unable to use multiple product catalogs for multiple sites (341890)
- BC: Configure catalog. Earlier after you clicked Save Query/Products, the corresponding field on the Content tab was not filled (322974)
- Credit card form now calls API to collect payments for the checkout process (329893)
- Changing location on the shopping cart now recalculates a new VAT for each product. (331991)
- The Authorize.Net online payment provider now displays the total price with the correct currency. (332601)
- The Amazon. System no longer displays "The following input(s) are not well formed: [callerReference]" error message on the payment page. (333279)
- The system no longer displays "The layout for the requested..." after selecting a product from a Two/Three/Four column layout. (330964)
- The Amazon. System no longer displays "Payment Method Mismatch Error: User does not have..." if create new account. (336916)
- Update Package: The issue with updating the ComponentArt.Web.UI.dll is fixed. (337050)
- Orders: The system no longer displays "'Level' is null or not an object" error after selecting an order in the result table. (338147)
- Pressing the Enter key in the quantity field on the Product details page no longer decreases the qty of each product in the shopping cart. (338398)
- The system no longer displays "We experienced a technical difficulty ..." after entering an incorrect email/password. (336255)
- An error message, when no search criteria is specified in the query, is no longer displayed. (338093)
- Information in the "State" field is no longer renewed when the value in the "Country" field is changed (337257)
- The ‘Save action failed’ message is no longer displayed also when account is created successfully (337262)
- The Catalog Search form now matches the client language chosen (337670)
- The System no longer displays all products in the result grid after the search by criteria with several '&' symbols is performed. (331879)
- Content Editor: The system now allows to copy several products from left to right grid by clicking the Add button once (330366)
- "The requested document was not found" is no longer displayed after selecting “Amazon Checkout” payment method. (330379)
- Email: The system no longer displays the "Please fill the form..." text in the letter. (336002)
- Catalog. The system no longer displays "Unspecified error" after leaving catalog item with saving changes. (338267)
- Catalog - Save value of the drop-down 'Display products by selecting' to field 'Product selection method' is fixed. (330297)
- The System no longer displays the "Server Error in '/'..." exception after installing core framework without examples. (335149)
3. Known issues
The known issues present in various versions of the Sitecore E-Commerce Fundamental Edition.
This section describes the known issues associated with SEFE 1.1.0 rev.110511.
Shopping Cart:
- The system doesn't recalculate the Shipping method price after changing the Display Currency value. (332173)
Checkout:
- An exception may occur when during the first order is created on the distributed installation (CD).
Workaround: reset your IIS. - When using the default ProductPriceManager implementation on a distributed installation (RemoteProductPriceManager), the member price is not selected even if the customer is logged in. (336534)
- The order notification email has a bit different styling than shown on the order confirmation page that is displayed at the end of the checkout process on the sample pages. (329136)
Payment:
- Some payment gateways only accept a payment in one currency. If the shop contains prices in a different currency, there is no automatic currency conversion done by SEFE in the default implementation. (325654)
Catalog:
- Custom sorting and grouping is disabled in the product catalog and the order catalog when searching and reviewing products and orders (338268, 341263)
- There is an unexpected behavior for orders with empty (deleted) status. (338073)
- The behavior in the catalog and on the web page is not similar when no criteria are specified. When searching in the product catalog without any criteria, all products are returned. Saving this as Result Of Search Query on a Product Search Group returns no products. (345243)
- Sometimes after the browser window is resized the Product Catalog and the Order Catalog, the search forms are not resized appropriately. (329868).
Scenario:
* Open the Content Editor in a non-maximized mode.
* Locate a Product Search Group item in the the sample pages (e.g. /sitecore/content/E-Commerce Examples/Home/Digital SLR/Cameras).
* Drag the border of the Content Editor window to make it bigger
Result
The Component Art components within the two boxes do not resize along with the Content Editor border.
Workaround
Select the current item once more in the tree structure to reload the item. After the reload the Component Art components are resized to fit the boxes.
Site Settings:
- The system displays "-" instead of prices if the Display Currency field is empty in the general web shop site settings (336421).
Workaround: Always fill the Display Currency setting in. - The Display Currency setting is not applied until the application is restarted. (336240, 336243, 336498)
Example pages:
- The ZIP code field only accepts 4 digits even though the ZIP code can contain more than 4 digits (345102).
- The confirmation page labels are shifted if the state is empty. (330700)
- The system doesn't recalculate VAT for products after you change the location on the big shopping cart. The workaround is to click the Update Cart button after you change the location of the shopping cart. (331991)
Page Editor/Preview mode:
- The system doesn't let you buy a product in the Preview mode (335656).
Localization:
- The data from the Code/Name field are displayed for some items instead of the corresponding version of the Title value (338365, 338422, 338423).