{"id":22234216,"url":"https://github.com/shop3/strapi-plugin-shopify","last_synced_at":"2025-07-27T21:32:07.398Z","repository":{"id":40776006,"uuid":"496945271","full_name":"shop3/strapi-plugin-shopify","owner":"shop3","description":"Build a Shopify application with Strapi.","archived":false,"fork":false,"pushed_at":"2023-07-18T14:53:24.000Z","size":3396,"stargazers_count":25,"open_issues_count":7,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-29T21:20:14.641Z","etag":null,"topics":["shopify","strapi","strapi-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shop3.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-27T09:55:53.000Z","updated_at":"2024-03-17T15:31:23.000Z","dependencies_parsed_at":"2023-02-17T20:45:33.055Z","dependency_job_id":null,"html_url":"https://github.com/shop3/strapi-plugin-shopify","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shop3%2Fstrapi-plugin-shopify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shop3%2Fstrapi-plugin-shopify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shop3%2Fstrapi-plugin-shopify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shop3%2Fstrapi-plugin-shopify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shop3","download_url":"https://codeload.github.com/shop3/strapi-plugin-shopify/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227837058,"owners_count":17827066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["shopify","strapi","strapi-plugin"],"created_at":"2024-12-03T02:07:33.407Z","updated_at":"2024-12-03T02:07:34.013Z","avatar_url":"https://github.com/shop3.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Strapi Plugin Shopify\n\nBuild a Shopify application with Strapi.\n\n## Table Of Content\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Middlewares Configuration](#middlewares-configuration)\n- [Shopify Configuration](#shopify-configuration)\n- [Environment Variables](#environment-variables)\n- [Endpoints](#endpoints)\n\n## Requirements\n\nStrapi v4 is required.\n\n## Installation\n\n```bash\nnpm install --save strapi-plugin-shopify\n```\n\n## Middlewares configuration\n\nWebhooks are authenticated with **HMAC** calculated on the raw body, `strapi::body` middleware should be configured to pass the unparsed body as following:\n\n```js\n{\n  name: 'strapi::body',\n  config: {\n    includeUnparsed: true,\n  },\n},\n```\n\nIf you want to serve an embedded app directly from Strapi you will find that default **CSP policies** will not allow to do that, `strapi::security` middleware should be configured as following *(this configuration should be used only if you have problem with the embedded app iframe)*:\n\n```js\n{\n  name: 'strapi::security',\n  config: {\n    contentSecurityPolicy: {\n      useDefaults: true,\n      directives: {\n        'frame-ancestors': null,\n      },\n    },\n    frameguard: false,\n  },\n},\n```\n\n## Shopify Configuration\n\nThe Shopify application should be configured as follow:\n- App URL should be set as `https://your-domain.com/api/shopify`\n- Allowed redirection URL(s) should have both\n  - `https://your-domain.com/api/shopify/install/callback`\n  - `https://your-domain.com/api/shopify/auth/callback`\n\n![Screenshot illustrating how to configure the Shopify application](https://github.com/shop3/strapi-plugin-shopify/blob/main/assets/screenshot-create-shopify-app.jpg)\n\n## Environment Variables\n\nThis plugin needs the following environment variables to work:\n\n| Variable | Example | Description |\n| -------- | ------- | ----------- |\n| HOST_NAME | `shop3.app` | the host name of your app without the protocol (http or https) |\n| SHOPIFY_API_KEY | `553536bf79ee112525f63aaf25df59f8` | the API key generated by Shopify |\n| SHOPIFY_API_SECRET | `687b73300b570bdbe53220d84a18e23d` | the API secret generated by Shopify |\n| SHOPIFY_SCOPES | `read_locales,read_products` | the API scopes used by the application |\n| SHOPIFY_APP_EMBEDDED | `true` | whether the app is an embedded app or not |\n| SHOPIFY_REDIRECT_URL | `https://shop3.app/home` | the url where the user is redirect after authentication |\n\n## Endpoints\n\nThis are the endpoints exposed by this plugin:\n\n| Method | Path | Description |\n| ------ | ---- | ----------- |\n| GET | /api/shopify | the entry point of the application, it handles installation and authentication |\n| POST | /api/shopify/webhooks | the default webhooks endpoint called by Shopify |\n| GET | /api/shopify/install | the installation endpoint, should not be called directly, use /api/shopify instead |\n| GET | /api/shopify/install/callback | the installation callback endpoint, should be called only by Shopify |\n| GET | /api/shopify/auth | the authentication endpoint, should not be called directly, use /api/shopify instead |\n| GET | /api/shopify/auth/callback | the authentication callback endpoint, should be called only by Shopify |\n| POST | /api/shopify/auth/logout | the logout endpoint, should be called to delete the Shopify session |\n| GET | /api/shopify/shop | this endpoint should be called to get the authenticated shop data |\n| GET | /api/shopify/plans | this endpoint should be called to get available subscription plans |\n| GET | /api/shopify/subscription | this endpoint should be called to get the shop subscription |\n| POST | /api/shopify/subscription | this endpoint should be called to create a shop subscription |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshop3%2Fstrapi-plugin-shopify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshop3%2Fstrapi-plugin-shopify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshop3%2Fstrapi-plugin-shopify/lists"}