Swift - New Projects Guide
Starting a new project on Swift
When it comes to implementing solutions you get a lot of things for free when you use DynamicWeb Swift - 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 article, 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 list may be useful.
1. Copy Website
Swift comes with a demo website - a bike shop - which uses the Swift design and contains a 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 and footer layout, themes & branding settings, and much more.
Instead of manually creating these from scratch you can copy the demo shop website and use the copy as a starting point for the new project.
2. Basic Ecommerce configurations
Next you should review some of the fundamental Ecommerce components, specifically:
- 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). You should also review the website Ecommerce settings and make sure everything is set up right.
If relevant, it is important that change the default country, currency and language before adding product data to the solution, as changing e.g. the default language later will force-localize all existing products to the new default language and - depending on the field permissions - you may lose data.
3. Product 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?
- Should this property be available on all products? If so add it as a global custom field
- Should this property only be available on products of a certain category? If so add it to a category
4. Product Structure
Next you want to consider the product structure – where the products are going to be placed and where they will be enriched.
5. Field permissions
At this point in the process you should review the field visibility settings for the solution. These settings control which product attributes are allowed to differ across e.g. language-versions and variants.
6. Product Enrichment tools
If this is a PIM solution, you should analyze how the client wants to work with product data and create a structure reflecting that. This varies from client to client and likely requires a thorough analysis of their business practices.
You can use a combination of the following tools:
- Queries
- Dynamic workspaces
- Workflows
7. Indexes
DynamicWeb 10 - and therefore Swift - contains a generalized search framework called Repositories (but often referred to as indexing). Using this framework you can build indexes for different types of content on the solution and query them.
On Swift this is primarily used for two things:
- To publish products to frontend
- To render 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
8. Swift Design Configuration
Finally, you're at the point where it's time to use the Design-tools to create themes, configure branding related settings such as fonts and casing, and to create a header and footer design
9. Checkout design
Swift also ships with a checkout design, which leads customers through the checkout process. You should review this and verify that it lives up to your needs.
10. Create Content
Finally, it's time to use the Visual Editor to create content:
- Read about content design on Swift
- Check out the content columns and ecommerce columns you can use to build content
- Enjoy the process :)