@wix/himalaya-cli 0.1385.0 → 0.1387.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-auth.mjs +9 -0
- package/dist/cli.mjs +1254 -492
- package/guides/branded-lite-site-binding.md +12 -5
- package/guides/himi-json-output.md +13 -3
- package/guides/iap-products.md +91 -11
- package/package.json +2 -2
- package/templates/beauty-salon/README.md +8 -3
- package/templates/branded-lite/README.md +8 -3
- package/templates/community-club/README.md +8 -3
- package/templates/events-meetups/README.md +8 -3
- package/templates/gym-fitness/README.md +8 -3
- package/templates/nonprofit-cause/README.md +8 -3
- package/templates/podcast-creator/README.md +8 -3
- package/templates/portfolio-creative/README.md +8 -3
- package/templates/restaurant/README.md +8 -3
- package/templates/retail-store/README.md +8 -3
- package/templates/yoga-studio/README.md +8 -3
|
@@ -16,13 +16,20 @@ on conflict: [`apps/himi-branded-lite/config.ts`](../apps/himi-branded-lite/conf
|
|
|
16
16
|
|
|
17
17
|
If you scaffolded from the `branded-lite` template with the standalone CLI
|
|
18
18
|
(`himi init my-app --template branded-lite`) and have **no monorepo checkout**, the whole
|
|
19
|
-
site binding is **
|
|
19
|
+
site binding is **three values**, and nothing on this page below this section applies to you:
|
|
20
20
|
|
|
21
21
|
```sh
|
|
22
22
|
export WIX_CLIENT_ID="<your-headless-oauth-client-id>"
|
|
23
23
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
24
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
24
25
|
```
|
|
25
26
|
|
|
27
|
+
`WIX_SITE_ID` is the site that client belongs to. Reads need only the client, but a native
|
|
28
|
+
build matches its member sign-up CAPTCHA key, push registration and IAP binding against the
|
|
29
|
+
site: without it, sign-up on a CAPTCHA-protected site is refused. The member login takes it
|
|
30
|
+
from the environment while `WIX_CLIENT_ID` is the client the config uses
|
|
31
|
+
([member-captcha-native.md](member-captcha-native.md)).
|
|
32
|
+
|
|
26
33
|
Don't have the client id? You no longer have to go and copy it out of the dashboard —
|
|
27
34
|
`himi site client ensure --site <msid> --yes` resolves the site's Headless client (reusing
|
|
28
35
|
one that already carries your redirect, or minting one with it registered) and prints the
|
|
@@ -39,9 +46,9 @@ failing at redirect-session with "no auth code". `himi site list` shows the site
|
|
|
39
46
|
already have.
|
|
40
47
|
|
|
41
48
|
— or hardcode them directly in your app's [`config.ts`](../apps/himi-branded-lite/config.ts)
|
|
42
|
-
(`WixConsumerAuthProvider({ clientId: "…", siteUrl: "…" })`). The Headless
|
|
43
|
-
|
|
44
|
-
reads that site's real catalog. (Leaving the shipped `YOUR_WIX_CLIENT_ID` placeholder in place makes
|
|
49
|
+
(`WixConsumerAuthProvider({ clientId: "…", siteUrl: "…", siteId: "…" })`). The Headless
|
|
50
|
+
**`clientId` binds the data**; reads take the `metaSiteId` from the visitor token that client mints,
|
|
51
|
+
so the app now reads that site's real catalog. The native features above still need `siteId`. (Leaving the shipped `YOUR_WIX_CLIENT_ID` placeholder in place makes
|
|
45
52
|
the app boot and read nothing; `himi validate` now warns when it's unreplaced.)
|
|
46
53
|
|
|
47
54
|
Binding is **step 1 of integrating the app with the website**. To duplicate the site's
|
|
@@ -119,7 +126,7 @@ himalaya-dev app open himi-branded-lite device
|
|
|
119
126
|
1. Set the env vars in the environment that runs the **dev-server / gen / Xcode / Gradle** process.
|
|
120
127
|
2. Rebuild or re-run gen so `auth.json` picks up the new values if you are not relying on a live env override at boot.
|
|
121
128
|
|
|
122
|
-
Off-repo (`himi init --template branded-lite`): set `WIX_CLIENT_ID` and `
|
|
129
|
+
Off-repo (`himi init --template branded-lite`): set `WIX_CLIENT_ID`, `WIX_SITE_URL` and `WIX_SITE_ID` the same way — the generated `config.ts` reads the first two, and the member login pairs `WIX_SITE_ID` with `WIX_CLIENT_ID`.
|
|
123
130
|
|
|
124
131
|
### Where does MSID fit?
|
|
125
132
|
|
|
@@ -92,13 +92,23 @@ statuses are preserved: incomplete status is exit 1; a failed live Wix catalog r
|
|
|
92
92
|
|
|
93
93
|
Item-level unavailable checks take precedence over drift in the top-level code. Detailed
|
|
94
94
|
`priceSource`, `priceDrift` and `priceCheckIssue` fields live in each item's `provisioning` report.
|
|
95
|
-
|
|
95
|
+
An invalid manifest, including a `reviewScreenshot` file that is missing or not a PNG or JPEG,
|
|
96
|
+
fails with `manifest_invalid`, and `problems` lists every reason. This is not a whole-command migration.
|
|
96
97
|
|
|
97
98
|
IAP provisioning refusals from `plan`, `apply` and `status` also expose their existing typed
|
|
98
99
|
`reason` as a top-level `code`: `target` (wrong app, bundle, team or territory), `access`
|
|
99
100
|
(Apple authentication/authorization), `plan` (invalid reviewed plan), `account` (changed
|
|
100
101
|
credential profile or key), and `drift` (Apple changed since planning). Existing `reason` and
|
|
101
|
-
exit statuses remain intact.
|
|
102
|
+
exit statuses remain intact. An invalid manifest carries `manifest_invalid` alongside its
|
|
103
|
+
existing `problems` list.
|
|
104
|
+
|
|
105
|
+
## `himi store iap screenshots` codes
|
|
106
|
+
|
|
107
|
+
| Code | Meaning |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `screenshots_incomplete` | At least one selected item has no screenshot. Each one in `items` carries a `skipped` reason: no purchase screen, no Apple price yet, an existing screenshot kept without `--force`, a screen that did not show the Apple price, or a failed read of the item. The screenshots that were made are saved and named in the manifest. Exit 1. |
|
|
110
|
+
|
|
111
|
+
An invalid manifest fails with `manifest_invalid`, like the other `store iap` commands.
|
|
102
112
|
|
|
103
113
|
## `himi store iap connect` codes
|
|
104
114
|
|
|
@@ -135,7 +145,7 @@ whole body gzip-encoded because it is over the plain 8 MB cap:
|
|
|
135
145
|
|
|
136
146
|
| Code | Meaning |
|
|
137
147
|
|---|---|
|
|
138
|
-
| `compressed_publish_unsupported` | The publish body went out gzipped and the publishing service did not accept it compressed
|
|
148
|
+
| `compressed_publish_unsupported` | The publish body went out gzipped and the publishing service did not accept it compressed. It either read the bytes as malformed JSON, or measured the decompressed body against the 8 MB uncompressed limit (HTTP 413). Either the service does not accept compressed bodies yet, or the credential is a self-serve one, which keeps the 8 MB uncompressed limit. Nothing was written. |
|
|
139
149
|
|
|
140
150
|
## `himi site member-app` codes
|
|
141
151
|
|
package/guides/iap-products.md
CHANGED
|
@@ -112,7 +112,8 @@ and nothing is crawled from a Wix catalog.
|
|
|
112
112
|
{ "locale": "en-US", "name": "Nutrition Program", "description": "Lifetime access to the nutrition plan." }
|
|
113
113
|
],
|
|
114
114
|
"price": { "baseTerritory": "USA", "currency": "USD", "amount": "0.99" },
|
|
115
|
-
"territories": ["USA", "CAN"]
|
|
115
|
+
"territories": ["USA", "CAN"],
|
|
116
|
+
"reviewScreenshot": "screens/nutrition-program.png"
|
|
116
117
|
}
|
|
117
118
|
]
|
|
118
119
|
}
|
|
@@ -138,6 +139,13 @@ Rules, all checked locally before any request:
|
|
|
138
139
|
reference name at most 64, product id at most 100, review note at most 4,000.
|
|
139
140
|
- **`territories`** is an explicit list that includes the base territory. Availability
|
|
140
141
|
never extends to future territories automatically.
|
|
142
|
+
- **`reviewScreenshot`** (optional) is a PNG or JPEG of the purchase as it appears in your
|
|
143
|
+
app, for Apple's reviewer only; customers never see it. The path is relative to the
|
|
144
|
+
manifest's folder (or absolute). Without a screenshot, a product stays `MISSING_METADATA`
|
|
145
|
+
and can't be submitted. Every named file must exist and be a PNG or JPEG before `plan`
|
|
146
|
+
sends a request. Apple accepts any App Store screenshot size your app supports, so a
|
|
147
|
+
full-size iPhone screenshot is safest. `plan` warns about a size it doesn't recognize,
|
|
148
|
+
and Apple decides.
|
|
141
149
|
- **Duplicates are refused:** a product id, Wix entity, entitlement or reference name
|
|
142
150
|
used twice, including a Wix entity mapped both directly and through a tier.
|
|
143
151
|
- **Unknown keys are refused, at every level.** So is any string that looks like a key or a token.
|
|
@@ -149,6 +157,7 @@ himi store iap draft --site <msid> --profile fit-club-owner --apple-app 6450000
|
|
|
149
157
|
himi store iap plan --manifest ./iap-products.json --profile fit-club-owner --out ./iap-plan.json
|
|
150
158
|
himi store iap apply --plan ./iap-plan.json --profile fit-club-owner --out ./iap-result.json
|
|
151
159
|
himi store iap status --manifest ./iap-products.json --profile fit-club-owner --json
|
|
160
|
+
himi store iap screenshots --manifest ./iap-products.json --content . --profile fit-club-owner
|
|
152
161
|
himi store iap connect --manifest ./iap-products.json --profile fit-club-owner \
|
|
153
162
|
--iap-key ~/keys/SubscriptionKey_ABCD123456.p8 --iap-key-id ABCD123456 --content . --dry-run
|
|
154
163
|
```
|
|
@@ -172,7 +181,7 @@ A **conflict** is any of:
|
|
|
172
181
|
|
|
173
182
|
- the same product id with another type;
|
|
174
183
|
- the reference name already used by another product id;
|
|
175
|
-
- a live product whose metadata or
|
|
184
|
+
- a live product whose metadata, availability or review screenshot differs, or an in-review product needing changes;
|
|
176
185
|
- an existing `exact` price or availability that differs;
|
|
177
186
|
- a price change with a different base territory, ambiguous price, custom territory prices, or a future/temporary schedule;
|
|
178
187
|
- no Apple point satisfying the requested price rule, or an unknown product/review state needing changes.
|
|
@@ -200,12 +209,78 @@ created. The plan marks this in the item's `notes`.
|
|
|
200
209
|
- If anything changed that the plan did not list (**drift**), it stops before the first
|
|
201
210
|
write. Planned work that already happened is accepted as done.
|
|
202
211
|
4. For each product, it creates the product, then a draft version, then its
|
|
203
|
-
localizations. Then it sets the exact initial price and the explicit territories
|
|
204
|
-
it reads everything back. A `changePrice` instead writes an immediate base-territory price
|
|
212
|
+
localizations. Then it sets the exact initial price and the explicit territories, and
|
|
213
|
+
uploads the review screenshot. Then it reads everything back. A `changePrice` instead writes an immediate base-territory price
|
|
205
214
|
through the same price-schedule API; Apple equalizes the other territories. A changed source
|
|
206
215
|
price, schedule, review state or resolved target stops apply before the first write.
|
|
207
216
|
5. Writes the result file, even when the run is partial.
|
|
208
217
|
|
|
218
|
+
**The review screenshot** is uploaded the way App Store Connect expects. Apply reserves it,
|
|
219
|
+
PUTs each part to the upload URLs Apple returns, and commits the file's MD5. Apple's storage
|
|
220
|
+
hosts only ever get the file's bytes, never the API key's token.
|
|
221
|
+
|
|
222
|
+
- **Identified by checksum.** Apple keeps the MD5 as `sourceFileChecksum`. A screenshot with
|
|
223
|
+
the same checksum is reused. A different file, an unfinished upload, or an image Apple
|
|
224
|
+
refused is planned as `replaceReviewScreenshot`.
|
|
225
|
+
- **Never deleted while valid.** Apple keeps one screenshot per product, and documents it as
|
|
226
|
+
"can be updated but not removed". A replacement asks Apple for a new upload over the old one;
|
|
227
|
+
if Apple refuses a second one, the step fails and says to replace it in App Store Connect. Only
|
|
228
|
+
what an interrupted or refused upload left behind (no finished image) is cleared first.
|
|
229
|
+
- **Locked once live.** The screenshot of a live or in-review product is never changed. A
|
|
230
|
+
different file there is a conflict.
|
|
231
|
+
- **Bytes fixed at plan time.** The plan records each file's checksum, and apply re-reads
|
|
232
|
+
the file. A file edited after `plan` stops apply as drift before any write.
|
|
233
|
+
- **Read back.** Apple processes the image after the commit, and apply waits briefly for
|
|
234
|
+
the result. A refused image (`FAILED`) fails the step with Apple's reason. An image still
|
|
235
|
+
processing (`UPLOAD_COMPLETE`) counts as uploaded.
|
|
236
|
+
|
|
237
|
+
### Making the review screenshots: `screenshots`
|
|
238
|
+
|
|
239
|
+
`himi store iap screenshots --manifest <file> --content <app dir> [--profile <name>]` makes each
|
|
240
|
+
product's review screenshot from the app's own purchase screen, so nobody has to take them on a phone:
|
|
241
|
+
|
|
242
|
+
1. **It renders the screen.** For each item it opens that Wix item's detail screen: `himi_product_<id>`,
|
|
243
|
+
`himi_program_<id>` or `himi_plan_<id>`, or the plain screen given the `id` when the app has no such
|
|
244
|
+
route. For a plan it falls back to the plans list (`himi_plans`), where older apps sell plans. The
|
|
245
|
+
screen loads with live Wix data.
|
|
246
|
+
2. **It renders as the device would.** The render answers what a bound iPhone answers for a signed-in member of the site:
|
|
247
|
+
- the app's purchases binding;
|
|
248
|
+
- the item's App Store mapping;
|
|
249
|
+
- Apple's price;
|
|
250
|
+
- the member session. The stand-in member is new, so its own plan orders read as none.
|
|
251
|
+
|
|
252
|
+
The screen's own pricing and checkout code then paints the Apple price and an enabled buy button,
|
|
253
|
+
as the member sees them. Nothing is sent to wix-iap or Apple, and no member is signed in anywhere.
|
|
254
|
+
3. **It checks the result.** A picture is kept only when three things hold:
|
|
255
|
+
- the screen shows Apple's price;
|
|
256
|
+
- its own state offers the purchase, meaning an enabled buy action, or an enabled join on a plan row;
|
|
257
|
+
- its read of the item succeeded.
|
|
258
|
+
|
|
259
|
+
A screen that fell back to "not available", showed no buy action, or failed to load the item is
|
|
260
|
+
reported, never saved.
|
|
261
|
+
4. **It saves.** It writes `review-screenshots/<productId>.png` next to the manifest, at 1290×2796
|
|
262
|
+
(the largest-iPhone App Store size). It then sets each item's `reviewScreenshot` to that file,
|
|
263
|
+
leaving the rest of the manifest as it was.
|
|
264
|
+
|
|
265
|
+
**Apple's price** comes from App Store Connect when you pass `--profile`, a read-only call. Otherwise it is
|
|
266
|
+
the manifest's `exact` amount. An `atLeast` item that Apple has no price for yet is skipped: run `apply`
|
|
267
|
+
first. A price tier has no single purchase screen and is skipped too.
|
|
268
|
+
|
|
269
|
+
**Other options:**
|
|
270
|
+
- With `--profile`, a product that is live or in review keeps its screenshot: changing it there is a
|
|
271
|
+
conflict anyway.
|
|
272
|
+
- An item that already names a screenshot is kept unless you pass `--force`.
|
|
273
|
+
- `--only <productId,…>` limits the run; an id the manifest doesn't have is reported.
|
|
274
|
+
- `--dry-run` lists what would be rendered.
|
|
275
|
+
- `--out-dir` puts the files elsewhere.
|
|
276
|
+
|
|
277
|
+
The render reads Wix with a visitor token. A screen whose item a visitor cannot read is reported with
|
|
278
|
+
the failing read; take that screenshot on a phone, or fix the screen. A plan detail screen that reads
|
|
279
|
+
`GET /pricing-plans/v2/plans/<id>` gets a 403 as a visitor, while the public plans list works. The
|
|
280
|
+
templates read the public list since #4256.
|
|
281
|
+
|
|
282
|
+
Then run `plan` and `apply` as usual: they upload the screenshots.
|
|
283
|
+
|
|
209
284
|
**Large catalogs.** App Store Connect allows about 3,600 API requests an hour per key.
|
|
210
285
|
Registering a new product takes about ten, and each run also lists the app's products once.
|
|
211
286
|
|
|
@@ -225,8 +300,9 @@ Apple again before doing anything else:
|
|
|
225
300
|
- A write is repeated **at most once**, and only after that read proves it didn't land.
|
|
226
301
|
- An outcome that is still unknown stops that product as `partial`.
|
|
227
302
|
|
|
228
|
-
So rerunning the same plan never creates a second product, version, locale
|
|
229
|
-
schedule, even without the local journal. Nothing is
|
|
303
|
+
So rerunning the same plan never creates a second product, version, locale, price
|
|
304
|
+
schedule or screenshot, even without the local journal. Nothing is rolled back, and the only
|
|
305
|
+
thing ever deleted is an unfinished or refused screenshot upload, never a finished screenshot.
|
|
230
306
|
|
|
231
307
|
**`status` is read-only.** It reports what Apple has for each product. Add `--out <file>`
|
|
232
308
|
to save it in the same shape as the result file.
|
|
@@ -333,6 +409,8 @@ Each item has two parts:
|
|
|
333
409
|
- per-step states and any conflicts
|
|
334
410
|
- `unmet` — where Apple still differs from the manifest
|
|
335
411
|
- the requested and observed price, availability and locales
|
|
412
|
+
- `reviewScreenshot` — for an item that names one, the requested file name and the file
|
|
413
|
+
name and processing state Apple holds
|
|
336
414
|
- the draft version and Apple's review state
|
|
337
415
|
- `remainingRequirements`
|
|
338
416
|
- `lastReadAt`
|
|
@@ -354,12 +432,14 @@ future importer must authenticate ownership and re-read Apple before activating
|
|
|
354
432
|
|
|
355
433
|
## What is still yours to do
|
|
356
434
|
|
|
357
|
-
- **Finish the product in App Store Connect.**
|
|
358
|
-
|
|
359
|
-
|
|
435
|
+
- **Finish the product in App Store Connect.** Add anything App Store Connect still lists
|
|
436
|
+
as missing. `remainingRequirements` names what Apple reports, including a missing review
|
|
437
|
+
screenshot when the item names none.
|
|
360
438
|
- **Handle the business side.** Paid Apps agreement, banking and tax information go
|
|
361
439
|
through the owner's App Store Connect account.
|
|
362
|
-
- **Submit for review.**
|
|
440
|
+
- **Submit for review.** Your first in-app purchases must be submitted together with an
|
|
441
|
+
app version: attach them to the version in App Store Connect before you submit it (see
|
|
442
|
+
`/submit-ios-app`). Later ones can be submitted on their own. This command never
|
|
363
443
|
submits, and never makes a product available for sale.
|
|
364
444
|
- **Allow for Sandbox delay.** Product changes can take a while to appear in Sandbox
|
|
365
445
|
purchase testing. Sandbox is for purchases, not a separate product catalogue:
|
|
@@ -368,7 +448,7 @@ future importer must authenticate ownership and re-read Apple before activating
|
|
|
368
448
|
Not in this version:
|
|
369
449
|
|
|
370
450
|
- subscriptions
|
|
371
|
-
-
|
|
451
|
+
- submitting products for review
|
|
372
452
|
- changing a live price
|
|
373
453
|
- Google Play
|
|
374
454
|
- the build-time binding bake and the screens' checkout (the companion PR)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1387.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
|
|
6
6
|
"keywords": [
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"artifactId": "himalaya-cli"
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
-
"falconPackageHash": "
|
|
74
|
+
"falconPackageHash": "3775f6901bf78a5a41956aac4c29f84e7abbb7149aa95c4bf7552269"
|
|
75
75
|
}
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -7,12 +7,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
7
7
|
|
|
8
8
|
## Point at your Wix site
|
|
9
9
|
|
|
10
|
-
Your **Wix Headless `clientId`
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
11
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
12
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
13
13
|
|
|
14
14
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
15
15
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
16
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
17
|
+
|
|
18
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
19
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
20
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
16
21
|
|
|
17
22
|
Full details, including how to ship a binary a customer can install against their own
|
|
18
23
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|
|
@@ -9,12 +9,17 @@ identity and navigation in `config.ts`, look and feel in `tokens.json`.
|
|
|
9
9
|
|
|
10
10
|
## Point at your Wix site
|
|
11
11
|
|
|
12
|
-
Your **Wix Headless `clientId`
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Your **Wix Headless `clientId` binds the data** — the visitor token minted from it already
|
|
13
|
+
names your site, so reads need nothing else. Set these before `himi build` / preview so calls
|
|
14
|
+
hit YOUR site (the placeholders are not a real backend):
|
|
15
15
|
|
|
16
16
|
export WIX_CLIENT_ID="<headless-oauth-client-id>"
|
|
17
17
|
export WIX_SITE_URL="https://your-site.wixsite.com/…"
|
|
18
|
+
export WIX_SITE_ID="<metasite-id>"
|
|
19
|
+
|
|
20
|
+
`WIX_SITE_ID` is the site that client belongs to. The member login takes it from the environment
|
|
21
|
+
while `WIX_CLIENT_ID` is the client the config uses. A native build needs it for member sign-up on
|
|
22
|
+
a CAPTCHA-protected site, push registration and in-app purchases.
|
|
18
23
|
|
|
19
24
|
Full details, including how to ship a binary a customer can install against their own
|
|
20
25
|
site: `himi docs branded-lite-site-binding`.
|