Structure & Workflows

The product portfolio is a collection of all the products on the solution – a kind of database, which can be organized, enriched, and published across various channels when necessary.

In most PIM setups, products are imported to the portfolio from an external system – e.g. an ERP system like Dynamics NAV or AX – and placed in a group structure which reflects the external source. At other times, they are placed in a single group and then manually moved into a group structure using PIM.

Either way, the portfolio is organized in some way using the following tools:

  • Warehouses & warehouse groups
  • Queries

Another important structural aspect to consider is how to model and work with product variants or product families. In many cases, these types of product relationships are defined in the remote system and handled when importing products. But if they are not defined in an easily-transferable way in the source data, or it’s simply more economical to handle the relationships directly in Dynamicweb PIM, the Combine tool allows you to quickly create them from a flat structure.

Finally, the workflows tool allows you to structure and standardize the internal processes used to move the product through the different stages of the product lifecycle – from newly imported to ready for publication.

Read more about the tools for structuring your product portfolio and your processes below.

Warehouses are parallel to shops in Dynamicweb Ecommerce – but can be organized in a manner which makes sense for the product enrichment process, independent of how the products are presented across channels.

The primary function of a warehouse is to contain warehouse groups. Since warehouse groups are functionally identical to product groups in Ecommerce, you can do two important things on them:

  • Select a workflow for the products in the group
  • Select a product category for the products in this group

In contrast to product groups in Ecommerce, the warehouse group structure is only for administrative purposes, and can reflect anything you like without impacting how the products are published across channels. Name them after ERP codes, after manufacturers, or something else which makes sense for a particular project.

A single warehouse is typically enough, except for PIM projects with multiple data sources.

To create a warehouse:

  • Go to Settings > PIM > Warehouses
  • Click New warehouse in the toolbar
  • Name the warehouse
  • Select a preview page – this page must contain a product catalog app, and will be used to render previews
  • Under Indexing check the Auto-build index when products are updated checkbox and select a Product index to auto-update when products in this warehouse are updated
  • Save

After saving, the settings not related to PIM warehouses disappear – this is normal and nothing to worry about.

In addition to these basic settings, you can also define image patterns on a warehouse – or specify a folder to upload images to when using the images field in PIM. 

Warehouses contain warehouse groups, which are used to group products and product containers.

They are in all respects identical to product groups in Ecommerce, except of course that they are not published to frontend – and can therefore be named and organized in a way which makes sense in a PIM context (Figure 4.1).

Figure 4.1 Groups in PIM

Most of the time, groups will be imported from an external system to PIM along with the products.

To create a group manually:

  • Right click on a warehouse or an existing group to open a context menu
  • Click New group/New subgroup
  • Fill in the appropriate fields (e.g. Name and Number)
  • Save

The context menu (Figure 4.2) also gives you access to other group-related functions, such as:

  • Creating subgroups
  • Editing the group settings
  • Moving or deleting the group
  • Attaching groups and products to the group
  • Sorting products inside the group
  • Setting permissions
Figure 4.2 Context menu

Groups and subgroups may be sorted by clicking the sort icon, rearranging the groups in the content pane, then saving (Figure 4.3). You can use the Sorting button to sort alphabetically in ascending or descending order - this is useful if you have a lot of warehouse groups.

Figure 4.3 Sorting warehouse groups

From all view modes you can select products and use the Add to group button manage group membership (Figure 5.1).

Figure 5.1 Adding products to a Warehouse group

This allows you to review basic information for each group the product belongs to;

  • Name
  • Warehouse
  • Group path
  • Primary group status

Use the green plus-icon to add the product to a new warehouse group.

Where warehouses and groups allow you to organize your products in a structured manner, queries allow you to retrieve products which are similar in some way – regardless of their place in the warehouse group hierarchy. If you are familiar with the Dynamicweb indexing framework, you should be familiar with the basics of indexing and queries.

Think of queries as a sort of dynamic warehouse group, which contains all products that share certain customizable properties. You could, for example, create a query which returns all product created after a certain date with no product name. Or a query which returns all products with less than 100 stock.

A query is associated with a particular product index and consists of:

  • A set of expressions which filter the products returned – no expressions means all products are returned
  • Sorting instructions
  • Instructions for which fields and languages to show for the products returned

Queries may be personal or shared, and can be organized in folders and subfolders if necessary (Figure 6.1).

  • Queries created under My Queries are personal and cannot be used by other users
  • Queries created under Shared Queries are shared amongst all users on the solution
Figure 6.1 Shared & personal queries

To create a query:

  • Right click on either My Queries or Shared Queries in the PIM tree
  • Click New Query
  • Name the query
  • Select a product index as the data source
  • Click OK

This will open the query configuration view which is used to define expressions, sorting, and display instructions.

The way queries work, an empty query returns all data in the index. This is usually not very useful, so you create sets of expressions which limit the data returned and create specialized, manageable lists for you to work with.

For instance, you may want to isolate all active products with no description (Figure 7.1), or perhaps you are only interested in products which are a part of the Christmas campaign.

To create expressions:

  • Click Add Group
  • Select a field in the index
  • Select an operator
  • If the operator requires it, set a test value
  • Click OK
Figure 7.1 Query expressions

The operators and test values available are dependent on the data type of the field you query. For instance, a Boolean is a data type which can only be true or false – and so the only operator available is ‘Equal’ and the only test values available are true and false.

Expressions may be combined in AND-groups and OR-groups, and can be negated to return all elements not matching the expressions. This makes it possible to create pretty powerful and complex queries.

For more information regarding expressions, please consult the indexing documentation.

When a query is executed, the products matching the expression criteria will be rendered in the content pane, where you can review and work with them using the views available to you (see below).

By default, products are sorted by ProductID, but you can define a default sort order in the query definition (Figure 8.1).

Figure 8.1 Creating a default sort order

To do so:

  • Click Add Sorting
  • Select a Field and a Direction
  • Click OK

Don’t forget to save the query before exiting. To remove a default sort order click the red X and save.

The final part of a query is the display instructions – they detail exactly which fields and languages are rendered when executing this query in the Multi Edit view mode. You can use the visible fields selector to change that when using a query, but it will revert back to the instructions defined here the next time it's executed.

You have access to two selectors – for Fields and Languages (Figure 9.1). To include a field or language, simply move it from the left side box to the right side box. 

Figure 9.1 Display instructions for a query

A few things to keep in mind:

  • The more fields and languages you include, the slower the PIM list will be to work with – this is a browser memory issue, not a Dynamicweb issue
  • The fields and languages are listed in the same order they have on the right side of the selector, so you should sort them to your liking using the sorting arrows

Of course, when working with a query result you always have the option of adding or removing fields and languages from the present view. The display configurations are merely default instructions for the Edit view mode.

If a query matches only a particular variant, the rest of the variant cluster (master & non-matching variants) will be displayed in a dim grey, which will help you identify the relevant products in a speedy manner.

When products are imported to Dynamicweb PIM, they typically don’t have a lot of related information – in many cases they are imported with only a product number and a name. Invariable, the products must go through an enrichment process before they can be published across your different channels.

The enrichment process can be controlled using a workflow, which is a set of steps that the product must move through in a fixed order. This ensures that all the relevant information is added before the product is published, and that information is added in the correct order (e.g. primary language descriptions before translations).

A workflow consist of:

  • A number of states – e.g. New product, Ready for description, Ready for translation, etc.
  • A set of availability instructions per state, which control which states a product can move to from the current state
  • Optionally, a set of state notifications for notifying key people when a product enters a new state

Workflows are created under Settings > PIM > Workflows - see here. Once a workflow has been created, you will have access to a workflow state field when editing products in product edit or multi-edit mode (Figure 10.1).

Figure 10.1 Using PIM workflows

Start a workflow by selecting a state for a product and save. This triggers any state notifications for the state, and the product can now move to and from the states defined in the workflow configuration.

By default, all workflows can be selected - but you can limit the states available by selecting a particular workflow at the group level (Figure 10.2) - use the green checkmark to force the workflow value on all subgroups. If a product is a member of several groups with explicit workflows set, both workflows will be available when editing the product.

Figure 10.2 Selecting a particular workflow at the group level

Combine products is a feature which allows you to handle relations between products after the products have been imported to PIM.

This can be very useful if the remote system does not or cannot account for product relations, or if it’s simply more economical to handle product relations in Dynamicweb PIM.

To activate the function:

  • Go  to Settings > Ecommerce > Advanced configuration > General
  • Check the Allow combining products as family checkbox

A new button for combining products will appear in both the Dynamicweb PIM and Dynamicweb Ecommerce toolbars.

To use the feature, simply select any number of products in a list and click the Combine products button to launch the combination dialog (Figure 11.1).

Figure 11.1 Combine products as family

The products may be combined in two ways:

  • As variants
  • As a product family

Both options are explained below.

Please note, that when combining products you should allow the product number field to differ across variants. Main products are generated without a product number, and unless you allow field contents to vary so will the variants and product family members.

Tip: You can combine products which exist across different languages as a family - the master product will automatically be created for all languages used in the family.

Variants are products which differ only in respect to one or more variant groups – size, color, etc.

When combining a set of products as variants (Figure 12.1), you will select one or more exisiting variant groups and assign a variant option to each product, e.g. Large or Black.

Figure 12.1 Combine as variants

To combine a set of products as variants:

  • Select the Create variants mode
  • Select the relevant variant groups
  • Review the list of products you are combining – you can add or delete products from the selection
  • Click Next

You must now do three things (Figure 12.2):

  • Assign the relevant variant options to each product
  • Select a product to generate a main product from
  • Click Save
Figure 12.2 Combine as variants

Variant combinations must be unique – you can’t save two products with the same variant option (e.g. black). If you’re trying to do this, the products are not truly variants of each other, and the relationship is perhaps better emulated at a group-level.

Please note, that you cannot add new variant products using this view - this is only intended as a tool for combining already existing products.

A product family is a collection of products which are related but not variants of each other.

Like variants, products in a family are located under a main product – but the main product is not intended to be a product in its own right, but simply acts as a container for data shared by all the products in the family (Figure 13.1).

Figure 13.1 Combine as family

To combine products in a family:

  • Select the Create family mode
  • Review the list of products you are combining – you can add or delete products from the selection
  • Click Next

On the next screen (Figure 13.2):

  • Select a product to generate a main product from
  • Click Save
Figure 13.2 Combine as family