janmei / shopify-node-app-starter

πŸš€πŸš€ A Shopify embedded app starter template, with updated dependencies, session storage, app context and examples for basic functionalities.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Shopify Node App Starter

This is a starter template for embedded shopify apps based on the shopify cli node app.

Contributions to create the perfect shopify app boilerplate are very welcome! 🀩

Changes to the default Shopify node app starter

  • Updated dependencies (@apollo/client instead of react-apollo, react 17, next.js 12, polaris 7)
  • MongoDB session storage already set up (full credit goes to Harshdeep Singh Hura)
  • Ready to use online and offline accesstokens simultaneously
  • App context set up. Can be used to store data, that only needs to be fetched once, but is needed in multiple places
  • Link component to convert <a> tags to Next Links for relative paths
  • Routepropagation set up
  • Example API with verifyRequest() is set up
  • Relay pagination example
  • Webhook registration and persistance after server restart
  • Examples for creating, displaying and canceling of app subscriptions
  • Loading screen while the app context is loading

Boilerplate to create an embedded Shopify app made with Node, Next.js, Shopify-koa-auth, Polaris and App Bridge React.

TODO

  • GDPR webhooks

Installation

  • Fork and clone repo
  • Create an app in the shopify partner dashboard
  • Run shopify app connect to connect the app to shopify
  • Run npm install to install dependencies
  • Add ENCRYTION_STRING and MONGO_URL to your .env file (.env example is in the root directory)
  • Run shopify app serve to start dev enviroment

Requirements

Usage

Same usage as apps created with the Shopify CLI

Important

API routes have to start with /api/. All relative paths starting with /api/ will be converted to absolute paths by a next.js rewrite

License

This respository is available as open source under the terms of the MIT License.

About

πŸš€πŸš€ A Shopify embedded app starter template, with updated dependencies, session storage, app context and examples for basic functionalities.

License:MIT License


Languages

Language:JavaScript 99.2%Language:Shell 0.8%