Purchase & Delivery Flow
End-to-end steps to deliver ShipKit after purchase.
Purchase & Delivery Flow
Overview
This flow explains how a buyer purchases ShipKit and how you deliver access to the private GitHub repository with a license.
Buyer journey
- Choose a plan and complete checkout.
- Payment is captured and the order is marked paid.
- A license is generated and stored with the order.
- The buyer receives a GitHub invite (or invite link) to access the repo.
Operator setup
- Create a private repo that contains the ShipKit source code.
- Create a purchase link for your checkout (pricing page or direct link).
- Generate a license on successful payment and associate it with the order and buyer email.
- Send repository access using GitHub invites.
GitHub requirements
- A GitHub personal access token with repo access.
- Classic token:
reposcope. - Fine-grained token: Repository permissions with Administration: Read & Write.
- Classic token:
- Repository owner and name (org/user + repo).
- Optional: a team ID if you want to add org members to a team.
Delivery configuration
Set the GitHub delivery env vars:
GITHUB_DELIVERY_TOKEN=ghp_xxx
GITHUB_DELIVERY_OWNER=your-org
GITHUB_DELIVERY_REPO=shipkit-private
GITHUB_DELIVERY_TEAM_ID=123456 # optionalDelivery methods
Option A: Automatic GitHub invite (recommended)
- Use the buyer email on the order to send a GitHub invite automatically after payment.
- Optionally collect a GitHub username during checkout to improve match accuracy.
- Email the buyer with the invite link and onboarding steps.
Option B: Manual invite
- If the buyer does not receive the invite, allow a manual resend from the billing page.
- As a fallback, invite the buyer manually from the repo settings.
License handling
- Generate a unique license key per paid order.
- Store license status:
active,revoked,refunded. - On refund, revoke repo access and mark the license as
revoked.
Failure handling
- If the GitHub invite fails, ask the buyer to create an account and retry.
- If email delivery fails, show a "resend invite" action in the admin.
- If the buyer cannot access the repo, verify invite status and resend.
Verification checklist
- Payment captured
- License generated and stored
- Repo invite sent successfully
- Buyer accepted invite and can access the repo