Introducing lunchin Optimizely Cloud Extensions


Today I proud to announce the release of two new packages to the Optimizely NuGet feed.
These packages contain some useful features and extensions to the Optimizely PAAS CMS and Commerce Connect platforms. They are a collection of features I have contributed to various projects over the years as well as some features ported from full framework to dotnet versions. I plan to add more features over time, so if you have things you would like to see in the package, please add a feature request here.
Here are the features included.
Environment Banner
This feature adds a banner in edit mode so you know which environment you are on. This tool is probably not needed if you are using Optimizely Identity because it shows which environment you are working in as well.
Storage Explorer
This feature allows a user to browse the blob storage for the given environment. This is useful if you need to quickly get access to logs or you need to inspect files you are storing in blob storage. There is also the ability to upload files as well.
Site Settings
This feature allows a user to create setting types which will be created for each site. This is useful to be able to have separate publishing flow for settings rather than having to publish the home page if the settings are kept there.
Master Language Switcher
This feature allows you to change the master language of a content. This is useful because they only way to do this otherwise is create a new content and manually copy over all the fields which also lose the link to the other language versions if there are any.
Forms Mode Image Preview
This feature allows you to preview the image in Forms mode which is useful if you need to add meta data about the image, you can see right where you need to edit the content.
Hide Default Category
This feature allows you to hide the default category provided by Optimizely out of the box. This is useful if you are using another taxonomy tool like the feature provided by this CMS package.
Site hostnames initialization
This feature allows you to configure hostnames for each of the sites in your Optimizely instance per environment. This is useful for copy down locally, or to integration and preproduction environments. Production is never altered.
You must specify the site name and the hostnames to add. The first one listed will be considered the primary domain.
Configuration Files
{
"loce": {
"extensions": {
"Sites": [
{
"Name": "Site 1",
"Hostname": "localhost:5000,localhost:3000"
},
{
"Name": "Site 2",
"Hostname": "localhost:5001"
}
]
}
}
}
Taxonomy
This feature allows you to crate taxonomy content which you can use to implement categories, tags, etc to search and filter content. Since it is standard content will work in both Optimizely Graph as well as Search and Navigation. This just sets up a base abstract content type, you will need to create your own to use.
Multi Coupon Code Provider
This feature adds the ability for promotions in Optimizely Commerce Connect to have multiple coupon codes instead of the default one that is out of the box. This is useful if you want to support sending individual discount codes to customers for different reasons.
Debug with Source Link
Both packages are Source Link enabled and the NuGet packages contain the pdbs.
To enable source link under Options => Debug, enable source link.
In order to get the pdbs to the output folder, you will need to add the following target to your csproj file. You will need to update this target every time you upgrade your package.
<Target Name="CopyPdbsFromNuGet" AfterTargets="ResolvePackageAssets">
<ItemGroup>
<NuGetPdbs Include="$(NuGetPackageRoot)\lunchin.Optimizely.Cloud.Extensions\1.0.9\lib\**\*.pdb" />
<NuGetPdbsCommerce Include="$(NuGetPackageRoot)\lunchin.Optimizely.Cloud.Extensions.Commerce\1.0.9\lib\**\*.pdb" />
</ItemGroup>
<Copy SourceFiles="@(NuGetPdbs)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
<Copy SourceFiles="@(NuGetPdbsCommerce)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
</Target>
For more information please go to the repository
Subscribe to my newsletter
Read articles from Mark Hall directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Mark Hall
Mark Hall
Full stack software architect specializing in digital experience platforms. Enjoy designing and implementing experiences based on the needs of the customer.