Admin
Contains methods for authenticating and interacting with the Admin API.
This function can handle requests for apps embedded in the Admin, Admin extensions, or non-embedded apps.
Authenticates requests coming from the Shopify admin.
The shape of the returned object changes depending on the config.
Anchor to authenticate.admin-parametersParameters
- Anchor to requestrequestrequestRequestRequestrequiredrequired
AdminContext
EmbeddedTypedAdminContext<Config> & ScopesContextEmbeddedTypedAdminContext
Config['isEmbeddedApp'] extends false
? NonEmbeddedAdminContext<Config>
: EmbeddedAdminContext<Config>NonEmbeddedAdminContext
- admin
Methods for interacting with the GraphQL Admin API for the store that made the request.
AdminApiContext - billing
Billing methods for this store, based on the plans defined in the `billing` config option.
BillingContext<Config> - cors
A function that ensures the CORS headers are set correctly for the response.
EnsureCORSFunction - session
The session for the user who made the request. This comes from the session storage which `shopifyApp` uses to store sessions in your database of choice. Use this to get shop or user-specific data.
unknown
AdminApiContext
Provides utilities that apps can use to make requests to the Admin API.
- graphql
Methods for interacting with the Shopify Admin GraphQL API
GraphQLClient<AdminOperations>
GraphQLClient
- query
Operation extends keyof Operations - options
GraphQLQueryOptions<Operation, Operations>
interface Promise<T> {
/**
* Attaches callbacks for the resolution and/or rejection of the Promise.
* @param onfulfilled The callback to execute when the Promise is resolved.
* @param onrejected The callback to execute when the Promise is rejected.
* @returns A Promise for the completion of which ever callback is executed.
*/
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
/**
* Attaches a callback for only the rejection of the Promise.
* @param onrejected The callback to execute when the Promise is rejected.
* @returns A Promise for the completion of the callback.
*/
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
}, interface Promise<T> {}, Promise: PromiseConstructor, interface Promise<T> {
readonly [Symbol.toStringTag]: string;
}, interface Promise<T> {
/**
* Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
* resolved value cannot be modified from the callback.
* @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
* @returns A Promise for the completion of the callback.
*/
finally(onfinally?: (() => void) | undefined | null): Promise<T>;
}GraphQLQueryOptions
- apiVersion
The version of the API to use for the request.
unknown - headers
Additional headers to include in the request.
Record<string, any> - signal
An optional AbortSignal to cancel the request.
AbortSignal - tries
The total number of times to try the request if it fails.
number - variables
The variables to pass to the operation.
ApiClientRequestOptions<Operation, Operations>
BillingContext
Provides utilities that apps can use to request billing for the app using the Admin API.
- cancel
Cancels an ongoing subscription, given its ID.
(options: CancelBillingOptions) => Promise<AppSubscription> - check
Checks if the shop has an active payment for any plan defined in the `billing` config option.
<Options extends CheckBillingOptions<Config>>(options?: Options) => Promise<BillingCheckResponseObject> - createUsageRecord
Creates a usage record for an app subscription.
(options: CreateUsageRecordOptions) => Promise<UsageRecord> - request
Requests payment for the plan.
(options: RequestBillingOptions<Config>) => Promise<never> - require
Checks if the shop has an active payment for any plan defined in the `billing` config option.
(options: RequireBillingOptions<Config>) => Promise<BillingCheckResponseObject> - updateUsageCappedAmount
Updates the capped amount for a usage billing plan.
(options: UpdateUsageCappedAmountOptions) => Promise<never>
CancelBillingOptions
- isTest
Whether to use the test mode. This prevents the credit card from being charged.
boolean - prorate
Whether to issue prorated credits for the unused portion of the app subscription. There will be a corresponding deduction (based on revenue share) to your Partner account. For example, if a $10.00 app subscription (with 0% revenue share) is cancelled and prorated half way through the billing cycle, then the merchant will be credited $5.00 and that amount will be deducted from your Partner account.
boolean - subscriptionId
The ID of the subscription to cancel.
string
AppSubscription
- createdAt
The date and time when the subscription was created.
string - currentPeriodEnd
The date and time when the current period ends.
string - id
The ID of the app subscription.
string - lineItems
ActiveSubscriptionLineItem[] - name
The name of the purchased plan.
string - returnUrl
The return URL for this subscription.
string - status
| 'ACTIVE' | 'CANCELLED' | 'PENDING' | 'DECLINED' | 'EXPIRED' | 'FROZEN' | 'ACCEPTED' - test
Whether this is a test subscription.
boolean - trialDays
The number of trial days for this subscription.
number
ActiveSubscriptionLineItem
- id
string - plan
AppPlan
AppPlan
- pricingDetails
RecurringAppPlan | UsageAppPlan
RecurringAppPlan
- discount
AppPlanDiscount - interval
BillingInterval.Every30Days | BillingInterval.Annual - price
Money
AppPlanDiscount
- durationLimitInIntervals
number - priceAfterDiscount
Money - remainingDurationInIntervals
number - value
AppPlanDiscountAmount
Money
- amount
number - currencyCode
string
AppPlanDiscountAmount
BillingConfigSubscriptionPlanDiscountAmount | BillingConfigSubscriptionPlanDiscountPercentageBillingConfigSubscriptionPlanDiscountAmount
- amount
The amount to discount. Cannot be set if `percentage` is set.
number - percentage
The percentage to discount. Cannot be set if `amount` is set.
never
BillingConfigSubscriptionPlanDiscountPercentage
- amount
The amount to discount. Cannot be set if `percentage` is set.
never - percentage
The percentage to discount. Cannot be set if `amount` is set.
number
BillingInterval
- OneTime
ONE_TIME - Every30Days
EVERY_30_DAYS - Annual
ANNUAL - Usage
USAGE
UsageAppPlan
- balanceUsed
Money - cappedAmount
Money - terms
string
Options
- layout
Whether to use the shop's theme layout around the Liquid content.
boolean
CheckBillingOptions
- plans
The plans to check for. Must be one of the values defined in the `billing` config option.
(keyof Config["billing"])[]
BillingCheckResponseObject
- appSubscriptions
The active subscriptions the shop has.
AppSubscription[] - hasActivePayment
Whether the user has an active payment method.
boolean - oneTimePurchases
The one-time purchases the shop has.
OneTimePurchase[]
OneTimePurchase
- id
The ID of the one-time purchase.
string - name
The name of the purchased plan.
string - status
| 'ACTIVE' | 'CANCELLED' | 'PENDING' | 'DECLINED' | 'EXPIRED' | 'FROZEN' | 'ACCEPTED' - test
Whether this is a test purchase.
boolean
CreateUsageRecordOptions
- description
The description of the app usage record.
string - idempotencyKey
string - isTest
Whether to use the test mode. This prevents the credit card from being charged.
boolean - price
The price of the app usage record.
{ amount: number; currencyCode: string; } - subscriptionLineItemId
string
UsageRecord
- description
The description of the usage record.
string - id
The ID of the usage record.
string - idempotencyKey
The idempotency key for this request.
string - plan
The subscription line item associated with the usage record.
ActiveSubscriptionLineItem - price
The price and currency of the usage record.
{ amount: number; currencyCode: string; } - subscriptionLineItem
The subscription line item associated with the usage record.
AppSubscriptionLineItem
AppSubscriptionLineItem
- id
The ID of the subscription line item.
string - plan
The plan associated with the subscription line item.
AppPlan
RequestBillingOptions
- isTest
Whether to use the test mode. This prevents the credit card from being charged. Test shops and demo shops cannot be charged.
boolean - plan
The plan to request. Must be one of the values defined in the `billing` config option.
keyof Config["billing"] - returnUrl
The URL to return to after the merchant approves the payment.
string
RequireBillingOptions
- onFailure
How to handle the request if the shop doesn't have an active payment for any plan.
(error: any) => Promise<Response> - plans
The plans to check for. Must be one of the values defined in the `billing` config option.
(keyof Config["billing"])[]
UpdateUsageCappedAmountOptions
- cappedAmount
The maximum charge for the usage billing plan.
{ amount: number; currencyCode: string; } - subscriptionLineItemId
The subscription line item ID to update.
string
EnsureCORSFunction
EmbeddedAdminContext
- admin
Methods for interacting with the GraphQL Admin API for the store that made the request.
AdminApiContext - billing
Billing methods for this store, based on the plans defined in the `billing` config option.
BillingContext<Config> - cors
A function that ensures the CORS headers are set correctly for the response.
EnsureCORSFunction - redirect
A function that redirects the user to a new page, ensuring that the appropriate parameters are set for embedded apps. Returned only if `isEmbeddedApp` is `true`.
RedirectFunction - session
The session for the user who made the request. This comes from the session storage which `shopifyApp` uses to store sessions in your database of choice. Use this to get shop or user-specific data.
unknown - sessionToken
The decoded and validated session token for the request. Returned only if `isEmbeddedApp` is `true`.
unknown
RedirectFunction
- url
string - init
RedirectInit
TypedResponse<never>RedirectInit
number | (ResponseInit & {target?: RedirectTarget})RedirectTarget
'_self' | '_parent' | '_top' | '_blank'ScopesContext
- scopes
Methods to manage scopes for the store that made the request.
ScopesApiContext
ScopesApiContext
Provides utilities that apps can use to [manage scopes](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes) for the app using the Admin API.
- query
Queries Shopify to see what scopes have been granted
() => Promise<ScopesDetail> - request
Requests the merchant grant the provided scopes This method performs a redirect to the grant screen.
(scopes: string[]) => Promise<void> - revoke
Revokes the provided scopes Warning: This method throws an [error](https://shopify.dev/docs/api/admin-graphql/unstable/objects/AppRevokeAccessScopesAppRevokeScopeError) if the provided optional scopes contains a required scope.
(scopes: string[]) => Promise<ScopesRevokeResponse>
ScopesDetail
- granted
The scopes that have been granted on the shop for this app
string[] - optional
The optional scopes that the app has declared in its configuration
string[] - required
The required scopes that the app has declared in its configuration
string[]
ScopesRevokeResponse
- revoked
The scopes that have been revoked on the shop for this app
string[]