🔒 Internal Handbook — confidential. Do not share links or content with anyone outside G-Starlink.
ProductSKU naming

SKU naming conventions

Our product codes carry meaning. Anyone should be able to look at a SKU and know what the product is — without opening the database.

SPU (customer-facing SKU) format

[form factor]-[region]-[data]-[duration]

Examples:

SKUMeaning
eSIM-UK-10GB-30DUK eSIM, 10 GB, 30 days
eSIM-EU-UNL-7DEurope multi-country eSIM, unlimited data, 7 days
SIM-AU-20GB-28DAustralia physical SIM, 20 GB, 28 days
eSIM-GLOBAL-5GB-15DGlobal travel eSIM, 5 GB, 15 days
eSIM-JP-3GB-7DJapan eSIM, 3 GB, 7 days

Variant (fulfillment SKU) format

[SPU]-[carrier code]

Examples:

Variant SKUMeaning
eSIM-UK-10GB-30D-VODAThe UK 10GB 30D SPU, fulfilled on Vodafone UK
eSIM-UK-10GB-30D-EESame SPU, fulfilled on EE
eSIM-UK-10GB-30D-THREESame SPU, fulfilled on Three UK
SIM-AU-20GB-28D-TELSTRAAustralia physical SIM, fulfilled via Telstra

If a carrier variant has additional dimensions (5G, voice), append as another suffix:

eSIM-UK-10GB-30D-VODA-5G
eSIM-UK-10GB-30D-EE-VOICE

Hard rules

  • All caps. A-Z and 0-9 only.
  • Hyphens only. No underscores, no spaces, no slashes.
  • SPU ≤ 32 characters. Variant ≤ 48 characters. (Shopify, Amazon and most platforms cap SKU length around these limits.)
  • Region codes use ISO 3166-1 alpha-2 where possible (UK, JP, AU, FR, DE). For multi-country products, use our own abbreviations: EU, NA (North America), SEA (Southeast Asia), GLOBAL.
  • Data amounts use {number}GB format. Sub-GB values convert to fractional (e.g. 500MB → 0.5GB). Unlimited uses literal string UNL.
  • Duration uses {number}D format (e.g. 30D, not 30DAYS or 30d).
  • Carrier codes ≤ 8 characters (typically ≤ 4). See Carrier codes.

The immutability rule

Once a SKU has been used on a real order, it can never change. Not even to fix a typo.

Why: Shopify order history, Amazon seller account, eBay listings, supplier invoices, OMS order records, and customer receipts all reference the SKU. Changing it breaks every one of those links.

If you discover a typo after launch, the only clean path is:

  1. Set the broken SKU to is_active = false
  2. Create a new correctly-named SKU
  3. Document the replacement in the product’s description

This is why: think twice before creating any new SKU. Run it past someone.

Naming a new product: checklist

Before adding a SKU, answer all of these:

  • Does a similar SKU already exist? Search the products table first.
  • Is the region code ISO-standard or a pre-approved region abbreviation?
  • Does the data amount use GB / UNL correctly?
  • Does the duration use {N}D format?
  • Is the total length within 32 characters for SPU?
  • Have you written the product name (English + Chinese) to go alongside?
  • Have you identified which carriers this will have variants for?
  • Have you decided the retail price in AUD / USD / EUR?

If any answer is “not sure,” pause and ask before creating.