Can we use Blocks with Catalog nodes? In theory Yes, what can stop you. We had a requirement when CMS editor can add a Carousel Block to Catalog Nodes. But Block Gadget was not available in CMS Catalog Edit Mode. Only available gadgets were Catalog, Media, Latest and Versions. From architecture point of view I was convinced that we can add ContentArea for Catalog Nodes and Blocks can be reused for Catalog Nodes also. I googled the issue and find an answer by Linus. Its simple I want to keep solution as a self note.
Upgrade from CMS 6R2 to EPiServer 7 CMS and from EPiServer Community 4.1 to EPiServer Community 7
There is a requirement before upgrading a Community site with separate databases (CMS6r2 and Community 4.1) to EPiServer 7 and Community 7 is to merge the Community database with the CMS database. This is an instruction of how to accomplish this in MS SQL Server 2008 R2.
1. Startup
In the SSMS, right-click the Community database that shall be merged with the CMS database and generate a script.
2. Choose Objects
Select “Select specific database objects” and then select Tables, Views, Stored Procedures and User-Defined Functions but not all objects within those boxes. Objects to choose:
Tables
tblEPiServerCommon*
tblEPiServerCommunity*
Views
vwEPiServerCommon*
vwEPiServerCommunity*
Stored Procedures
spEPiServerCommon*
spEPiServerCommunity*
Working with Markets in EPiServer Commerce 7.5
CMS Style rendering Templates in EPiServer Commerce 7.5
<% Html.PropertyFor(m => m.MyContentArea, new { Tag = EPiServer.Framework.Web.RenderingTags.Sidebar })%>
EpiServer Commerce specific Attributes
We can use any attribute developed for CMS, in our commerce content type models. e.g. ContentType attributes, Access attributes, AvailableContentTypes attributes, TemplateDescriptor attribute, Property attributes, Image URL attribute and Default backing types also.
There are only a few specific attributes for commerce only that we can use in our models
CatalogContentType attribute
To connect the content type with an existing meta class, the CatalogContentTypeAttribute can be used. we connect them by defining the name of the meta class that should be connected to the content type.
}
Encrypted attribute
To have “Use Encryption” enabled, we can use Encrypted attribute. It will encrypt the value when storing in MetaData plus.
SaveHistory attribute
To have “Save History” enabled, we can use SaveHistory attribute. This will save history of changes to the value in this property when storing in MetaData plus.
To get the benefit of catalog browsing intefaces in CMS we can add a property like below in our CMS Page. few other members that can be used for UIHint are as following CatalogEntry, CatalogNode, CurrencySelector, DateTimeRangeSelector, DateTimeSelector, DecimalEditor, EmailAddress, MarketSelector, ProductVariation, SaleCodeEditor and TaxCategorySelector( defined in EPiServer.Commerce).
Strongly Type Models in EPiServer Commerce
We can create Strongly typed models just by inheriting a proper type from EPiServer.Commerce.Catalog.ContentTypes and and decorating it with the ContentTypeAttribute attribute. that means those types will be available as ContentData.
To create models for commerce content following types are available.
VariationContent: A type for variation/SKU models.
ProductContent: A type for product models.
BundleContent: A type for bundle models.
PackageContent: A type for package models.
DynamicPackageContent: A type for dynamic package models.
NodeContent: A type for category/node models.
Examples:
Assets and media in EpiServer Commerce 7.5
Asset management in Commerce
By default the new content-based asset management system with the blob provider model is used for adding assets to the catalog nodes and entries when manging catalogs. All files are stored in the same location as the EPiServer CMS files, providing a more unified user experience.
In a Commerce installation, products and product variants from the product catalog can be accessed from the Catalogs gadget in the Assets pane, with general support for drag and drop of content items into CMS pages and blocks. The integration is done using content type classes EPiServer.Commerce.Catalog,
EPiServer.Commerce.Catalog.ContentTypes and EPiServer.Commerce.Catalog.Provider.
Configuration of asset management systemThe legacy Asset Management system for Commerce Manager is still available in EPiServer Commerce, but by default the new asset management system is configured to be used. A notification message with this information is displayed.
The configuration setting UseLegacyAssetSystem specifies the asset management system to be used, if set to “true” the legacy ECF asset system in Commerce Manager will be used. The setting is configured as follows in the web.config files of both the Commerce Manager and the front-end sites:
<appSettings>
<add key=”UseLegacyAssetSystem” value=”” />
…
</appSettings>
VPP system in Episerver CMS 7.5
The VPP system is no longer used for storing editor generated content, which means that all CMS extensions to the VPP system are being phased out. The VPP API defined in EPiServer Framework will continue to be used for mapping in folders such as add-ons.
By default the new content-based asset management system with the blob provider model is used for adding assets to the catalog nodes and entries when manging catalogs. All files are stored in the same location as the EPiServer CMS files, providing a more unified user experience.
Blob Storage and Blob providers in Episerver CMS 7.5
BLOB (Binary Large Object) providers is a framework designed to store large amounts of binary data in a more optimized and cost-effective solution such as cloud storage, instead of in the database. The EPiServer platform supports BLOB storage of assets using a provider-based setup, and has a built-in file BLOB provider. You have the following options:
• Built-in BLOB provider. EPiServer has a built-in BLOB provider for media files such as images, videos and documents. By default this provider will store files on local disc or a file share which will be defined during installation.
• Customized BLOB provider. You can also develop and configure your own customized BLOB provider for your specific hosting environment. As an example, an Azure BLOB provider for EPiServer is available via Nuget.
A provider is responsible for storing a stream of data and associate it with a unique identifier. BLOBs are grouped into containers which is a logical name for a set of BLOBs, that for example can be deleted using a single API call. The unique identifier is exposed as an URI in the format epi.fx.blob://[provider]/[container]/[blob]] to make it easy to store a reference to a BLOB in for example a database.
Most methods in the API will always return a reference even though the actual BLOB does not exists, since it would be too costly to go out to a cloud service everytime, for example, a call to GetBlob is made, and it is assumed that the caller keeps track of BLOB identifiers.
Please Note we can’t use Unified File any more to find the physical locations of files, Science have been moved in BLOBFactory classes. There are few example helper functions that you may require in your projects regarding product images.
Installing EpiServer Community on a commerce site
Installing EPiServer relate on an EPiServer CMS 7 site working with EPiServer Commerce can be a challenge, This post can be helpful for those who are trying to do this or facing issue in installing other EPiServer products.
Technologies under discussion are
EPiServer CMS 7.1,
EPiServer Commerce 1 R3
EPiServer Relate+ 7
Issue: Installing Commerce and Relate (Community) is a no go
http://world.episerver.com/Support/Bug-list-beta/bug/95414/
Issue details:
An unhandled error has occured:
The argument is null or empty. Supply an argument that is not null or empty and
then try the command again.
When executing
At C:Program Files (x86)EPiServerCommonFramework7.0.844.1InstallSystem Sc
riptsUpgrade Site.ps1:93 char:17
+ -SqlServerName <<<< $properties.DatabaseServerName `
An unhandled error has occured:
The argument is null or empty. Supply an argument that is not null or empty and
then try the command again.
When executing
At C:Program Files (x86)EPiServerCommonFramework7.0.844.1InstallSystem Sc
riptsUpgrade Site.ps1:93 char:17
+ -SqlServerName <<<< $properties.DatabaseServerName `
=
Get-EPiIsBulkInstalling
At C:Program Files (x86)EPiServerCommonFramework7.0.844.1InstallSystem ScriptsUpgrade Site.ps1:93 char:17
+ -SqlServerName <<<< $properties.DatabaseServerName `
System.Management.Automation.ParentContainsErrorRecordException: Cannot validate argument on parameter ‘SqlServerName’. The argument is null or empty. Supply an argument that is not null or empty and then try the command again.
- Follow process for installing CMS 7, Relate, Commerce
- Install Site with database, with Commerce and the sample site
- Install a Relate site and note references.
- Add the same references to the Commerce site
- Copy and paste Community/Mail related sections of web.config in the Relate site to the commerce web.config
- Find the install database script in the install directory for Relate, run the script against the site database to create the Community tables.
- Find the issue in PS1
- Fix the issue in PS1 File.
- Remove the Signature At the bottom of the site. e.g # SIG # Begin signature block …………………………………………… # SIG # End signature block
- Now File is no longer signed therfore we will need some power shell policy adjustments.
- PS C:Userstobias> Set-ExecutionPolicy ‘unrestricted’
- Set-ExecutionPolicy -scope CurrentUser -executionPolicy Unrestricted
- Re-Run the setup and fix the other Issues.
Unwanted Lucene Search Results in EpiServer Commerce R2
That was causing the issue although iSFuzzySearch was false at the time of request.
Clone a purchase order and convert into cart
It did not work as result was a nasty output. On saving Purchase Order for new cart, OrderForm from Parent was assigned to new cart and parent Purchase order lost its associated OrderForms.
//Convert into Purchase Order