
Security News
PodRocket Podcast: Inside the Recent npm Supply Chain Attacks
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
@strapi-community/shopify
Advanced tools
A powerful Strapi plugin that seamlessly connects your Strapi application with Shopify stores through a user-friendly interface. It features a custom Shopify Product field, robust webhook management, and efficient product synchronization capabilities. The plugin comes with built-in content types for store management, along with configurable caching mechanisms to optimize performance.
npm install @strapi-community/shopify@latest
# or
yarn add @strapi-community/shopify@latest
shopify
(Step-by-Step with Images)Follow these steps to configure your Shopify store and connect it to your Strapi instance using this plugin. Visual guidance is provided with embedded images for each step.
address
: Your Shopify store address (e.g., your-store.myshopify.com
)apiSecretKey
: The API secret key from your Shopify appadminApiAccessToken
: The Admin API access tokenapiKey
: The API keyNote:
/api/shopify/webhooks
).The plugin requires a configuration object. You must provide a host
(publicly accessible URL of your Strapi instance) and select a cache engine (memory
or redis
).
{
host: string (URL), // required
engine: 'memory' | 'redis', // required
encryptionKey: string (32 chars), // required
// If engine is 'redis', provide connection details:
connection?: {
host: string, // required for redis
port: number, // required for redis
db: number, // required for redis
password?: string,
username?: string
}
}
module.exports = {
'shopify': {
host: 'https://your-strapi-instance.com',
encryptionKey: 'random 32 chars string',
engine: 'memory',
},
};
module.exports = {
'shopify': {
host: 'https://your-strapi-instance.com',
encryptionKey: 'random 32 chars string',
engine: 'redis',
connection: {
host: 'localhost',
port: 6379,
db: 0,
password: 'yourpassword', // optional
username: 'youruser', // optional
},
},
};
vendor
(string, required)address
(string, required)apiSecretKey
(string, required)
Used to validate incoming Shopify webhook signatures. Only requests signed with this key are accepted.isActive
(boolean, required, default: true)adminApiAccessToken
(string, required)apiKey
(string)webhooks
(relation to webhooks)topic
(enum: ProductsCreate, ProductsUpdate, ProductsDelete, OrdersCreate, OrdersUpdated, OrdersDelete)shopifyId
(string)format
(enum: Json)callbackUrl
(string)errors
(json)shop
(relation to shop)service
(string, required)method
(string, required)When a Strapi content type includes the custom Shopify product field, the plugin will automatically attach the corresponding Shopify product data to API responses for that content type. This is handled transparently in the plugin's middleware during the findOne
and findMany
actions.
Supported queries:
findOne
(single record fetch)findMany
(list fetch, including collection endpoints)Caching:
engine: 'memory' | 'redis'
).Reference: See server/src/register.ts
, middleware in the strapi.documents.use
block for details on how product data is attached to responses.
The plugin exposes a webhook endpoint for Shopify:
POST /api/shopify/webhooks
apiSecretKey
(HMAC signature) via Shopify's official SDK. Only requests with a valid signature are processed; all others are rejected.For the plugin to work correctly—especially in verifying incoming Shopify webhook signatures—it is required to have access to the raw (unparsed) request body. This is achieved by configuring Strapi's body parser middleware to include the unparsed body.
To do so, update your application's middleware configuration in apps/example-app/config/middlewares.ts
as follows:
{
name: 'strapi::body',
config: {
includeUnparsed: true,
},
}
This setting leverages the Koa Body parser's includeUnparsed
option. For more details, please refer to the Strapi V5 documentation and the koa-body parser documentation.
yarn build
yarn test:server
yarn test:ts:front
You can also used official support platform of Strapi, and search [VirtusLab]
prefixed people (maintainers)
See the MIT License file for licensing information.
FAQs
Official Strapi Shopify Plugin
The npm package @strapi-community/shopify receives a total of 14 weekly downloads. As such, @strapi-community/shopify popularity was classified as not popular.
We found that @strapi-community/shopify demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.