@shapeandshift/shopware-node-sdk v1.0.6
Shopware Node SDK is a simple SDK implementation of Shopware 6 APIs. It helps to access the API in an object-oriented way.
If you're familiar with Shopware 6 DAL syntax and how to retrieve it you might see this example is predictable and straightforward

Installation:
npm install @shapeandshift/shopware-node-sdk --saveImport:
import { Application } from "@shapeandshift/shopware-node-sdk";
const options = {
  shopUrl: `YOUR_SHOP_URL`, // https://shop-url.dev
};
Application.init(options); // Init applicationInitial options
| name | Type | Default | Description | 
|---|---|---|---|
shopUrl | String | (required) | Your shop url | 
apiPath | String | /api | Shop API path | 
autoCallRefresh | Boolean | true | Automatic call refresh token and retry the current request | 
Authentication
Supported 3 grant types:
import {
  PasswordGrant,
  ClientCredentialsGrant,
  RefreshTokenGrant,
  GRANT_SCOPE,
} from "@shapeandshift/shopware-node-sdk";
// Scope parameter is optional, Default: GRANT_SCOPE.WRITE ('write')
const grantType = new PasswordGrant(username, password, [
  GRANT_SCOPE.WRITE,
  GRANT_SCOPE.USER_VERIFIED,
]); // Using username & password
const grantType = new ClientCredentialsGrant(
  clientId,
  clientSecret,
  GRANT_SCOPE.WRITE
); // Using client_id & client_secret
const grantType = new RefreshTokenGrant(refreshToken); // Using refresh_tokenNow, you're able to authenticate the application
import { Application } from "@shapeandshift/shopware-node-sdk";
const authToken = await Application.authenticate(grantType);Or you can do this way to only fetch AuthToken object
import { AdminAuth } from "@shapeandshift/shopware-node-sdk";
const adminClient = new AdminAuth(grantType);
const authToken = await adminClient.fetchAccessToken();
await Application.setAuthToken(authToken); // you have to set `AuthToken` object to `Application`Store the authentication token object into the database then you can set it to the Context through the Application
await Application.setAuthToken(authToken);Notice:
Application.authenticate(grantType) automatically call Application.setAuthToken so you don't need to call it again.
Working with Criteria and Repositories
import { RepositoryFactory, Criteria } from "@shapeandshift/shopware-node-sdk";
const repository = RepositoryFactory.create("product");
const criteria = new Criteria();
criteria.addAssociation("options.group");
const products = await repository.search(criteria, Context);Using multiple Application instances
We added support for multiple connections. To instantiate a connection to certain shop, you can simply do this:
import { ApplicationInstance } from '@shapeandshift/shopware-node-sdk';
const shopwareApplication1 = new ApplicationInstance({ shopUrl: 'http://merchant1.test' });
const shopwareApplication2 = new ApplicationInstance({ shopUrl: 'http://merchant2.test' });Working with Admin API Apis
- Current supported apis:
- InfoApi
 - UserApi
 - StateMachineApi
 - SyncApi
 - For other services that does not have a concrete class, use: AdminApi
 
 
Check examples/sync-api.js or examples/user-api.js for some references.
Examples:
Follow those steps to run the example:
- Run 
npm install @shapeandshift/shopware-node-sdk --save - Update file 
/examples/auth-config.jsonmatch with your environment - Run examples 
node ./examples/authenticate.js... 
You can also check out the examples without any installation on /examples