/admin-extension-sdk

The Admin Extension SDK can be used by Shopware 6 apps and plugins. This library allows them to extend the administration with custom functionality.

Primary LanguageTypeScript

Admin Extension SDK

Tests NPM Package

DEPRECATION WARNING

⚠️ This repository is considered deprecated and will be archived in March 2024. For the new version of this tool please go to meteor-admin-sdk.

Old Description

The admin-extension-sdk is a JavaScript library for all Shopware 6 App and Plugin developer which want an easy way to extend and customize the administration.

See Documentation

Installation

Using NPM:

Install it to your package.json

npm i --save @shopware-ag/admin-extension-sdk

and import it in your app:

// import everything
import * as sw from '@shopware-ag/admin-extension-sdk';

// or import only needed functionality
import { notification }  from '@shopware-ag/admin-extension-sdk';

Using CDN:

Import the source from the CDN

// use the latest version available
<script src="https://unpkg.com/@shopware-ag/admin-extension-sdk/cdn"></script>

// use a fix version (example here: 1.2.3)
<script src="https://unpkg.com/@shopware-ag/admin-extension-sdk@1.2.3/cdn"></script>

and then you can access it with the global variable sw.

sw.notification.dispatch({
  title: 'My first notification',
  message: 'This was really easy to do'
})

Features

  • 🏗 Works with Shopware 6 Apps and Plugins: you can use the SDK for your plugins or apps. API usage is identical.
  • 🎢 Shallow learning curve: you don't need to have extensive knowledge about the internals of the Shopware 6 Administration. Our SDK hides the complicated stuff behind a beautiful API.
  • 🧰 Many extension capabilities: from throwing notifications, accessing context information or extending the current UI. The feature set of the SDK will gradually be extended, providing more possibilities and flexibility for your ideas and solutions.
  • 🪨 A stable API with great backwards compatibility: don't fear Shopware updates anymore. Breaking changes in this SDK are an exception. If you use the SDK, your apps and plugins will stay stable for a longer time, without any need for code maintenance.
  • 🧭 Type safety: the whole SDK is written in TypeScript which provides great autocompletion support and more safety for your apps and plugins.
  • 💙 Developer experience: have a great development experience right from the start. And it will become better and better in the future.
  • 🪶 Lightweight: the whole library is completely tree-shakable and dependency-free. Every functionality can be imported granularly to keep your bundle as small and fast as possible.

Examples

Throw a notification:

sw.notification.dispatch({
  title: 'My first notification',
  message: 'This was really easy to do'
})

Get the system currency:

const currency = await sw.context.getCurrency();

Subscribe for UI locale changes:

let currentLocale = 'en-GB';

sw.context.subscribeLocale(({ locale }) => {
  currentLocale = locale;
})

See more examples in the Documentation.