
Shopify Admin Gift Card Issuance
- 7 installs
- 173 repo stars
- Updated June 26, 2026
- 40rty-ai/shopify-admin-skills
shopify-admin-gift-card-issuance is a Shopify Admin skill that issues native Shopify gift cards to customers as goodwill, store credit, or a loyalty reward.
About
A Shopify Admin skill that issues native Shopify gift cards to customers programmatically, for goodwill, store credit instead of a cash refund, or loyalty rewards. It looks up the customer by email or GID, then runs the giftCardCreate mutation with an amount and optional expiry and note. It uses Shopify's built-in gift-card system with no third-party app. It defaults to a preview and warns that issued value is immediately redeemable.
- Issues native Shopify gift cards via giftCardCreate
- Looks up customer by email or GID before issuing
- dry_run preview before creating real monetary value
Shopify Admin Gift Card Issuance by the numbers
- 7 all-time installs (skills.sh)
- Ranked #1,587 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 1, 2026 (Skillselion catalog sync)
shopify-admin-gift-card-issuance capabilities & compatibility
Free to run; issues real gift-card value against the store. Requires read_customers and write_gift_cards scopes and gift cards enabled in Shopify settings.
- Capabilities
- gift card issuance · store credit · customer goodwill
- Use cases
- orchestration
- Pricing
- Free
What shopify-admin-gift-card-issuance says it does
Issues Shopify native gift cards to customers programmatically — as goodwill for a delayed shipment, as store credit instead of a cash refund, or as a loyalty reward.
Gift cards cannot be deleted once created — they can only be disabled.
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-gift-card-issuanceAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 173 |
| Last updated | June 26, 2026 |
| Repository | 40rty-ai/shopify-admin-skills ↗ |
What it does
Issue native Shopify gift cards to a customer as goodwill, store credit instead of a refund, or a loyalty reward.
Who is it for?
Programmatically issuing store credit or goodwill gift cards to specific customers.
Skip if: Bulk promotional gift-card campaigns or deleting issued cards, which cannot be deleted once created.
When should I use this skill?
When compensating a customer for a delayed shipment or issuing store credit in place of a refund.
What you get
A native Shopify gift card created and associated with the target customer.
- Created gift card with code and balance
- Optional customer tag
By the numbers
- 2 GraphQL operations (customer lookup + giftCardCreate)
- Requires one of customer_email or customer_id
Files
Purpose
Issues Shopify native gift cards to customers programmatically — as goodwill for a delayed shipment, as store credit instead of a cash refund, or as a loyalty reward. Uses Shopify's built-in gift card system; no 3rd-party app required. Gift cards issued here are redeemable at checkout exactly like manual gift cards. Note: giftCardCreate is available on all Shopify plans but may require the store to have gift cards enabled in settings.
Prerequisites
shopify auth login --store <domain>- API scopes:
read_customers,write_gift_cards - Gift cards must be enabled in Shopify admin → Settings → Gift cards
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain (e.g., mystore.myshopify.com) |
| format | string | no | human | Output format: human or json |
| dry_run | bool | no | false | Preview operations without executing mutations |
| customer_email | string | yes* | — | Customer email to look up and associate with the gift card |
| customer_id | string | yes* | — | Customer GID (alternative to email) |
| amount | float | yes | — | Gift card value in the store's default currency |
| reason | string | no | — | Internal note logged on the gift card (e.g., "Goodwill: delayed shipment #1042") |
| expires_on | string | no | — | Expiry date in ISO 8601 (e.g., 2026-12-31); if omitted, gift card does not expire |
| tag_customer | string | no | — | Optional tag to add to the customer record (e.g., goodwill-issued) |
*One of customer_email or customer_id is required.
Safety
⚠️ Step 2 executesgiftCardCreatewhich issues real monetary value against your store. Gift cards cannot be deleted once created — they can only be disabled. Run withdry_run: trueto confirm the customer, amount, and expiry before committing. Verify the amount carefully — issued value is immediately redeemable at checkout.
Workflow Steps
1. OPERATION: customer — query Inputs: Look up by customer_email (using customers search) or directly by customer_id Expected output: Customer id, firstName, lastName, email; confirm customer exists before issuing
2. OPERATION: giftCardCreate — mutation Inputs: input.initialValue, input.customerId, input.expiresOn (optional), input.note (reason) Expected output: giftCard.id, giftCard.code, giftCard.balance, giftCard.expiresOn, userErrors
GraphQL Operations
# customer:query — validated against api_version 2025-01
query CustomerByEmail($query: String!) {
customers(first: 1, query: $query) {
edges {
node {
id
firstName
lastName
defaultEmailAddress {
emailAddress
}
tags
}
}
}
}# giftCardCreate:mutation — validated against api_version 2025-01
mutation GiftCardCreate($input: GiftCardCreateInput!) {
giftCardCreate(input: $input) {
giftCard {
id
code
balance {
amount
currencyCode
}
expiresOn
note
customer {
id
}
}
userErrors {
field
message
}
}
}Session Tracking
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: gift-card-issuance ║
║ Store: <store domain> ║
║ Started: <YYYY-MM-DD HH:MM UTC> ║
╚══════════════════════════════════════════════╝After each step, emit:
[N/TOTAL] <QUERY|MUTATION> <OperationName>
→ Params: <brief summary of key inputs>
→ Result: <count or outcome>If dry_run: true, prefix every mutation step with [DRY RUN] and do not execute it.
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
OUTCOME SUMMARY
Customer: <name> (<email>)
Gift card code: <code>
Amount: <amount> <currency>
Expires: <date or "Does not expire">
Errors: 0
Output: none
══════════════════════════════════════════════For format: json, emit:
{
"skill": "gift-card-issuance",
"store": "<domain>",
"started_at": "<ISO8601>",
"completed_at": "<ISO8601>",
"dry_run": false,
"steps": [
{ "step": 1, "operation": "CustomerByEmail", "type": "query", "params_summary": "email <email>", "result_summary": "customer <id>", "skipped": false },
{ "step": 2, "operation": "GiftCardCreate", "type": "mutation", "params_summary": "amount <amount>, customer <id>", "result_summary": "gift card <code>", "skipped": false }
],
"outcome": {
"customer_id": "<id>",
"customer_email": "<email>",
"gift_card_id": "<id>",
"gift_card_code": "<code>",
"amount": "<amount>",
"currency": "<currency>",
"expires_on": "<date or null>",
"errors": 0,
"output_file": null
}
}Output Format
No CSV. The session summary reports the gift card code and amount inline. The support agent copies the code to share with the customer.
Gift card issued:
Customer: Jane Smith (jane@example.com)
Code: ABCD-EFGH-IJKL-MNOP
Value: $25.00 USD
Expires: 2026-12-31 (or "Does not expire")
Note: Goodwill: delayed shipment #1042Error Handling
| Error | Cause | Recovery |
|---|---|---|
| Customer not found | Email doesn't match any customer | Verify email; guest checkout customers may not have a customer record |
userErrors from giftCardCreate | Invalid amount (≤ 0) or missing required field | Verify amount is a positive number |
| Gift cards not enabled | Store settings don't allow gift cards | Enable in Shopify admin → Settings → Gift cards |
write_gift_cards scope missing | Auth was done without this scope | Re-run shopify store auth with write_gift_cards scope |
Best Practices
1. Always run dry_run: true to confirm customer lookup succeeds and amount is correct before issuing. 2. Always include a reason note — it appears in the gift card record and helps your team audit issuances later. 3. Set tag_customer: goodwill-issued to track which customers have received goodwill gift cards — combine with loyalty-segment-export to monitor their subsequent purchase behavior. 4. Use expires_on for promotional gift cards (e.g., holiday campaigns) to create urgency; omit for goodwill issuances so the customer feels the gesture is genuine. 5. For batch issuances (e.g., a service outage affecting 100 customers), loop through a customer list using format: json to capture each gift card code for your records.
Related skills
FAQ
Can an issued gift card be deleted?
No. Gift cards cannot be deleted once created; they can only be disabled. Verify amount and customer before committing.
Does it run immediately?
Not unless you disable dry_run; the skill previews the customer, amount, and expiry first because issued value is immediately redeemable.