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.