-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy patheasy-setup.sh
More file actions
executable file
·85 lines (71 loc) · 2.64 KB
/
easy-setup.sh
File metadata and controls
executable file
·85 lines (71 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env bash
set -euo pipefail
# Configuration - modify these values for your setup
ENV_SLUG="demo15"
ENV_NAME="demo15"
SITE_ID="RefArch"
TENANT_ID="zzpq_013"
ORGANIZATION_ID="f_ecom_zzsa_009"
SHORT_CODE="kv7kzm78"
BUILD_PATH="${BUILD_PATH:-$HOME/code/SFCC-Odyssey/packages/template-retail-rsc-app/build}"
export SFCC_MRT_PROJECT="${SFCC_MRT_PROJECT:-cli}"
echo "=== Step 1: Creating MRT environment ==="
ENV_JSON=$(b2c mrt env create "$ENV_SLUG" --name "$ENV_NAME" --json)
echo "Environment created."
# Extract the external hostname for the callback URL
SSR_EXTERNAL_HOSTNAME=$(echo "$ENV_JSON" | jq -r '.ssr_external_hostname // empty')
if [[ -z "$SSR_EXTERNAL_HOSTNAME" ]]; then
# Fall back to hostname if external hostname not set
SSR_EXTERNAL_HOSTNAME=$(echo "$ENV_JSON" | jq -r '.hostname // empty')
fi
if [[ -z "$SSR_EXTERNAL_HOSTNAME" ]]; then
echo "Warning: Could not determine external hostname from environment. Using localhost."
CALLBACK_URL="http://localhost:3000/callback"
else
CALLBACK_URL="https://${SSR_EXTERNAL_HOSTNAME}/callback"
fi
echo "Callback URL: $CALLBACK_URL"
echo ""
echo "=== Step 2: Creating SLAS client ==="
SLAS_JSON=$(b2c slas client create --channels "$SITE_ID" \
--redirect-uri "$CALLBACK_URL" \
--default-scopes \
--tenant-id "$TENANT_ID" \
--json)
echo "SLAS client created."
# Extract client ID and secret from SLAS response
CLIENT_ID=$(echo "$SLAS_JSON" | jq -r '.clientId')
CLIENT_SECRET=$(echo "$SLAS_JSON" | jq -r '.secret // empty')
if [[ -z "$CLIENT_ID" ]]; then
echo "Error: Failed to get client ID from SLAS response"
exit 1
fi
echo "Client ID: $CLIENT_ID"
if [[ -n "$CLIENT_SECRET" ]]; then
echo "Client Secret: $CLIENT_SECRET (save this - it won't be shown again)"
fi
echo ""
echo "=== Step 3: Setting environment variables ==="
b2c mrt env var set -e "$ENV_SLUG" \
"PUBLIC__app__commerce__api__clientId=$CLIENT_ID" \
"PUBLIC__app__commerce__api__organizationId=$ORGANIZATION_ID" \
"PUBLIC__app__commerce__api__siteId=$SITE_ID" \
"PUBLIC__app__commerce__api__shortCode=$SHORT_CODE" \
"PUBLIC__app__commerce__api__proxy=/mobify/proxy/api" \
"PUBLIC__app__commerce__api__callback=$CALLBACK_URL" \
"PUBLIC__app__commerce__api__privateKeyEnabled=true" \
${CLIENT_SECRET:+"COMMERCE_API_SLAS_SECRET=$CLIENT_SECRET"}
echo ""
echo "=== Step 4: Deploying code ==="
b2c code deploy
echo ""
echo "=== Step 5: Importing job data ==="
b2c job import data/urls
echo ""
echo "=== Step 6: Pushing to MRT ==="
b2c mrt push -e "$ENV_SLUG" -b "$BUILD_PATH"
echo ""
echo "=== Setup Complete ==="
echo "Environment: $ENV_SLUG"
echo "Client ID: $CLIENT_ID"
echo "URL: https://${SSR_EXTERNAL_HOSTNAME:-localhost:3000}"