Swift - New Projects Guide

When you start a new project on Dynamicweb Swift you get a lot of things for free – first and foremost the design and all the elements for creating content, but also a fully implemented ecommerce solution with everything that entails, e.g. products, variant groups, product categories, and so on and so forth.

While this can be very useful, it also means you must review the pre-configured content when you start a new project – see what you can use and what you should get rid of!

In this guide we will go through one possible path to take when you start a new project based on Dynamicweb Swift. As you get more experience with Swift you may want to add or remove steps to your process – and that’s totally fine – but if you don’t really know where to start this guide may be useful.

Swift comes with a demo website – a bike shop – which uses the Swift design and contains a specific node in the content tree with Swift tools. The Swift tools are a selection of pages used by the design to control e.g. header & footer layout, themes & branding settings, and much more.

Instead of creating all these from scratch you should copy the demo shop website and then use the copy as a starting point for the new project. Please note that you cannot copy permissions - they must be reimplemented on the copied site.

Next you should review some of the fundamental Ecommerce components:

Basically you should:

  • Create a country for each country you want to deliver to
  • Create a language for each language you want to localize products to
  • Create a currency for each currency you want to sell products in

By default Swift features one country (Denmark), two languages (Danish & English), and two currencies (DKK & EUR).

On the importance of default countries/languages/currencies

It is important that you decide on a default country, default currency & default language before you start adding product data to the solution – changing e.g. the default language will force-localize all existing products to the new default language, and depending on your fields settings you may lose data.

When it comes to product data, most Swift-solutions are integrated – which means that product data is imported from an external system and not created manually.

From a solution standpoint, however, it doesn’t make a lot of difference if you import the data or create it manually – and in the following sections we won’t be focusing on how you create the various types of content, only that it needs to happen.

So let’s take a closer look at the product portfolio:

  • Does the product portfolio contain products with variants – e.g. red/green/blue or small/medium/large? If so you should create the relevant variant groups.
  • Are products sold in non-default product units, e.g. boxes and pairs? If so create the relevant product units.
  • Does the product portfolio contain properties which do not naturally fit a standard field?

Next you want to consider the product structure – where the products are going to be placed and where they will be enriched.

The most important thing to remember here is:

  • The PIM warehouse & group structure is independent of how the products will be presented in frontend. When creating the warehouse structure you should primarily consider which product categories you want to inherit from and let the structure reflect that.
  • The Ecommerce shop & group structure determines how the products are shown in frontend

If this is a solution without PIM you can of course safely disregard creating the PIM structure.

After creating the product/warehouse groups you should apply the product categories you created during the previous step to the relevant groups. Please note that if you are working on a solution with PIM you should only apply the categories to the warehouse groups; on a PIM solution the Ecommerce structure should only be regarded as a channel to publish products to, not as a place to edit product data.

At this point in the process it’s important to review the Fields-settings for the solution. These settings control which product properties are allowed to be different across languages and variants. You can also make certain fields required, read only and or hidden for non-admin users.

If this is a solution with PIM you should analyze how the client wants to work with their products and create a structure reflecting that. This varies from client to client and likely requires a thorough analysis of their business practices.

Consider the following tools:

Once product data has been enriched it can be published to Ecommerce using the Publish to channels button available from the ribbon bar.

Typically you want to create procedures for adding the following:

  • Images
  • Text (Description, Teaser Text)
  • Product field/Product Category field values
  • Prices
  • Translations between ecommerce languages

Dynamicweb – and therefore Dynamicweb Swift – contains a generalized search framework usually referred to as indexing. This framework is used primarily for two things:

  • Publishing products to frontend
  • Rendering facets (filters) in frontend

When you work with product data – for instance by adding product fields and product category fields, creating variants and so on – you need to tweak the index configuration to account for the new data.

You should:

  • Rebuild the products index
  • Create new facets appropriate to the product portfolio

At this point it is time to consider the Swift design settings:

  1. Themes are used to create color schemes for a website – e.g. a light theme and a dark theme – which can then be applied when creating content.
  2. The Branding settings are used to configure branding-related settings such as fonts, casing, line height, letter spacing and various button design choices

The Swift example website comes with a header and footer layout – which obviously needs to be changed to match the new project.

To create a header or footer layout:

  1. Navigate to Swift tools > Layout > Header/Footer as appropriate
  2. Use the visual editor to create the layout

For an example please see the Creating a desktop footer guide.

Swift also ships with a default checkout design, which leads customers through the checkout process. You should review this and verify that it lives up to your needs.

Finally, you can start creating content for the projects – landing pages, about pages, content marketing, etc.

To help you get started:

Here's a video from the Partner Onboarding Tech Intro series for DynamicWeb 9 on the subject of configuration, using Swift and touching on several DynamicWeb modules.