Commerce manager - Language filtering
Having multiple clients that need to utilize the globalization support in EPi Commerce we jumped on the filtering solution Jacob Khan put together here. Rendering all the meta properties for each language makes the UI for editing an entry a bit confusing so being able to filter per language is great.
There is another issue and perhaps more critical one that comes with having a large amount of languages active for a catalog. With 15 - 20 languages active, each having a quite large amount of properties there's a huge performance issue. The view for editing the entry takes a couple of minutes to load.
Once we got the filtering addition up and running it looked great, however there was an issue with it . Once we've saved an entry, only the last saved language would have values in it's meta fields when retrieved using the catalogContext. All the values were saved OK in the database but they just weren't delivered through the API. The issue was the field "SerialiedData" which turned out to contain data only for the latest saved language. So Jenny and I sat down to see if we could figure out what
The reason for this was that when filtering the collection with languages to render property controls for, the same collections was used by the control
/apps/shared/cores/metadata/EditTab.ascx
for which languages to save as well.
What we ended up doing was keeping two collections, one for the ui rendering and then the original one for saving the meta data. Then modifying the EditTab.ascx so that it renders based on our filtered UI collection array and saves based on the originial one.
I’m attaching the code we’re using for the language filtering for reference.
Installation:
To install 3 steps:
1. Add the EntryOveriewTab.ascx to
C:\EPiServer\eCommerceFramework\5.2\[Site Name]\Shared\Apps\Catalog\ExtensionTabs\
!Note the folder doesnt exist and needs to be created
2. Add the EditTab.ascx to
C:\EPiServer\eCommerceFramework\5.2\[Site Name]\Shared\Apps\Core\ExtensionMetaData\.
3. To enable the feature the dll needs to be placed in the site bin of the commerce manager site
4. Add the new Product-Edit.xml and the Variation-Edit.xml
C:\EPiServer\eCommerceFramework\5.2\[Site Name]\Shared\Apps\Catalog\Config\View
\Variation-Edit.xml
and
\Product-Edit.xml
Download the code
How about a screenshot?