Šķîþ ţö ḿàîñ çöñţéñţ

Þļàçé çöñţéñţ îñ ḿàŕķéţš àñđ àŕéàš

À çàḿþàîĝñ ƒöŕ ţééñàĝéŕš îñ Öšļö àñđ à þŕîçé ļîšţ ƒöŕ ţĥé Ñöŕđîç çöüñţŕîéš àŕé éàçĥ ŵŕîţţéñ ƒöŕ à þļàçé. ķàþî ŕéçöŕđš ţĥé þļàçé àš à þöîñţ öñ à ĝéö àẋîš. À ŕüļé ķéþţ ƒöŕ à þļàçé ĥöļđš àţ éṽéŕý þļàçé îñšîđé îţ, šö à ŕüļé ķéþţ ƒöŕ Ñöŕŵàý àþþļîéš ţö ţĥé Öšļö çàḿþàîĝñ.

Ţĥîš ĝüîđé üšéš ţĥé ĶàþîḾàŕţ šàḿþļé. Ķàþî Đéšķţöþ öþéñš îţ ŵîţĥ Ţŕý ţĥé šàḿþļé. Ŕüñ ţĥé çöḿḿàñđš îñ ţĥé šàḿþļé'š ƒöļđéŕ.

Ļööķ à þļàçé üþ​

À ĝéö àẋîš ţàķéš þļàçé îđš. Ţĥé ƃüîļţ-îñ þļàçéš àŕé ţĥé ŵöŕļđ, ţĥé ÜÑ ŕéĝîöñš, éṽéŕý çöüñţŕý àñđ éṽéŕý çöüñţŕý'š šüƃđîṽîšîöñš (çöüñţîéš, šţàţéš, þŕöṽîñçéš). Ţĥé îđ öƒ à çöüñţŕý öŕ à šüƃđîṽîšîöñ îš îţš ÎŠÖ çöđé îñ ļöŵéŕ çàšé. Ļööķ à þļàçé üþ ƃý ñàḿé öŕ îđ:

kapi context places oslo
oslo Oslo locality world › europe › northern-europe › no › no-03 › oslo
no-03 Oslo subdivision world › europe › northern-europe › no › no-03
greater-oslo Greater Oslo metro world › europe › northern-europe › no › greater-oslo

Éàçĥ ļîñé šĥöŵš ţĥé îđ, ţĥé ñàḿé, ţĥé ţýþé àñđ ţĥé þàţĥ ƒŕöḿ ţĥé ŵöŕļđ đöŵñ. no îš Ñöŕŵàý àñđ no-03 îš ţĥé çöüñţý öƒ Öšļö. Ţĥé öţĥéŕ ţŵö þļàçéš àŕé đéçļàŕéđ îñ ţĥé šàḿþļé'š ŕéçîþé. --within <id> ļîšţš ţĥé þļàçéš đîŕéçţļý ƃéļöŵ öñé þļàçé. --json þŕîñţš ţĥé ŕéšüļţ àš ĴŠÖÑ.

Đéçļàŕé ýöüŕ öŵñ þļàçéš​

À çîţý, à ñéîĝĥƃöüŕĥööđ öŕ à šàļéš ţéŕŕîţöŕý îš à þļàçé ýöü đéçļàŕé üñđéŕ places: îñ kapi.yaml. Éàçĥ þļàçé éîţĥéŕ šîţš ŵîţĥîñ þļàçéš öŕ îš ḿàđé öƒ þļàçéš:

kapi.yaml
places:
nordics:
name: Nordics
of: [no, se, dk, fi, is]
oslo:
name: Oslo
type: locality
within: no-03
centroid: [59.91, 10.75]
refs: [wikidata:Q585, geonames:3143244]
grunerlokka:
name: Grünerløkka
type: neighbourhood
within: oslo
greater-oslo:
name: Greater Oslo
type: metro
of: [no-03, no-32]
Nordicsnordics · territoryGreater Oslogreater-oslo · metroWorldworld · worldEuropeeurope · regionNorthern Europenorthern-europe · regionNorwayno · countrySwedense · countryDenmarkdk · countryFinlandfi · countryIcelandis · countryOslono-03 · subdivisionAkershusno-32 · subdivisionOslooslo · localityGrünerløkkagrunerlokka · neighbourhoodsits withinmade ofdeclared in the recipe

Öšļö šîţš ŵîţĥîñ ţĥé çöüñţý no-03, šö à ŕüļé ţĥàţ ĥöļđš îñ Ñöŕŵàý àļšö ĥöļđš îñ Öšļö. Ţĥé Ñöŕđîçš àŕé ḿàđé öƒ ƒîṽé çöüñţŕîéš, šö à ŕüļé ƒöŕ ţĥé Ñöŕđîçš ĥöļđš îñ éàçĥ öƒ ţĥéḿ. Ĝŕéàţéŕ Öšļö îš ḿàđé öƒ ţŵö çöüñţîéš, šö çöñţéñţ àţ Öšļö öŕ Ĝŕüñéŕļøķķà šîţš îñšîđé îţ.

Çöñţàîñḿéñţ çöḿéš ƒŕöḿ ţĥé within àñđ of đéçļàŕàţîöñš àļöñé. Ţĥé ḿàþ üšéš à centroid öŕ à shape ƒîļé öñļý ţö đŕàŵ à þļàçé.

type ñàḿéš ţĥé ķîñđ öƒ þļàçé (locality, district, neighbourhood, metro, territory àñđ öţĥéŕš). À þļàçé đéçļàŕéđ ŵîţĥ of àñđ ñö type îš à territory. refs ŕéçöŕđš ţĥé þļàçé'š îđš îñ Ŵîķîđàţà, ĜéöÑàḿéš àñđ šîḿîļàŕ ĝàžéţţééŕš. Ţĥé þŕöĵéçţ ƒîļé ŕéƒéŕéñçé ļîšţš éṽéŕý ķéý.

Ḿàķé ţĥé ḿàŕķéţ à ĝéö àẋîš​

Ñàḿé ţĥé àẋîš üñđéŕ axes: àñđ ĝîṽé îţ kind: geo. Îţš ṽàļüéš àŕé ţĥéñ þļàçé îđš, àñđ ķàþî çĥéçķš éàçĥ ṽàļüé ŵĥéñ îţ ļöàđš ţĥé ŕéçîþé:

kapi.yaml
axes:
market:
kind: geo
label: Market
age:
kind: range
label: Reader age
unit: years

Þüţ çöñţéñţ àţ à þļàçé​

À çöļļéçţîöñ šîţš àţ à ḿàŕķéţ ţĥé ŵàý îţ šîţš àţ à ƃŕàñđ. Ţĥé šàḿþļé'š Öšļö ýöüţĥ çàḿþàîĝñ îš ƒöŕ ŕéàđéŕš àĝéđ 13 ţö 17 îñ Öšļö. Îţš þîçķ-üþ þàĝé îš àƃöüţ öñé ñéîĝĥƃöüŕĥööđ, šö ţĥàţ îţéḿ šîţš àţ Ĝŕüñéŕļøķķà:

kapi.yaml
collections:
- name: Oslo youth campaign
base: campaigns/oslo
channel: kapimart/marketing
coordinates:
market: oslo
age: 13-17
content:
- path: "en/grunerlokka.md"
target: "{lang}"
coordinates:
market: grunerlokka
- path: "en/*.md"
target: "{lang}"

΃ à ṽàļüé îš ñöţ à þļàçé îđ, ţĥé ŕéçîþé ƒàîļš ţö ļöàđ àñđ ţĥé éŕŕöŕ šüĝĝéšţš ţĥé çöŕŕéçţ îđ:

Error: invalid project file /srv/site/kapi.yaml: collections[4]: collection "Oslo youth campaign": coordinates.market: axis market: "Oslo" is not a place. Write it in lower case: oslo

Ŵîţĥ ñö àŕĝüḿéñţš, kapi context places ļîšţš ţĥé þļàçéš ýöüŕ ŕéçîþé đéçļàŕéš:

kapi context places
greater-oslo Greater Oslo metro world › europe › northern-europe › no › greater-oslo
grunerlokka Grünerløkka neighbourhood world › europe › northern-europe › no › no-03 › oslo › grunerlokka
nordics Nordics territory world › europe › northern-europe › nordics
oslo Oslo locality world › europe › northern-europe › no › no-03 › oslo

Ķééþ à ŕüļé ƒöŕ Ñöŕŵàý​

Îñ Ñöŕŵàý ţĥé àđđŕéšš ƒöŕḿ àšķš ƒöŕ ţĥé çöüñţý. Îñ öţĥéŕ ḿàŕķéţš îţ àšķš ƒöŕ à šţàţé öŕ þŕöṽîñçé. Ŕéçöŕđ à ñöţé ƒŕöḿ ţĥé šţöŕé'š šţŕîñĝš àñđ þļàçé îţ îñ Ñöŕŵàý:

kapi context note --term County --instead-of "State / Province" \
--seen-in src/en/checkout-flow.json --point market=no
#0q9cg2vjqx 2026-10-17T11:32:41Z person observe term "County", not "State / Province" [suggested]

À ñöţé ĥöļđš ŵĥéŕé îţš éṽîđéñçé ŵàš šééñ. Ĥéŕé ţĥàţ îš ţĥé šţöŕé'š šţŕîñĝš, öñ ţĥé kapimart/store çĥàññéļ. --point market=no ñàŕŕöŵš ţĥé ñöţé ƒŕöḿ ţĥé šţöŕé'š market: world ţö Ñöŕŵàý. Ţĥé Öšļö çàḿþàîĝñ îš öñ ţĥé kapimart/marketing çĥàññéļ, šö ţĥé ñöţé đöéš ñöţ ýéţ àþþļý ţö îţš þàĝéš. Ķééþ ţĥé ñöţé àñđ ŵîđéñ îţ ƃéýöñđ ţĥé çĥàññéļ ŵĥéŕé îţ ŵàš šééñ:

kapi context review --keep 0q9cg2vjqx --widen-to channel
#0q9cg9507h 2026-10-17T11:32:48Z person keep of #0q9cg2vjqx
written to the project's terms store

Ýöüŕ îđš ŵîļļ đéŕ. kapi context review ļîšţš ţĥé öþéñ šüĝĝéšţîöñš àñđ ţĥéîŕ îđš.

Çĥéçķ ţĥé ŕüļé àţ ţĥé Öšļö çöñţéñţ​

Þŕîñţ ŵĥàţ àþþļîéš ţö ţĥé çàḿþàîĝñ'š þàĝé:

kapi context campaigns/oslo/en/summer-pass.md
Say this, not that:
...
- County, not "State / Province" [en]
...

Ţĥé ŕüļé ŵàš ķéþţ ƒöŕ Ñöŕŵàý àñđ ţĥé þàĝé šîţš àţ Öšļö, ŵĥîçĥ šîţš ŵîţĥîñ Ñöŕŵàý, šö ţĥé ŕüļé ĥöļđš ţĥéŕé. Îţ àļšö ĥöļđš àţ ţĥé Ĝŕüñéŕļøķķà þàĝé. Ţĥé šţöŕé'š šţŕîñĝš šîţ àţ market: world, ŵĥîçĥ îš ŵîđéŕ ţĥàñ Ñöŕŵàý, šö ţĥé ŕüļé đöéš ñöţ àþþļý ţö ţĥéḿ. kapi context þŕîñţš ţĥé éẋçļüšîöñ:

kapi context src/en/checkout-flow.json
Keep as it is in this file:
- "State / Province" is correct here; do not rename it to "County". That rename holds only in campaigns/oslo/en/.

Šéé îţ öñ ţĥé ḿàþ​

Öþéñ ţĥé šàḿþļé îñ Ķàþî Đéšķţöþ, çĥööšé Éẋþļöŕé îñ ţĥé Çöñţéẋţ ĥüƃ, àñđ öþéñ Ḿàþ. Ţĥé ḿàþ öþéñš öñ ţĥé ñàŕŕöŵéšţ ŕéĝîöñ, çöüñţŕý öŕ þļàçé ḿàđé öƒ çöüñţŕîéš ţĥàţ çöñţàîñš éṽéŕý þļàçé ţĥé ŕéçîþé đéçļàŕéš àñđ éṽéŕý þļàçé îţš çöñţéñţ šîţš àţ. Ƒöŕ ţĥé šàḿþļé, ţĥàţ îš ţĥé Ñöŕđîçš. À ñöţé ķéþţ ƒöŕ à ḿàŕķéţ öüţšîđé îţ, šüçĥ àš Ĵàþàñ, àþþéàŕš ŵĥéñ ýöü šéļéçţ Ŵöŕļđ îñ ţĥé þàţĥ àƃöṽé ţĥé ḿàþ. Ŵĥéñ ţĥé ḿàŕķéţ îš ƒîļţéŕéđ, ţĥé ḿàþ öþéñš öñ ţĥé šéļéçţéđ ŕéçöŕđš îñšţéàđ. Çļîçķ à þļàçé ţö đŕîļļ đöŵñ:

  1. Çļîçķ Ñöŕŵàý ţö šĥöŵ îţš çöüñţîéš. Ţĥé çöüñţý öƒ Öšļö îš ƒîļļéđ ƃéçàüšé ŕéçöŕđš šîţ ţĥéŕé. Ţĥé öţĥéŕ çöüñţîéš àŕé ĥàţçĥéđ ŵĥéŕé à ŕüļé ķéþţ ƒöŕ Ñöŕŵàý öŕ ţĥé Ñöŕđîçš ĥöļđš.
  2. Çļîçķ Öšļö ţö šĥöŵ ţĥé þļàçéš ţĥé ŕéçîþé đéçļàŕéš îñšîđé îţ. Öšļö îš đŕàŵñ àš à çîŕçļé àţ îţš çéñţŕöîđ. À đéçļàŕéđ þļàçé ŵîţĥ à shape: ƒîļé îš đŕàŵñ àš îţš öüţļîñé. À þļàçé ŵîţĥ ñéîţĥéŕ îš ļîšţéđ ƃéšîđé ţĥé ḿàþ.
  3. Ĥöṽéŕ Ĝŕéàţéŕ Öšļö ƃéšîđé ţĥé ḿàþ ţö öüţļîñé ţĥé ţŵö çöüñţîéš îţ îš ḿàđé öƒ. Çļîçķ à þļàçé ţö ķééþ öñļý ţĥé ŕéçöŕđš ţĥàţ ĥöļđ ţĥéŕé.

Ĝŕîđ đŕàŵš öñé ţîļé öƒ éǫüàļ šîžé þéŕ çöüñţŕý, šö à ļàŕĝé çöüñţŕý ţàķéš ţĥé šàḿé àŕéà àš à šḿàļļ öñé. Éẋþļöŕé ýöüŕ çöñţéẋţ çöṽéŕš ţĥé ŕéšţ öƒ ţĥé ṽîéŵ.

Ñéẋţ šţéþš​