Community libarary that provides Shopify clients for NestJS applications.
It wraps the official shopify-node-api library in nestjs modules and services.
First you neeed to install all peer dependencies
@shopify/shopify-api
— official shopify libraryshopify-nestjs
— this library@nestjs/common
— should be installed by default
Using npm
$ npm install shopify-nestjs @shopify/shopify-api
Using yarn
$ yarn add shopify-nestjs @shopify/shopify-api
Using pnpm
$ pnpm install shopify-nestjs @shopify/shopify-api
Go to your app module and import the ShopifyModule using forRoot
or forRootAsync
Using forRootAsync
@Module({
...
imports: [
...
ShopifyModule.forRootAsync({
...
useFactory: () => {
return {
IS_EMBEDDED_APP: false,
API_KEY: '82b1fe5a389dceb04b3a325fe69dea0c',
API_SECRET_KEY: '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',
HOST_NAME: 'host.example.com',
API_VERSION: ApiVersion.October20,
SCOPES: ['read_analytics', 'read_content', 'write_content'],
SHOP: 'your-shop-name',
PRIVATE_APP_STOREFRONT_ACCESS_TOKEN: '5f6032684f51c721c70f065dd9dedb17',
}
}
...
}),
...
]
...
})
Using forRoot
@Module({
...
imports: [
...
ShopifyModule.forRoot({
...
IS_EMBEDDED_APP: false,
API_KEY: '82b1fe5a389dceb04b3a325fe69dea0c',
API_SECRET_KEY: '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',
HOST_NAME: 'host.example.com',
API_VERSION: ApiVersion.October20,
SCOPES: ['read_analytics', 'read_content', 'write_content'],
SHOP: 'your-shop-name',
PRIVATE_APP_STOREFRONT_ACCESS_TOKEN: '5f6032684f51c721c70f065dd9dedb17',
...
}),
...
]
...
})
You can import each client when you need it using forFeature
...
import { ShopifyRestClientModule } from "shopify-nestjs"
...
@Module({
...
imports: [
...
ShopifyRestClientModule.forFeature()
...
]
...
})
You can also import all clients and use them across your application using ShopifyClientsModule.forRoot
in your App module
...
import { ShopifyClientsModule } from "shopify-nestjs"
...
@Module({
...
imports: [
...
ShopifyClientsModule.forRoot()
...
]
...
})
Once a client is available in you module you can inject it directly and use it each client extends the shopify official library client so you can use it as documented The official library readme.
...
import { ShopifyRestClient, ShopifyGraphqlClient, ShopifyStorefrontClient } from "shopify-nestjs"
...
constructor(
...
private _restClient: ShopifyRestClient,
private _graphqlClient: ShopifyGraphqlClient,
private _storefrontClient: ShopifyStorefrontClient,
...
) {}