Developer forum

Forum » Ecommerce - Standard features » Highly customized assortments

Highly customized assortments

Imar Spaanjaars Dynamicweb Employee
Imar Spaanjaars
Reply

Hi there,

I have a customer that requires a highly customized assortment for their users. Here's the situation:

1. There are 5000 products in the catalog (rough estimate)
2. A customer has access to one or more products in that catalog (rough estimate: each customer has a few hundred products at most)
3. Which customer has access to which products is defined in an XML that we'll receive daily (a mapping between a customer number and a bunch of product numbers)
4. Each customer can have a unique price for the product (also defined in the XML)
5. To make it more interesting, each customer can have its own categorization of the products. So for example, even though the catalog looks like this:

Group 1
  Product 1
  Product 2
  Product 3
Group 2
  Product 4
  Product 5
  Product 6
 

It could be that it should be presented to a specific customer as follows:

New Group Name
  Product 2
Other name
  Product 6
Yet another name
  Product 4

Customers can have products in arbitrary new groups (also defined in XML) so there isn't a simple one to one mapping between the catalog groups and the user groups (in other words, we cannot simply change the name being shown).

What would be the best way to model this? I see a few options, but all of them seem to have some issues:
 

Use Assortments
This would solve the custom product list issue but it would mean a lot of work to build the assortments in the backend. Also, with hundreds of customers, this can become messy. Custom prices and custom grouping could be handled during import and a priceprovider and some template extenders.
 

Build a group tree per customer
This solves the problem of the custom groups as each customer can have its own tree of groups in the product catalog. However, maintenance could still be messy. Custom prices could be handled during import and a price provider.

Extensibility API
We could hook into something like eCommerce.ProductList.BeforeSort or eCommerce.ProductList.BeforePaging (which gives us access to all products) and then filter out those that the user doesn't have access to. Prices and grouping can be handled with price provider and some template extenders. However, with thousands of products, this could be too expensive and slow.

We don't need searching and filtering as all available products are always shown to the user on a single page (like a spread sheet, showing all at once for easy ordering)

Any recommendations on how to do this? We're going to build a prototype first to validate our assumptions and I could use some guidance.

Thanks,

Imar


Replies

 
Nicolai Høeg Pedersen
Reply
This post has been marked as an answer

There is no doubt - one shop/group tree per customer. Anything else would be impossible, since that is basically a product tree and price for each customer.

This approach would also give you better options for fixing things that you will discover later in the project - and yes, maybe a bit more product records to manage, but much easier thant the alternative... Basically they share nothing but a few product details.

You can import the product once, add to one group for each customer, and make a price for each customer in price matrix (or use a price provider)

BR Nicolai

Votes for this answer: 1
 
Imar Spaanjaars Dynamicweb Employee
Imar Spaanjaars
Reply

Hi Nicolai,

Thanks for your answer. Good to know. We'll explore this option further.

Imar

 

You must be logged in to post in the forum