mcpField
A
asc-promoted-purchases

asc-promoted-purchases

github.com/tddworksMarketing & growth560 installsUpdated 5w ago
Repository

About asc-promoted-purchases

asc-promoted-purchases is a skill for managing promoted in-app purchases on App Store product pages. It lets app developers list, create, update, and delete promotions, while suppressing mutation options when review status makes them conflict-prone.

Key features

  1. 01Lists an app's promoted purchases
  2. 02Promotes an IAP or auto-renewable subscription
  3. 03Sets visibility and enabled state
  4. 04Updates or deletes promotions
  5. 05Restricts actions based on review state

Use cases

  1. 01Inspect an app's current promoted purchases
  2. 02Feature an IAP or subscription on a product page
  3. 03Avoid disallowed updates or deletions during review

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-promoted-purchases

After installing, type/asc-promoted-purchasesin Claude Code to confirm it loaded.

Details

From the project README

asc Promoted Purchases

Manage App Store product page Promoted In-App Purchases — the featured IAPs / auto-renewable subscriptions surfaced under an app's product page on the App Store. Each slot promotes either an IAP or a subscription (mutually exclusive) and goes through App Review separately from the underlying product.

List

asc promoted-purchases list --app-id <APP_ID> [--limit N] [--pretty]

Create

Exactly one of --iap-id or --subscription-id is required (the command validates and rejects both/neither):

# Promote an in-app purchase
asc promoted-purchases create --app-id <APP_ID> --iap-id <IAP_ID> --visible --enabled

# Promote an auto-renewable subscription
asc promoted-purchases create --app-id <APP_ID> --subscription-id <SUB_ID> --hidden --disabled

--visible / --hidden flip isVisibleForAllUsers. --enabled / --disabled flip isEnabled. Defaults: isVisibleForAllUsers=true, isEnabled left unchanged when both flags omitted.

Update

asc promoted-purchases update --promoted-id <PROMOTED_ID> [--visible | --hidden] [--enabled | --disabled]

Omitting a flag pair leaves that field unchanged.

Delete

asc promoted-purchases delete --promoted-id <PROMOTED_ID>

State semantics

PromotedPurchaseState exposes semantic booleans:

BooleanTrue when state is
isLockedWAITING_FOR_REVIEW, IN_REVIEW
isApprovedAPPROVED

State-aware affordances

JSON responses suppress mutations that ASC would reject as 409 conflicts:

Stateupdate linkdelete link
approved / rejected / prepareForSubmission / developerActionNeededshownshown
waitingForReview / inReview (i.e. state.isLocked)suppressedsuppressed
{
  "affordances": {
    "listSiblings": "asc promoted-purchases list --app-id <APP_ID>",
    "update":       "asc promoted-purchases update --promoted-id <ID>",   // omitted while in review
    "delete":       "asc promoted-purchases delete --promoted-id <ID>"    // omitted while in review
  }
}

Resolve App ID

See project-context.md — check .asc/project.json before asking the user or running asc apps list.

Typical Workflow

APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')

# Promote an IAP, visible to all users, slot enabled.
PROMO_ID=$(asc promoted-purchases create --app-id "$APP_ID" \
  --iap-id "iap-1" --visible --enabled \
  | jq -r '.data[0].id')

# Later: hide it temporarily without deleting
asc promoted-purchases update --promoted-id "$PROMO_ID" --hidden

# Or just remove the slot
asc promoted-purchases delete --promoted-id "$PROMO_ID"

Reference

For full domain-model and REST detail see docs/features/promoted-purchases.md.

Comments

Markdown supported