Promotion document type

Introduction

Goal

Create a "promotion" document type using the content type editor.

Prerequisites

Before starting:

👍

Tip

In the next tutorial, you'll create a page component to render current promotions.

Create a development project with content type changes enabled

Create a development project and make sure to check the Include content type changes checkbox:

Add your channel to the project.

Create the promotion document type

Navigate to the Content app and from the dropdown in the top left, choose Content types:

Browse to the "Bloomreach (brxsaas)" namespace folder and from its context menu, choose New document type:

In the New document type dialog, enter "Promotion" in the Name field, choose the 1 Column layout, and click OK.

A new, blank "Promotion" document type will be opened in the content type editor. Add the following fields:

Field typePathRequiredDefault caption
StringnameName
TexttextText
StringpromocodePromo code
DateexpirydateExpiry Date

Click Done to save the document type.

Alternatively, you may use the Content Type Management API's Content Type endpoint to create the new type:

PUT https://<your-content-host>.bloomreach.io/management/contenttypes/v1/development/Promotion

Use the following JSON payload:

{
    "name": "Promotion",
    "enabled": true,
    "type": "Document",
    "presentation": {
        "displayName": "Promotion",
        "layout": "one-column"
    },
    "fields": [
        {
            "name": "name",
            "type": "String",
            "required": true,
            "multiple": false,
            "presentation": {
                "caption": "Name",
                "hint": "",
                "layoutColumn": 1,
                "displayType": "Simple"
            },
            "validations": {
                "maxLength": null
            },
            "defaultValue": [
                ""
            ]
        },
        {
            "name": "text",
            "type": "String",
            "required": true,
            "multiple": false,
            "presentation": {
                "caption": "Text",
                "hint": "",
                "layoutColumn": 1,
                "displayType": "Text"
            },
            "validations": {
                "maxRow": null
            },
            "defaultValue": [
                ""
            ]
        },
        {
            "name": "promocode",
            "type": "String",
            "required": true,
            "multiple": false,
            "presentation": {
                "caption": "Promo Code",
                "hint": "",
                "layoutColumn": 1,
                "displayType": "Simple"
            },
            "validations": {
                "maxLength": null
            },
            "defaultValue": [
                ""
            ]
        },
        {
            "name": "expirydate",
            "type": "Date",
            "required": false,
            "multiple": false,
            "presentation": {
                "caption": "Expiry Date",
                "hint": "",
                "layoutColumn": 1,
                "timeSelectable": true
            },
            "validations": {},
            "defaultValue": []
        }
    ]
}

Create promotion documents

From the dropdown in the top left, choose Documents.

Select your channel's root folder and create a subfolder named "promotions".

In the new "promotions" folder, create a new "Promotion" document. Give it a name, for example "Spring Promotion". Make sure to select your development project and the Promotion document type.

A new empty "Promotion" document will be opened in the document editor.

Enter some content in all the fields, for example:

  • Name: "Spring Promotion"
  • Text: "15% off on all orders!"
  • Promo Code: SPRING15
  • Expiry Date: (choose a date in the near future)

👍

Tip

Note the message at the top of the editor: Project version: 'Promotions' (offline). Because the new document is of a document type under development, it is automatically added to the appropriate development project.

Click Done to save the document.

Alternatively, you may use the Content Management API's Document endpoint to create the new document:

PUT https://<your-content-host>.bloomreach.io/management/content/v1/project/<project-id>/document/content/documents/<channel-root-folder>/promotions/spring-promotion

Use the following JSON payload:

{
    "contentType": "Promotion",
    "fields": [
        {
            "name": "name",
            "value": [
                "Spring Promotion"
            ]
        },
        {
            "name": "text",
            "value": [
                "15% off on all orders!"
            ]
        },
        {
            "name": "promocode",
            "value": [
                "SPRING15"
            ]
        },
        {
            "name": "expirydate",
            "value": [
                "2021-04-30T00:10:00Z"
            ]
        }
    ],
    "name": "spring-promotion",
    "displayName": "Spring Promotion",
    "path": "/content/documents/tutorial/promotions/spring-promotion"
}

Create a couple more promotion documents. In the next tutorial, you'll create a page component to render current promotions.