website logo
➡️ purplepublish.com
Overview
Support
Setup
Editorial
Experience
Growth
Developers
Navigate through spaces
⌘K
Purple Experience
Views
Widget Component
Generic Widget
Structure of Dynamic resources
experience.config
Configure recurring texts in the messages.json
Purple Experience Builder
Using the Purple Experience Builder
Update your Purple Experience Version
Edit 'dynamic resources' from Purple Manager
Edit 'dynamic resources' in Experience Builder
Deploy Resources to Multiple Brands
Experience Builder Pipelines
Basic Experience Set-up
App onboarding configuration
Configure SEO attributes
Configure Error Pages
Configure the Side Menu in the Purple Experience
Configure a login page in Experience Builder
App menu configuration in Dynamic Resources
Configure the feedback email in the app with Experience Builder
Configure a coupon code page in Experience Builder
Configure a custom domain
Branding of your Experience
Experience Styling
Change the brand logo in the HTML Experience with Experience Builder
Configure brand colours in the HTML Experience with Experience Builder
Deposit a font in the HTML Experience with Experience Builder
Configure legal information pages in Experience Builder
Builder Pipelines Architecture Info
Simple static ads in Experience
Traffective ads in Experience
Action URLs and Deep linking
List of Action URLs
Deep linking
Migration
Docs powered by
Archbee
Purple Experience Builder

Deploy Resources to Multiple Brands

12min

Purple Experience Builder



Summary

This article explains how the deployment of dynamic resources to multiple brands works in the Purple Experience, described using the Purple Experience Builder. If you have multiple brands in your portfolio and want to use the same logic and templates while varying logos, colours, etc., you can define one of your apps as a parent that will provide new features to its children. You define protected files for the apps that prevent overwriting files needed for the different look and feel of the child apps.

Deployment only affects the 'Preview' dynamic resources of the main and target apps, and you still have to manually copy the dynamic resources to 'Release' once you verify that the 'Preview' looks good.



Preconditions

Create or edit an existing builder.config.json inside the /default folder in Experience Builder, here is a basic example as well as a minimal and one with pipelines.

/default/builder.config.json
Minimal
With Pipelines
|
{
    "$schema": "https://builder.purplemanager.com/api/public/schema/1.0/builder.config.schema.json",
    "deployment": {
        "mainAppId": "7e26fa47-e5af-4c3e-9c3a-01cf2763be64",
        "targetApps": {
            "ac375129-5b90-4d11-a319-789caf2e17a3": {
                "protectedFiles": [
                    "default/app_menu.xml"
                ]
            },
            "6fe16dcc-4250-4468-9290-81c4c63e30b1": {
                "protectedFiles": [
                    "default/app_menu.xml"
                ]
            },
            "ff7599c4-bcfa-460c-b0da-fc88aa869410": {} 
        },
        "protectedFiles": [
            "default/storefront/assets/experience.config.json",
            "default/storefront/assets/styles/index.scss",
            "default/storefront/assets/custom.css",
            "default/storefront/robots.txt"
        ]
    }
}


Legend to the above code

  • mainAppId: The main app for this deployment. All non-brand-specific changes should be done to this app only!
  • targetApps: The target apps this main app is deployed to (except the global and app-specific protected files)
  • protectedFiles: Files to exclude from copying for all apps


Deployment Process (Preview)

When the preconditions are met there will be a new menu entry at the top right Hamburger Menu called Deploy to Target Apps

Deploy to target apps


Clicking on Deploy to Target Apps opens a Dialog

  • It shows a list of all Target Apps (they are links to the app)
  • It also shows the current state of the deployment
Document image


You have the option to change the configuration file inside the dialog directly

Deplyoment status configuration file


When you start a deployment, the dialog shows the status of the current deployment on the current app as well as on any target apps (while the target app is not finished being deployed).

Document image


Deployment Process (Release)

We currently don't support a deployment process for Release Versions of your Apps.

You have to manually download the dynamic resources from the preview app and upload it to the release app.

This can be done inside the Purple Manager > Select your App > 3 Dot Menu > Dynamic. Alternatively: Each App also has a quick link to the correct Purple Manager Page (seen below).

Document image


FAQ

Q: I can't see the Deploy to Target Apps Menu entry. A: The builder.config.json is either misconfigured or doesn't exist. Please make sure that it does follow the JSON guidelines and does not have any trailing commas.

Q: When I open an App I see the Deployment Status Dialog and can't close it. A: This happens when a deployment is triggered from the Main App, while the deployment process is in progress. Your app will be available (the dialog does disappear by itself) as soon as your app is deployed.

Q: The Deployment Dialog didn't update for a while, what should I do? A: This can happen when the Experience Builder gets redeployed by a Developer due to a current bug. While being redeployed, the Deployment Data stored on the server can not be cleared. The Data does clear itself after 60 seconds which then will allow you to edit Apps again, but you have to refresh the page.

Q: I get the following message when I hover the Deploy to Target Apps entry: "This is a target app for a deployment, to make changes to the deployment config open the main app or change the mainAppId" A: This happens when you are inside of a target app and this message functions mainly as a quick link to the main app. If you are inside of the main app and get the message, then change the mainAppId inside the builder.config.json

Q: I get the following message when I hover the Deploy to Target Apps entry: "In your deployment config is the property mainAppId missing, add it to enable this menu entry" A: This message comes when the mainAppId inside the builder.config.json is missing, the property is used when the JSON is populated to the target apps to differentiate if this is the main app or a target app.

Q: I get the following message when I hover the Deploy to Target Apps entry: "In your deployment config are no target apps configured, add one to enable this menu entry" A: This message comes when the targetApps inside the builder.config.json is missing or empty. This basically means you have no apps to deploy to so no reason to enable the menu entry.

Updated 30 Aug 2023
Did this page help you?
PREVIOUS
Edit 'dynamic resources' in Experience Builder
NEXT
Experience Builder Pipelines
Docs powered by
Archbee
TABLE OF CONTENTS
Summary
Preconditions
Deployment Process (Preview)
Deployment Process (Release)
FAQ
Docs powered by
Archbee
ImprintPrivacy Policy
© Sprylab Technologies GmbH 2023