A product collection is a defined list of products that can be used for different purposes in the shop. A product collection may be used directly as product lists in a shop, or it can be used to restrict what products a logged-in customer or salesperson can see.
You could for example create a product collection named “products on sale”, “most popular” or “best sold” and then display this list at any place in the shop. Note that although the examples here indicate some kind of intelligent listing, the product collections are static by nature from eSeller Cloud’s point of view – the contents of product collections must be defined in the ERP system (or from wherever the product collections originate).
Moreover, product collections can act as a filter of available products for one or more customers or salespersons. Thereby it is possible to create customer- or salesperson specific product catalogues by defining which products are visible to which customers and/or salespersons.
Currently it is only possible to create product collections via the FTP XML import (XML schema documentation) or via the shop administration import wizard (CSV format). This means that product collections currently cannot be created or viewed in the shop administration. If you wish to get an overview of product collections in your shop, we recommend that you export these using the shop administration export wizard.
Using product collections as product lists
Product lists using product collections can be placed anywhere in a shop by defining the ProductList or JsonProductList control in a content design. You can either specify the ext. ID of a product collection, thus getting a list of the products in that collection, or you can specify a tag, which will get a list of all products from all collections that have the tag. You can even use filters to filter such lists.
Product collections may have one or more tags, which is useful for getting lists of products based on multiple product collections – e.g. getting all products from all product collections with a specific tag.
Product collections may also have one or more labels, though this functionality is for future purposes (e.g. categorizing or managing product collections in the shop administration).
By specifying a sort order for products in a product collection, you can control in which order products are shown in a product list, if this list is created based on one or more product collections. When a product list consists of multiple product collections, the sort orders from all qualified collections will be merged.
When assigning products to a product collection, it is possible to specify a suggested quantity, which is then returned in the JSON product list result. This value can then be used in the design (e.g. by prefilling a quantity box for adding to basket). If the same product has a different quantity in different collections, and a list is created using these collections, the highest quantity will be used in the JSON result.
Note that the quantity property does not impose any restrictions on how many products can actually be added to the basket (it is not to be confused with smallest sales unit or bundle size), nor is it related to better pricing or quantity discounts – the intended purpose is to provide a suggested quantity to use in the product list design.
Standard product list
Note that the ProductList control must use the data provider
When using this data provider, you have to specify either the attribute “DataExtProductCollectionID” (ext. product collection ID) or “DataTag” (product collection tag) – otherwise no products will be returned. If you wish to use filters with the product list, this ProductList control must have the attribute MainProductList=”True”.
- This control gets all products from the product collection with ext. ID “summer2016”.
- This control gets all products from all product collections with the tag “bargains”.
JSON product list
The “ProductList” JSON service supports two parameters related to product collections; “pcEId” (product collection ext. ID) and “pcTag” (product collection tag).
- Gets all products from the product collection with ext. ID “summer2016”.
- Gets all products from all product collections with the tag “bargains”.
You can read more about the JSON product list here.
Using product collections to define customer/salesperson specific product catalogues
Using product collections, you are able to restrict what products are visible to a customer and/or salesperson – this is called the product scope of a customer/salesperson. This works out of the box – both the standard product list and JSON product list will only return products that are within the scope of what the currently logged in customer/salesperson is allowed to see.
Using product collections, you are able to create customer specific product catalogues, e.g.:
- Customer A is allowed to see products from product collections X and Y
- Customer B is allowed to see products from product collection Z
- Customer C is allowed to see all products
Likewise, the product scope of salespersons can be controlled using product collections. For a salesperson having selected a customer, the visible products are the intersection between the available product collections of the customer and salesperson:
- Customer A is allowed to see products from product collections X and Y
- Salesperson B is allowed to see products from product collection X
- Customer A and Salesperson B are related
When Salesperson B logs in and selects Customer A, he is able to see only products from collection X, as this is the only product collection they have in common.
In the shop administration you are able to see to which product collections are visible to a customer/salesperson. Under the tab called “Product collections” displays all product collections visible to a customer/salesperson.
Product collections visible to a specific customer.
Product collections visible to a specific salesperson.
Specifying product scope for customers/salespersons
The “product scope” of a customer/salesperson defines what products are visible to the customer/salesperson. Defining product scopes is currently only possible from the FTP XML import. When importing customers/salespersons, you are able to define the product scope of each customer/salesperson – that is what product collections the customer/salesperson is allowed to see.
Note that if no product scope is specified, this means that there are no restrictions for what products the customer/salesperson is allowed to see.
Import schema documentation for salespersons.
Import schema documentation for customers.
Importing product collections using the shop administration import wizard
As stated earlier it is possible to create product collections using the import wizard in the shop administration. Creation of product collections is done in two steps; First you define the product collection (ext. ID, tags and labels) and then you specify which products are part of the product collection.
Note that all files imported using the shop administration wizard must be in CSV format.
Below you see an example of a CSV file defining two product collections.
Two product collections are defined; “summer2016” and “newArrivals”. It is possible to specify multiple labels and tags by double-quoting each tag/label – e.g. “summer””news” as illustrated above. If the value is not quoted, the entire content of the field will become the label/tag.
Files defining product collections must be imported as the data type “ProductCollection”.
Note that when using the import wizard, you are only able to create/update/delete product collections that are owned by the shop (and not by a Data Origin).
When importing product collections using the import wizard, you are able to specify whether the import should behave as a "full" or "partial" import; that is whether any existing product collections not defined in the file should be deleted.
If the checkbox is UNCHECKED, any existing product collections not defined in the import file will be deleted (Any product collections created via a Data Origin will not be deleted).
If the checkbox is CHECKED, no product collections will be deleted - this will only create/update product collections.
Defining relations between products and product collections
When the product collections have been created, you can specify which products are included in the product collections. This is done by importing another CSV file defining relations between products and product collections. Below you see an example of such a file.
For each relation, you create a row with the ext. product collection ID and the ext. product ID – Quantity and SortOrder are optional.
The file must be imported as the data type “ProductCollectionProduct”.
Note that when creating product collection relations using the shop administration import wizard, the data origin of products is not regarded. This means that you are able to relate products from different data origins to product collections created using the wizard. The typical use case is, that all products are imported from an ERP system as a Data Origin, but the product collections (and product collection relations) are created in the shop administration using the import wizard.
When importing product collection relations using the import wizard, you are able to specify whether the import should behave as a "full" or "partial" import; that is whether any existing product collection relations not defined in the file should be deleted for any product collections in the file.
If the checkbox is UNCHECKED, any existing product collection relations not defined in the import file for any of the product collections in the file will be deleted (Any relations for product collections created via a Data Origin will not be deleted).
If the checkbox is CHECKED, no product collection relations will be deleted - this will only create/update product collection relations.