Download Sitecore Support patches directly: An Urban Legend?

How often have you had to install Sitecore support dll and wondered where on earth do I download it from? I know I have.

My good friend and MVP Ian Graham did a pretty good job at answering this question on Sitecore.StackExchange back in November 2016, excerpt included for reference:

You can try searching for it here:

https://kb.sitecore.net

The dll will have a reference number associated with it Sitecore.Support.xxxxx.dll.

For example: https://kb.sitecore.net/SearchResults#term=442487

If you can’t find it just raise a ticket with Sitecore and they will provide you with the dll.

Also recently released is this Github project containing source code for support fixes

https://github.com/SitecoreSupport

Yes, you can search and download support dll’s from https://kb.sitecore.net but only if the support patch has been written up and article relating to it exists on the KB.

If you can find it on the KB then you will be provided with a link to the dll and any supporting config which you can easily download.

What about https://github.com/SitecoreSupport?

If you have recently tried to access a support dll on https://github.com/SitecoreSupport, using a path you were previously given by Sitecore Support you will receive a 404 error.

Why? I asked the question recently on Slack and Rob Earlam, Technical Evangelist @ Sitecore answered: “We don’t have Support DLL’s on GitHub anymore, if you need a specific fix then you’ll need to open a Support ticket yourself and make the request there.”

So, there you have it – if you cannot find the Support patch publicly available on Sitecore’s KB you need to raise a support ticket requesting the support patch.  Any other method of accessing a support dll is most likely an Urban Legend!!

Benefits of Coveo Cloud vs On-Premise

I was recently asked by a client about the benefits of Coveo Cloud vs On-premise. So back in 2016 Coveo released of Coveo For Sitecore v4 which coincided with the release of Coveo Cloud v2, this now provided the option of hosting your Coveo for Sitecore index in the cloud as well as on-premise.

Hosting your index in the cloud has some obvious benefits:

  • Speed – developers can be up and running with an index in the cloud in 30 minutes or less.
  • Reduced Infrastructure – you don’t need to procure additional servers for hosting your Coveo indexes across all your various environments.
  • Easier – A Cloud installation of Coveo for Sitecore is easier to maintain than an On-Premises one, as mirrors and redundancy are handled by the Cloud platform.
  • Availability – Cloud architecture is distributed across multiple availability zones and geographical regions for data resiliency and high availability.
  • Scalability – Coveo Cloud solutions are constantly monitored for performance, and measured against performance thresholds and target response times. Built on dynamic processing power environments and thanks to its scalable architecture, Coveo Cloud is able to seamlessly scale computing systems to maintain optimal user experience.

Cloud Only Features

As you can see from Coveo For Sitecore Edition Comparison Coveo Cloud offers features that are only available in the cloud:

  • Machine Learning Relevance Tuning – provides users with a more relevant search result set, based on previous users search interactions. The value is end users can find the content they are looking for much easier and driving them into that sales funnel quicker.
  • Machine Learning Query Suggestion – means users could be presented with alternate searches based upon aggregated, past user behavior. The value here is we get more interaction on the search page from users who might otherwise abandon the search.
  • Machine Learning Recommendations – provide accurate recommendations for related content that reflect what other users making similar searches have also viewed. The value here is you create more opportunities to cross-sell to the user.

Before we take a deeper dive into these features lets first mention the underlying technology behind of these features: Coveo Machine Learning (Coveo ML). This is a cloud and analytics-based machine learning service that continually analyzes search behavior patterns to understand which results and content lead to the best outcomes, such as customer self-service success. In addition to intuitively enhancing search results so the best-performing content always rises to the top, Coveo ML automatically delivers the most relevant search results and proactive recommendations with minimal effort.

Coveo ML continuously learns the evolving user activity and rapidly adapts recommendations following changes such as seasons, new product adoption, or industry news.

CoveoCloudPlatform

Behind the scene, Coveo ML features actually process usage analytics data to build and maintain complex Coveo-managed predictive models to make recommendations.

Now because Coveo ML relies on usage analytics data to start providing relevant recommendations for search results and query suggestions it requires a history search data of at least 3 months.

The Coveo ML Relevance Tuning (or Automatic Relevance Tuning ART) feature analyzes user behavior patterns from many usage analytics search visit actions (such as query reformulation, clicked results, if a support case was submitted) to understand which clicked results and content lead to successful outcomes such as self-service success, and automatically adjusts future search results so that the best performing content always rises to the top.

ART excels with popular and ambiguous queries where users enter only one or two terms. ART is robust to common typographical errors and learns implicit synonyms. When your Coveo index content includes secured items, ART queries the index to ensure to only recommend items the user performing the query is allowed to access.

In practice, ART boosts the ranking weight of recommended items so that they appear among the top search results.

CoveoART

The Coveo ML Query Suggestion feature recommends significantly more relevant queries to users as they type in the search box. The original usage analytics query suggestions are limited to top queries in which the typed characters exactly match a suggested query part. The Coveo ML Query Suggestions feature:

  • Identifies typed characters exact, partial, or fuzzy matches anywhere in any individual keyword appearing in any order.
  • Stems query suggestion keywords to remove duplicates.
    Offers the most relevant recommendations by ranking query suggestions considering:

    • The number of times the query was performed.
    • The degree of matching.
    • The query performance based on the Relevance Index and Click-Through usage analytics metrics.
  • Only considers queries performed at least 10 times and for which at least 5 had a search result clicked to eliminate outliers.

In the end, suggested queries are surprisingly tolerant to typos and get better as your usage analytics data set size increases.

coveoquerysuggestion

The Coveo ML Recommendation feature learns from your website user page and search navigation history to return the most likely relevant content for each user in his current session. The recommendations can be interpreted as “People who viewed this page also viewed the following pages”.

The recommendation algorithm is based on the co-occurrence of the events such as page views within a user session. When two events abnormally frequently co-occur within sessions, the algorithm learns that they are linked. When one event is seen, the model recommends the other.

coveomachinelearningrecommendations

Query Pipelines

Another great feature of Coveo ML is query pipelines. A query pipeline is an alternate set of rules or models that can be defined to modify queries.  You can take advantage of query pipelines when you have more than one search interface with distinct users and purpose and want to apply different rules or models for each.

The query pipeline rules can define:

  • Thesaurus entries – replacing or expanding queries with synonyms.
  • Featured results – items appearing at the top of search results when the query meets a specific condition.
  • Stop words – ignoring unimportant words in queries.
  • Ranking rules – modifying the order of results matching specified expression and condition.
  • Ranking weights – establishing the impact of ranking factors when establishing the order or results.
  • Triggers – establishing actions to be performed in the user search interface following an event when a condition is met.

The rules can be applied on the query before it is sent to the index (like thesaurus and stop words) or on the results returned by the index before they are sent back to the search interface.

The query pipeline models can define:

  • Automatic relevance tuning – optimizing search results relevance based on user search behavior.
  • Query suggestions – suggesting queries to users as they type in a search box.
    Recommendations – predicting and proposing the most relevant content for the current user in the current session.

Query pipelines are easily managed in the Coveo Cloud administration console for your cloud organization.

Coveo Cloud has impacted On-Premise

The Analytics module helps Content managers measure and improve what users are searching for and accessing. Essentially, events performed by end-users in Coveo search interfaces (and optionally in other web page types) are recorded by the usage analytics service in your Coveo Organization. You can then use the administration console Analytics pages to learn what end-users do by reviewing usage events, metrics, and dimensions in explorers and dashboards.

While the Usage Analytics module is available in on-prem the module has been deprecated and is no longer maintained by Coveo.  Instead, to use this module with an on-premise index Coveo recommend using Coveo Usage Analytics cloud service to connect to and monitor you on-premise search usage (see scenario 4 of the Coveo Cloud usage analytics use cases).

Coveo Cloud Concerns

Let’s address some concerns you might have when considering Coveo Cloud:

Q. How secure is data in the cloud?
A. Coveo is dedicated to the security, privacy, and integrity of their customers’ data. Coveo perform regular automated and manual application security tests and patch any potential vulnerabilities or bugs. Data processed by the Coveo Cloud is encrypted both at rest and in transit using best-in-class industry standards. Coveo’s commitment to security is affirmed by their SOC II examination and HIPAA compliance.

Q. Who owns the data in the cloud?
A. Currently the cloud solution is hosted in US East with backup in West so you will have to accept that your data is in the US. Although the product manager (Simon Langevin) confirmed that in the near future, hosting your local Elastic cluster and connecting Coveo Cloud on top of it could be a possibility.  Also Coveo is very transparent with their procedures pertaining to data retention and destruction that are in place and are also audited.

Q. How do you measure the success of Coveo Cloud ML features?
A. You can use the following 2 traditional marketing metrics to evaluate how successfully your community search connects users with the information they need to solve their specific issue: Click-Through Rate (CTR) – The percentage of users clicking on any link on the search results page. Higher values are better, meaning that users are more often opening search result items following their queries.

  • Click-Through Rate (CTR) – The percentage of users clicking on any link on the search results page. Higher values are better, meaning that users are more often opening search result items following their queries.
  • Average Click Rank (ACR) – Similar in concept to page rank, this metric measures the average position of opened items in a given set of search results. Lower values are better, as a value of 1 represents the first result in a list.

Coveo ML optimizes search results and query suggestions, and will, therefore, improve CTR and ACR metrics and contribute to increasing self-service.

Q. Can I separate my Production, Test and Development environment indexes in the Cloud?
A. Yes, all the Coveo for Sitecore cloud plans offer a Production and Sandbox cloud organization. For development, you can either purchase an additional organization or use trial organizations. The trial organizations are only valid for one month, but creating a new one is very easy.  This allows each developer to have their own organization to use during development.

Q. What happens if I go over the monthly query limit on Cloud Enterprise or Pro?
A. You should speak with your Coveo Client executive regarding the pricing structure for exceeding query limit as this depends in your license term. It is helpful if you have an idea of the anticipated monthly queries.  But don’t worry you won’t experience and degradation of service as Coveo will not block queries should you exceed the thresholds.

Resources

Coveo For Sitecore Edition Comparison

Coveo Machine Learning

Coveo Machine Learning Features

Coveo Machine Learning FAQ

Managing Query Pipelines

How does Coveo Secure your Data and Services

Best Practices for deploying Coveo for Sitecore Cloud

How to Backup and Restore your Coveo CES Index Configuration

There have been several occasions when I have had to copy a Coveo index from one environment to another.  From standing up and lower Test environment or helping onboard a developer setup a local instance.  It is also recommended you take regular backups of your CES config files, as you can rebuild the entire index from a restored copy of the config, should your index ever become corrupt.

Steps

  1. Connect to the Source Coveo Master Index Administration tool (http://localhost:8081 by default) and put the index in read-only mode and backup the entire contents of the config directory (C:\CES7\config – by default).  Putting the index in read-only mode will prevent further content changes to the index but will still enable search queries to return results.   CESreadonlymode
  2. Put the Source Index back into read-write mode.
  3. On the destination environment open the local services and locate and stop the CES7 service.  Restoring a backup of the CES configuration files while indexing or while in read-only mode will most likely result in a corrupt index.CESService2
  4. Delete all the files and folders under the destination index directory (C:\CES7\ – by default).  This is necessary as the index must be rebuilt from the configuration files.
  5. Recreate the destination config folder in the destination index location (C:\CES7\config – by default) and restore the backed up config into this directory.
  6. If your destination index is installed in a different location, for example D:\CES7 you must edit the config.txt and replace all occurrences of the index path with the correct location.
  7. Restart the CES7 Service.
  8. Rebuild the sources.

Resources

DAM For Sitecore V5 – I Got The Key

I got the Key to unlock – Digizuite™ DAM for Sitecore 5.0 WHOO HOO!! I was fortunate enough to get a early tech release of DAM for Sitecore V5, to test prior to it’s release. I Actually think, I may have been the first Sitecore developer outside Digizuite to have had the opportunity to play with it.

dam_tshirt_and_key

What is DAM For Sitecore?

DAM for Sitecore extends Sitecore Experience Platform with a full-scale digital asset management (DAM) system, delivering the advantages of a single source for any digital media file. While Sitecore’s Media Library allows perfect website image management, a centralized digital asset management system optimizes digital workflows and supports multi-channel management.

DAM for Sitecore allows you to control digital content in the entire content lifecycle: you can organize, manage, search, edit, add metadata, distribute, and repurpose rich media content (images, videos and presentations) all in one place.

Structure

  • Store everything in one place.
  • Integrate with your existing business systems for smooth workflows.
  • Integrate with Active Directory.
  • Customize, configure and scale based on your needs.

Manage

  • Manage and edit metadata intuitively for fast search.
  • Control user rights on individual or group level.
  • Transcode your images and videos to your needed formats automatically.
  • Mobile upload of images and videos.

Search

  • Accurate search results due to powerful metadata.
  • Search across systems and channels.
  • Navigate easily through an intuitive user interface.

Collaborate

  • Improve your digital collaboration.
  • Allow content sharing with people outside the organization.

Distribute

  • Stream your video on any device.
  • Scale your digital assets for any device.
  • Share content on Sitecore and other platforms.
  • Support for Content Delivery Networks.
  • Share on social media.

What’s different in Version 5 Module?

If you have any experience with previous versions of DAM for Sitecore, you will find some significant changes in Version 5. The module has been rebuilt from the ground and up, utilizing Sitecore SPEAK. The new SPEAK interface provides a fluid and seamless integration with Sitecore, making it easy and more intuitive for content authors to add digital assets to Sitecore content.

DAM For Sitecore now contains a number of sub modules:

  • DAM For Sitecore Connect/Synchronization framework
  • DAM For Sitecore Explorer
  • DAM For Sitecore Asset Browser

DAM For Sitecore Connect

Version 5 now stores information about your assets in buckets known as Silos within the media library.  This is made possible with the new Connect/Synchronization framework in keeps the Silo in sync with DAM.  A Silo is synchronized with a digital channel or a specific folder in the Digizuite DAM center.  You have the flexibility to configure multiple Silos targeting specific assets or types of asset.  DAM for Sitecore only stores a subset of the data from DAM center in the Sitecore master database. The asset data files are stored in Sitecore’s Media Cache.  This keeps Sitecore database size from growing out of control with media content but also offers the advantages of features from the Sitecore Experience Platform.

silos

DAM For Sitecore Explorer

The DAM For Sitecore Explorer is accessible from the Launch Pad. It enables a content author to manage all the digital assets available to him/her based on their user rights. With a well-defined metadata structure, it will be easy for content authors to search, find, manage and reuse digital content. The powerful metadata tools provided by DAM enable fast search and filtering of assets, that are easy to perform. Once you’ve located an asset you view/edit its metadata, crop (if it is an image) and download the original image all from within Sitecore.

Dam_Explorer_filter

DAM For Sitecore Asset Browser

The new asset browser helps you easily locate and insert an asset within your Sitecore content items or within Rich Text fields.  The interface is consistent with the Explorer module with the addition of an image size drop list and insert and cancel buttons.

dam_asset_browser

DAM Asset Browser with a sparkling new SPEAK interface

DAM for Sitecore provides three field types that can be populated by the Asset Browser:

Asset Field Type – this is the standard field type shows assets on the website. It corresponds to Sitecore’s native image field. It can store any asset regardless of asset type, including, but not limited to, videos, PDF, images, audio files etc. The field contains not only information about which asset is selected, but also what quality is selected. This field can be rendered both as a link and as a media output, e.g. an image tag or a video tag. By default, the field will be rendered as a media output.

Assetlink Field Type – is the standard field type used to show assets links on the website. It corresponds to Sitecore’s native Link field.  This field can be rendered both as a link and as a media output, e.g. an image tag or a video tag. By default, the field will be rendered as a link output, but this can be changed in the corresponding settings for the type.

AssetList Field Type – can contain a list of assets. The individual assets in the list can be of any kind, e.g. a list can contain videos, images, PDF files or any other asset type simultaneously.

Users and Roles

You can control access to your digital media files by assigning individual user rights that keep your digital media files secure. The rights management processes are highly secure and aligned with the rights management in Sitecore.

DAM for Sitecore uses standard Sitecore membership implementation by overriding the default Sitecore membership provider and  also uses standard Sitecore role manager implementation, by overriding the default Sitecore role manager provider.  Both of which require some configuration changes to Sitecore.

More to follow soon…

Some Useful Resources

uCommerce and Sitecore an Introduction

uCommerce is a platform for building e-commerce solutions.  It removes a lot of the headache and repetitive development effort involved in getting an e-commerce solution up and running.  uCommerce is built using a framework first approach, which comprises of a number of really well designed functional areas known as foundations.  These foundations are the building blocks for your online store.
Catalog Foundation – allows you to easily manage everything related your product catalogs. Features include:
  • Multiple catalogs for managing separate brands.
  • Products can exist in multiple stores, catalogs and categories.
  • You can have create as many categories as you need.
  • Create Product definitions gives you control over the information stored against products and supports multi-lingual.
  • Create product variants.
  • Create product relations to improve cross-sell and up-sell.
  • Provides its own fast product search so administrators can quickly find and update products.
Transaction Foundation – when a customer adds an item has been added to his or her basket the Transaction foundation kicks in and manages the persistence of the basket and the entire checkout process.
  • Provides an extensible framework for payment gateway integration.
  • Easily search for orders which can be viewed and modified through the backend.
  • Order history available for customers.
  • Multiple shipping methods and shipping price configuration.
  • Extendable checkout and order processing.
  • Customizable back office workflow, for sending customer emails etc during order processing.
uCommerce Marketing FoundationMarketing Foundation – enables you to create and manage marketing campaigns, create and send vouchers, Setup discounts etc. The intuitive Advertise, Act, Award interface gives marketers the ability to easily setup up campaigns without having a dependency on a developer or technical resource.
Social Commerce – has changed the way we shop today. We like to know and value what other people have to say about products and use this valuable information to help us make a purchase.  Ucommerce allows users to easily review and rate your products and add comments.  This information can be easily moderated and shared with potential customers.
Search Foundation – allows customers to quickly find products using uCommerce multi-faceted search.  Administrators can easily add new facets as when required without any technical knowledge or getting hung up on configuration setup. uCommerce makes use RavenDB for indexing the product catalogs which provides fast search capabilities.

Sitecore

uCommerce adminuCommerce is not a standalone application it requires a CMS to deliver and serve up the content to the end user.  This is where Sitecore comes in. The uCommerce shell has been been tightly integrated with Sitecore to provide the best user experience possible for your administrators.  In fact it’s so well integrated with the Sitecore UI that your administrators won’t realise they are interacting with another system.
sitecore content tree
Also when Products are added to uCommerce they also appear in the Sitecore tree. So adminstrators have the option of using the native Sitecore interface or uCommerce to manage their product details.

Installation

Simply download uCommerce install package and install using the Sitecore Installation Wizard.

Developing with uCommerce

In the same way Sitecore provides a framework for building great websites, uCommerce is similar, it does not come with a ready made online store out of the box, like some there e-commerce platforms do. Instead it provides a comprehensive set of API’s, allowing you to build a best of breed e-commerce solution, that is really only limited by your own creativeness.
The API are categorised as either:
  • Libraries – provide access to functionality on the front end for example , product search, add product to basket etc.
  • Context Classes – provide access to the current context for example current store, current catalog or current basket.
blog_ucommerceintro_apiMost of the common functionality you’ll need to build a basic store, can be found in the following top level libraries:
  • CatalogLibrary
  • MarketLibrary
  • PriceCalculation
  • SearchLibrary
  • TransactionLibrary

If you explore the UCommerce.dll using DotPeek or Reflector you will find these libraries located within the UCommerce.Api namespace.

If you cannot find the functionality you are looking in these libraries you can always access lower level libraries.  I also recommend checking out the online Api reference documentation.

Demo Store

uCommerce online demo store

uCommerce demo store – Avenue Clothing

To help you get up and running quickly, uCommerce have developed a demo store this is downloaded and installed as a separate package.  The demo store is a good starting point, to help you understand how to setup a basic store in uCommerce.  They have also made the source code available on BitBucket.  This is really useful in helping you understand, how the various uCommerce libraries and context classes are structured and how they can be utilised to build a basic ecommerce store.  The demo store is also available online, this is really handy if you want to give a quick demo to a potential client.  You can access the Sitecore client using the default username and password.  I’m fairly certain the online demo gets cleared down every night.

Extendability

One of the great things about uCommerce is it’s framework first approach which makes it totally extendible.  uCommerce utilises Castle Windsor for resolving its components, by following a few basic rules you can override it’s components with your own.  So if something doesn’t function how you need it too, you can simply swap it out for your own component, whether is a basket behaviour, shipping workflow or a pricing calculation.

Integration

The uCommerce team have developed their own integration platform called uConnector. This enables uCommerce to interact with other systems.  It is optimised for getting information in or out of the uCommerce platform quickly and efficiently.  It comes with standard integration to Excel and .csv, which could be used for the initial load of products.  It can also be extended to interact with other data stores,such as your warehouse fulfillment system.

Payment Providers

uCommerce comes out of the box with integration to a long list of established payment providers.  You just need to add some configuration and you can be up and running, accepting credit card payments, on your e-commerce site.  If your provider isn’t available, uCommerce can be easily extended to include your specific provider.

Useful Resources