Retail eCommerce Solutions

Retail eCommerce is getting more complex. Online sales success requires more than just a single online store and a shopping cart.

In the highly competitive online sales arena where EVERYTHING is one click away, retailers absolutely must find a way to connect with consumers, to engage with them.

They have to find ways to be relevant to what the consumer is looking for at that moment. And a single online store is unlikely to do that.

With Multi Store eCommerce, Multifront is designed to allow retailers to easily and quickly create and manage multiple stores. Stores that can be segmented, targeted, and focused to individual niche markets and cater to what shoppers are looking for.

You can have different stores for..

different regions.
different seasons.
the latest trends.
unique product mix.

Just to name a few. You can tailor each store to whatever niche market you are trying to reach.

Nothing is relevant to every online shopper. Retailers who can provide a online experiences specific to different niches are more likely to engage that shopper and to make the sale.

There are many ways that retailers can take advantage of eCommerce if their systems are flexible enough. Znode designed Multifront to be flexible, fast, and affordable, all with the needs of retail sales in mind.

Distributor and Wholesaler eCommerce Solutions

Because of the unique position that wholesalers and distributors hold in the supply chain it has been difficult for many to launch successful eCommerce efforts.

The last thing that wholesalers and distributors want is to be seen as a direct competitor to their vendors. That’s why conventional eCommerce platforms simply don’t make sense for most wholesalers and distributors.

Multifront gives wholesalers and manufacturers an exciting range of eCommerce capabilities, including:

Vendor Managed eCommerce

Build online stores for vendors that match their own online store, but that you manage for them! This approach can dramatically increase your sales while reducing your vendors’ costs and tying them closer to you.

Distributed Agent eCommerce

Build online stores for your vendors or agents that can be controlled through a single admin. You control the message and branding while your agent controls what products are displayed based on preferences of their customers

Specialized Online Catalogs

You can create a custom store for vendors that will allow their buyers to see the selection of products and promotions targeted directly at them. These catalogs are created and managed by you, but can “live” inside your vendors own buying systems.

Regional Consumer Direct Stores Where You Don’t Have Vendor Relationships

You don’t want to create channel conflict or compete with your existing vendors, but it’s likely that there are a wide variety of regions where you could sell direct to consumers under a private label without competing with your vendors. This opens some remarkable online sales possibilities.

Online Franchising eCommerce

Develop online stores for your franchisees that they can control while maintaining the consistency of your brand. It provides you another powerful tool for acquiring customers online while delivering relevant and personalized experiences.

There are many ways that wholesalers and distributors can take advantage of eCommerce if their systems are flexible enough. Znode designed Multifront to be flexible, fast, and affordable, all with the needs of wholesalers and distributors in mind.
Channel Conflict

Manufacturer eCommerce Solutions: Channel Conflict

Channel conflict alone has kept many manufacturers out of online sales for fear of hurting current business relationships with their vendors. But that has also meant the loss of some remarkable opportunities to create and exploit some amazing new sales channels.

There are more options than you might realize

If a manufacturer only considers consumer direct online sales it’s clear that channel conflict can endanger existing vendor relationships. But direct sales are only one venue for manufacturer eCommerce. If you think about all the ways that your product can marketed, then a world of opportunities opens up. All without damaging existing relationships.

Options for manufacturer eCommerce include:

  • Specialty stores for specific vendor segments.
  • Regional and local language online catalogs for vendors.
  • Refurbished and closeout online stores.
  • Private label consumer direct sales.
  • And much more.

The online store is only one option for manufacturers. Multifront can open a world of potential for manufacturers. There are many ways that you can take advantage of eCommerce if your systems are flexible enough. Znode designed Multifront to be flexible, fast, and affordable, all with the needs of manufacturers in mind.

Photo by quinet

API Caching

Here at Znode, performance is always at the front of our brains. We sell an eCommerce platform, so the faster it performs, the better the bottom line is for people who build sites on top of it. Performance is basically Feature #1, as literally, every single potential customer asks about it when evaluating our software. And when it came to the Znode API, this was no exception.

Different Customers, Different Uses

We knew early on in the API design process that we were going to implement caching as part of the API, we just weren’t sure exactly what it was going to look like. But what we did know was that it needed to be a completely configurable solution, as every customer will have their own unique requirements for interacting with their eCommerce data. Some customers will want to use sliding cache expirations, while others will require absolute expiration times. Some customers will want to cache their product data for 60 seconds, yet others will cache their products for an hour. And some customers won’t want to cache anything at all. They should all be given the opportunity to handle any of these scenarios, and do so without modifying, recompiling, and redeploying code.

Dial Up, Dial Down

Every customer has their own performance requirements, and giving them configurable cache options allows them to tweak and test until they are satisfied they’ve got the right settings. This flexibility lets customers fiddle with the dials, if you will, and they can do this using a simple configuration file that can be updated on-the-fly.


The solution we came up with is the cache.config file, located in the root of the Znode API. This file provides cache options for every GET endpoint in the API and is automatically tied to the AppDomain, so changes to this file are the same as making changes to the standard web.config file. It’s important to remember that API caching occurs for GET requests only; caching for POST, PUT, and DELETE are not supported (and of course, don’t make much sense). Here’s a snippet of what the cache.config looks like:

<znodeApiCache> <cache enabled="true"> <routes> <!-- Catalog routes --> <route template="catalogs/{catalogId}" enabled="true" sliding="true" duration="60" /> <route template="catalogs" enabled="true" sliding="true" duration="60" /> <!-- Category routes --> <route template="categories/{categoryId}" enabled="true" sliding="true" duration="60" /> <route template="categories" enabled="true" sliding="true" duration="60" /> <route template="categories/catalog/{catalogId}" enabled="true" sliding="true" duration="60" /> <!-- Product routes --> <route template="products/{productId}" enabled="true" sliding="true" duration="60" /> <route template="products/{productId}/{skuId}" enabled="true" sliding="true" duration="60" /> <route template="products" enabled="true" sliding="true" duration="60" /> <route template="products/{productIds}" enabled="true" sliding="true" duration="60" /> <route template="products/catalog/{catalogId}" enabled="true" sliding="true" duration="60" /> <route template="products/category/{categoryId}" enabled="true" sliding="true" duration="60" /> </routes> </cache> </znodeApiCache>

The root <cache> node allows you to enable or disable the entire API caching mechanism. If set to false, then no caching will occur at all for any routes. The <routes> node contains a list of <route> nodes, each with the following attributes:

Attribute Description
template The route template as defined in the \App_Start\WebApiConfig.cs file.
enabled True/false value that determines if caching is enabled for the route (default = true).
sliding True/false value that determines if a sliding cache is used for the route; if false, absolute caching is used (default = true).
duration The number of seconds that the response data for the route should be kept in cache (default = 60 seconds).

Cache Keys And JSON Strings

There are two elements in the cache design that make all this possible: 1. The cache keys for storing data in the cache are the raw URLs of the request, including the entire querystring. A URL maps to a route, thus allowing us to cache data for that route and any parameters it may have, i.e. the querystring. 2. The data stored for each cache key is the raw JSON string returned for the request. Storing the JSON string itself, instead of an object that contains the JSON string, saves a serialization/deserialization trip, which increases performance even further.

Huge Performance Boost

Like any other cache solution, the caching built into the Znode API can provide massive performance gains for your websites and applications and should be utilized as much as possible.