Integration

Server side rendering mode (Freemarker templates)

If you use the Magnolia server side rendering mode then the managed campaign component’s area will resolve by itself which campaign to display according to the HTTP request execution date.

Headless mode

If you use the Magnolia headless mode, you will have to define the following references resolvers in your delivery endpoint.

delivery-endpoint.yaml
references:
  # For the matching campaign resolution
  - name: campaignReference
    propertyName: tag
    referenceResolver:
      class: info.magnolia.campaign.manager.rest.reference.CampaignReferenceResolverDefinition

  # For the fallback campaign resolution (if used)
  - name: campaignFallbackReference
    propertyName: fallback
    referenceResolver:
      class: info.magnolia.rest.reference.jcr.JcrReferenceResolverDefinition
      targetWorkspace: campaign-manager
Then, as the other page components, you will need to map the Magnolia components defined in the campaign item with their related Javascript components.

response-extract.json sample

"04": {
    "@name": "04",
    "@path": "/home/main/04",
    "@id": "9dbd0f9e-b4ac-431b-b7d5-82a9b8eabdc6",
    "@nodeType": "mgnl:component",
    "tag": {
        "@name": "Welcome-back",
        "@path": "/welcome-back/Welcome-back",
        "@id": "c9e561d5-fb02-4370-a487-c53a0b4b027d",
        "@nodeType": "campaign-item",
        "tag": "258c7a63-0f07-4321-b6b0-4986b52f32aa",
        "name": "Welcome back",
        "mgnl:template": "headless-ecommerce:pages/ManagedCampaign",
        "main": {
            "@name": "main",
            "@path": "/welcome-back/Welcome-back/main",
            "@id": "22b5782d-f876-45e9-b843-500f75b92118",
            "@nodeType": "mgnl:area",
            "0": {
                "@name": "0",
                "@path": "/welcome-back/Welcome-back/main/0",
                "@id": "676f6a7e-8bab-4b85-837d-2d69d5359167",
                "@nodeType": "mgnl:component",
                "mgnl:template": "headless-ecommerce:components/Banner",
                "subtitle": "We're safely reopening our stores and reintroducing in-store shopping.",
                "isLarge": "false",
                "title": "WELCOME BACK SALE",
                "image": "jcr:23a7ef00-f6c9-4f26-808f-356b41791c74",
                "cta": {
                    "@name": "cta",
                    "@path": "/welcome-back/Welcome-back/main/0/cta",
                    "@id": "d8bea341-e2f7-4c48-9a6a-bdb5142fbfa7",
                    "@nodeType": "mgnl:contentNode",
                    "link": "4ff81f1f-b515-4433-8b0e-b108348e9b38",
                    "text": "SHOP AND GET DISCOUNTS",
                    "@nodes": []
                },
                "@nodes": [
                    "cta"
                ]
            },
            "@nodes": [
                "0"
            ]
        },
        "@nodes": [
            "main"
        ]
    },
    "mgnl:template": "campaign-manager:components/managed-campaign",
    "masterContent": "true",
    "skip": "false",
    "@nodes": []
}
Feedback