saleor-apps-redis_apl/apps/invoices
Lukasz Ostrowski 8e4941fd2a
🚀 Release apps (#942)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-05 08:58:31 +02:00
..
graphql Add invoices app 2023-02-07 20:25:36 +01:00
public Add logo to apps (#552) 2023-06-14 16:05:36 +02:00
scripts/migrations Unify urql version, use shared util to create client (#657) 2023-06-19 15:59:27 +02:00
src add metadata manager to shared package (#901) 2023-08-17 11:53:03 +02:00
.env.example Update menifests to reflect dynamic urls from env (#695) 2023-07-03 11:57:50 +02:00
.env.test Invoices: Add debug logs and better temp pdf location (#265) 2023-03-15 09:38:13 +01:00
.eslintrc Add slack app (#120) 2023-02-09 11:58:20 +01:00
.gitignore Invoices: Add debug logs and better temp pdf location (#265) 2023-03-15 09:38:13 +01:00
.graphqlrc.yml Unify urql version, use shared util to create client (#657) 2023-06-19 15:59:27 +02:00
CHANGELOG.md 🚀 Release apps (#942) 2023-09-05 08:58:31 +02:00
next-env.d.ts Add invoices app 2023-02-07 20:25:36 +01:00
next.config.js Improve errors handling in Invoices app (#664) 2023-06-27 12:13:04 +02:00
package.json 🚀 Release apps (#942) 2023-09-05 08:58:31 +02:00
README.md Remove VercelAPL config and readmes (#203) 2023-02-23 12:42:17 +01:00
sentry.client.config.ts Improve errors handling in Invoices app (#664) 2023-06-27 12:13:04 +02:00
sentry.edge.config.ts Improve errors handling in Invoices app (#664) 2023-06-27 12:13:04 +02:00
sentry.server.config.ts Improve errors handling in Invoices app (#664) 2023-06-27 12:13:04 +02:00
tsconfig.json Add invoices app 2023-02-07 20:25:36 +01:00
turbo.json Update menifests to reflect dynamic urls from env (#695) 2023-07-03 11:57:50 +02:00
vitest.config.ts Update dev dependencies (#845) 2023-08-04 08:39:44 +02:00

Invoice app

Requirements

  • Saleor API 3.10

About Saleor Invoices app

  • Generates invoice PDF for each order after invoice is requested (e.g. via dashboard/orders)
  • Uploads PDF to Saleor built-in file storage
  • Allows to configure shop billing data per each channel

Learn more about Apps

Apps guide

Configuring apps in dashboard

Development

Requirements

Before you start, make sure you have installed:

With CLI

The easiest way to set up a Saleor app is by using the Saleor CLI.

Saleor CLI is designed to save you from the repetitive chores around Saleor development, including creating Apps. It will take the burden of spawning new apps locally, connecting them with Saleor environments, and establishing a tunnel for local development in seconds.

Full Saleor CLI reference

If you don't have a (free developer) Saleor Cloud account, create one with the following command:

saleor register

Now you're ready to create your first App:

saleor app create [your-app-name]

In this step, Saleor CLI will:

  • clone this repository to the specified folder
  • install dependencies
  • ask you whether you'd like to install the app in the selected Saleor environment
  • create .env file
  • start the app in development mode

Having your app ready, the final thing you want to establish is a tunnel with your Saleor environment. Go to your app's directory first and run:

saleor app tunnel

Your local application should be available now to the outside world (Saleor instance) for accepting all the events via webhooks.

A quick note: the next time you come back to your project, it is enough to launch your app in a standard way (and then launch your tunnel as described earlier):

pnpm dev

Without CLI

  1. Install the dependencies by running:
pnpm install
  1. Start the local server with:
pnpm dev
  1. Expose local environment using tunnel: Use tunneling tools like localtunnel or ngrok.

  2. Install aplication at your dashboard:

If you use Saleor Cloud or your local server is exposed, you can install your app by following this link:

[YOUR_SALEOR_DASHBOARD_URL]/apps/install?manifestUrl=[YOUR_APP_TUNNEL_MANIFEST_URL]

This template host manifest at /api/manifest

You can also install application using GQL or command line. Follow the guide how to install your app to learn more.

Generated schema and typings

Commands build and dev would generate schema and typed functions using Saleor's GraphQL endpoint. Commit the generated folder to your repo as they are necessary for queries and keeping track of the schema changes.

Learn more about GraphQL code generation.

Storing registration data - APL

During registration process Saleor API pass the auth token to the app. With this token App can query Saleor API with privileged access (depending on requested permissions during the installation). To store this data, app-template use a different APL interfaces.

The choice of the APL is done using APL environment variable. If value is not set, FileAPL is used. Available choices:

  • file: no additional setup is required. Good choice for local development. Can't be used for multi tenant-apps or be deployed (not intended for production)
  • upstash: use Upstash Redis as storage method. Free account required. Can be used for development and production and supports multi-tenancy. Requires UPSTASH_URL and UPSTASH_TOKEN environment variables to be set

If you want to use your own database, you can implement your own APL. Check the documentation to read more.