Release Notes

Changelog

  • NEW: Sorting of products and categories in uCommerce Admin
  • NEW: 10k product SKUs supported in each category in uCommerce Admin
  • NEW: 10k product SKUs supported in each category using the XSLT API
  • NEW: HTML support in product and category descriptions
  • NEW: Validation messages appear on all tabs in uCommece Admin
  • FIXED: Issue with order addresses, which would change whenever the customer changed her customer address. Addresses are now copied to the order. Requires a small update to the XSLT becuase we introduced a new extension to handle it.
  • FIXED: Displaying long product lists in uCommerce Admin would cause a timeout
  • FIXED: Displaying long product lists using the XSLT API would cause a timeout
  • FIXED: Deleting an active price group would cause an error on editing product catalog
  • FIXED: Product description fields are too small
  • FIXED: Product definition are not deleted properly

Updating to uCommerce 1.0.2

To update an existing version of uCommerce 1.0.1 you simply install uCommerce 1.0.2 on top of your existing installation. uCommerce will migrate any resources required to the latest version including the database.

Please note that if you've made changes to the pipeline configuration files you need to make a backup of these before installing uCommerce 1.0.2 as Umbraco will overwrite any modified files with the new versions during installation.

Please make a backup of your uCommerce database as schema updates will be rolled out with 1.0.2. Your 1.0.1 schema will be migrated forward which means that you cannot rollback to 1.0.1 easily without a database backup should you need to do so.

Updating to uCommerce Store 1.0.2

If you have an existing version of uCommerce Store installed you will need to uninstall it before installing uCommerce Store 1.0.2 as Umbraco will duplicate any content rolled out with the package including macros, XSLT files, and document types.

Category and product sorting

You can now manually sort products and categories in uCommerce Admin to your heart's content. Of course you can still optionally resort using the Commerce XSLT API or the Foundation API. Your choice.

New API for handling addresses

An issue with address handling in uCommerce 1.0.1 would cause customers who place an order under one address and later update their account information with new address information to also update all previous orders placed under that address.

To fix the issue a new XSLT API was introduced for version 1.0.2, which replaces EditAddress and requires a change when working with address information.

Addresses are now split between customer- and order addresses. Addresses maintained as part of the user account are considered customer addresses and should be maintained using the EditCustomerAddress() API (previously: EditAddress()).

Both billing address and shipment addresses are considered order addresses and are maintained with two completely new APIs: EditBillingInformation() and EditShipmentInformation().

Removed XSLT APIs:

  • SetBillingAddress() - replaced by EditBillingInformation()
  • EditAddress() - replaced by EditCustomerAddress() and EditShipmentInformation()

 

Example of address XSLT for version 1.0.1

<xsl:variable name="editCustomerResult" select="CommerceLibrary:EditCustomer($firstName, $lastName, $email, $phone, $mobile)"/>

<xsl:variable name="editAddressResult" select="CommerceLibrary:EditAddress('Billing', $company, $line1, $line2, $postalCode, $city, '', $attention, $countryId)"/>

<xsl:variable name=" editResult " select="CommerceLibrary:EditAddress('Delivery', $del_company, $del_line1, $del_line2, $del_postalCode, $del_city, '', $del_attention, $del_countryId)"/>

<xsl:variable name="setInvoiceAddressResult" select="CommerceLibrary:SetBillingAddress('Billing')" />

 

Example of new XSLT for version 1.0.2

<xsl:variable name="editResult" select="CommerceLibrary: EditBillingInformation ($firstName, $lastName, $email, $phone, $mobile, $company, $line1, $line2, $postalCode, $city, '', $attention, $countryId)"/>

<xsl:variable name="editShipmentInformationResult" select="CommerceLibrary:EditShipmentInformation('Delivery', $shipment_firstName, $shipment_lastName, '', '', '', $shipment_company, $shipment_line1, $shipment_line2, $shipment_postalCode, $shipment_city, '', $shipment_attention, $shipment_countryId)"/>

 

Pipeline configuration updates

The uCommerce component configuration system was updated for version 1.0.2, which requires modifications to pipeline configuration files. Basket and checkout pipelines are automatically updated.

<component id="Basket.CalculateOrderLinesTotals"  service="UCommerce.Pipelines.IPipeline`1[[UCommerce.Entities.PurchaseOrder, UCommerce]], UCommerce"  type="UCommerce.Pipelines.Basket.CalculateOrderLineTotalsTask, UCommerce.Pipelines"  lifestyle="Thread" />

To

<component id="Basket.CalculateOrderLinesTotals"  service="UCommerce.Pipelines.IPipelineTask`1[[UCommerce.Entities.PurchaseOrder, UCommerce]], UCommerce" type="UCommerce.Pipelines.Basket.CalculateOrderLineTotalsTask, UCommerce.Pipelines" lifestyle="Thread" />

 

The UCommerce.EntitiesV2 namespace

The short story: You should continue to use the entities in UCommerce.Entities.

The slightly longer story: To achieve the performance we want from the uCommerce subsystems we're in the process of replacing our data access strategy moving from Subsonic 3 to NHibernate 3. NHibernate provides a more robust data access strategy but it's only partially implemented at this point.

Key areas of the uCommerce API already leverages NHibernate, but the new entities are created specifically for these areas. Thus you'd find things missing for for general purpose use, so you should stick with UCommerce.Entities.

Once our work in this area is completed the change to the new data access strategy will happen transparently provided you stick with the UCommerce.Entities namespace.

 

Error when saving a macro using GetBasket extension

When using CommerceLibrary:GetBasket() extension in a macro you see an error when saving. uCommerce 1.0.2 is using a new Umbraco API as part of GetBasket, which reports an error under Umbraco 4.0.2.0.

Updating your Umbraco install to version 4.0.3.0 fixes this issue. If you don't want to update you can check the "Skip testing (ignore errors)" checkbox. The macro will work fine on your frontend site.