Skip to content
Deployment
Skill

/asc-ppp-pricing

Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized PPP strategies.

From plugin
asc
95523 skills
Install
$ npx -y skills add rudrankriyam/asc-skills --skill asc-ppp-pricing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/asc-ppp-pricing

Context preview

The summary Claude sees to decide when to auto-load this skill.

Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized PPP strategies.

SKILL.md

asc-ppp-pricing.SKILL.md
name: asc-ppp-pricing
description: Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized PPP strategies.

PPP pricing (per-territory pricing)

Use this skill to create or update localized pricing across territories based on purchasing power parity (PPP) or your own regional pricing strategy.

Prefer the current high-level flows:

  • `asc subscriptions setup` and `asc iap setup` for parent creation and pricing,

followed by version-scoped metadata commands

  • `asc subscriptions pricing ...` for subscription pricing changes
  • `asc iap pricing summary` and `asc iap pricing schedules ...` for IAP pricing changes

Preconditions

  • Ensure credentials are set (`asc auth login` or `ASC_*` env vars).
  • Prefer `ASC_APP_ID` or pass `--app` explicitly.
  • Decide your base territory (usually `USA`) and baseline price.
  • Use `asc pricing territories list --paginate` if you need supported territory IDs.

Subscription PPP workflow

New subscription: bootstrap the parent and price with `setup`

Use `setup` to create the group and subscription, upload the App Review screenshot, materialize the complete equalized price matrix, and set sale availability. Create the API 4.4.1 group and subscription versions afterward; the localization flags on `setup` use deprecated v1 resources and must not be used for new workflows.

asc subscriptions setup \
  --app "APP_ID" \
  --group-reference-name "Pro" \
  --reference-name "Pro Monthly" \
  --product-id "com.example.pro.monthly" \
  --subscription-period ONE_MONTH \
  --review-screenshot "./review.png" \
  --price "9.99" \
  --price-territory "USA" \
  --territories "USA,CAN,GBR" \
  --no-verify \
  --output json

Capture `.groupId` and `.subscriptionId` from the setup JSON, then add version-scoped metadata. `--no-verify` is intentional here: without deprecated v1 localizations, the parent can remain `MISSING_METADATA` until the v2 steps finish.

asc subscriptions groups versions list --group-id "GROUP_ID" --state PREPARE_FOR_SUBMISSION --paginate --output json
# If and only if the list has zero matches:
asc subscriptions groups versions create --group-id "GROUP_ID" --output json
# For one match, reuse .data[0].id. For more than one, stop and require an explicit GROUP_VERSION_ID.
asc subscriptions groups versions localizations list --version-id "GROUP_VERSION_ID" --paginate --output json
# If and only if en-US is missing:
asc subscriptions groups versions localizations create --version-id "GROUP_VERSION_ID" --locale "en-US" --name "Pro"
# Otherwise, if and only if the resolved en-US name differs:
asc subscriptions groups versions localizations update --id "GROUP_LOC_ID" --name "Pro"
# Otherwise, do nothing.

asc subscriptions versions list --subscription-id "SUB_ID" --state PREPARE_FOR_SUBMISSION --paginate --output json
# If and only if the list has zero matches:
asc subscriptions versions create --subscription-id "SUB_ID" --output json
# For one match, reuse .data[0].id. For more than one, stop and require an explicit SUBSCRIPTION_VERSION_ID.
asc subscriptions versions localizations list --version-id "SUBSCRIPTION_VERSION_ID" --paginate --output json
# If and only if en-US is missing:
asc subscriptions versions localizations create --version-id "SUBSCRIPTION_VERSION_ID" --locale "en-US" --name "Pro Monthly" --description "Unlock everything"
# Otherwise, if and only if the resolved en-US values differ:
asc subscriptions versions localizations update --id "SUBSCRIPTION_LOC_ID" --name "Pro Monthly" --description "Unlock everything"
# Otherwise, do nothing.
asc subscriptions groups versions localizations list --version-id "GROUP_VERSION_ID" --paginate --output table
asc subscriptions versions localizations list --version-id "SUBSCRIPTION_VERSION_ID" --paginate --output table
asc validate subscriptions --app "APP_ID" --output table

For each version list, reuse its single `PREPARE_FOR_SUBMISSION` result. Create only when the result is empty; if more than one result is returned, stop and require an explicit version ID instead of creating another non-deletable version. Each localization create/update pair is also conditional: create for a missing locale, update the resolved localization only when values differ, and do nothing when it already matches.

Notes:

  • `setup` materializes Apple's complete equalized price matrix from the selected

base price. This split workflow defers final verification until the v2 localizations exist.

  • Outside this split v2 bootstrap, omit `--no-verify` so setup performs its

normal readback verification.

  • Use `--tier` or `--price-point-id` instead of `--price` when your workflow is tier-driven.
  • If an existing subscription remains `MISSING_METADATA` with the same selected base price, re-run the setup inputs with `--repair` to atomically rebuild and re-save the matrix.

Inspect current subscription pricing before changes

Use the summary view first when you want a compact current-state snapshot.

asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "USA"
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "IND"
asc subscriptions pricing prices list --subscription-id "SUB_ID" --paginate

Use `summary` for quick before/after spot checks and `prices list` when you need raw price records.

Preferred bulk PPP update: import a CSV with dry run

For broad PPP rollouts, prefer the subscription pricing import command instead of manually adding territory prices one by one.

Example CSV:

territory,price,start_date,preserved
IND,2.99,2026-04-01,false
BRA,4.99,2026-04-01,false
MEX,4.99,2026-04-01,false
DEU,8.99,2026-04-01,false

Dry-run first:

asc subscriptions pricing prices import \
  --subscription-id "SUB_ID" \
  --input "./ppp-prices.csv" \
  --dry-run \
  --output ta
Read more
Ships withasc

A collection of Agent Skills for shipping with the asc cli (asc). These skills help agents run builds, TestFlight, metadata, submissions, signing, and Apple Ads workflows. This is a community-maintained, unofficial skill pack and is not affiliated with Apple.

Get the whole plugin
Stats
956
Stars
51
Forks
Active
Maintenance
Python
Language
MIT
License
9h ago
Last commit
6mo ago
Created

Repo: rudrankriyam/asc-skills