This SDK is written in pure Typescript with portability in mind being able to use it on Node (20+), Deno, Cloudflare Worker or other runtimes.
- Provides registration process for app
- Verify and signing of requests / responses
- preconfigured API Client
- Complete Registration Handshake between Shopware and this
npm install @shopware-ag/app-server-sdk --save
Bun Plain
import { AppServer, InMemoryShopRepository } from '@shopware-ag/app-server-sdk'
import { createNotificationResponse } from '@shopware-ag/app-server-sdk/helper/app-actions'
const app = new AppServer({
appName: 'MyApp',
appSecret: 'my-secret',
authorizeCallbackUrl: 'http://localhost:3000/authorize/callback',
}, new InMemoryShopRepository());
const server = Bun.serve({
port: 3000,
async fetch(request) {
const { pathname } = new URL(request.url);
if (pathname === '/authorize') {
return app.registration.authorize(request);
} else if (pathname === '/authorize/callback') {
return app.registration.authorizeCallback(request);
} else if (pathname === '/app/product') {
const context = await app.contextResolver.fromAPI(request);
// do something with payload, and http client
const notification = createNotificationResponse('success', 'Product created');
// sign the response, with the shop secret
await app.signer.signResponse(notification, context.shop.getShopSecret());
return resp;
}
return new Response('Not found', { status: 404 });
},
});
console.log(`Listening on localhost:${server.port}`);
Checkout the examples folder for more examples using:
or use clone them as a starting point for your own project.
# Node.js
npx tiged shopware/app-sdk-js/examples/node-hono demo-app
# Bun
npx tiged shopware/app-sdk-js/examples/bun-hono demo-app
# Deno
npx tiged shopware/app-sdk-js/examples/deno-hono demo-app
# Cloudflare Worker
npx tiged shopware/app-sdk-js/examples/cloudflare-hono demo-app
and then cd demo-app
and npm install
to install the dependencies.