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
npm install @shapeandshift/shopware-node-sdk --save
import { Application } from "@shapeandshift/shopware-node-sdk";
const options = {
shopUrl: `YOUR_SHOP_URL`, // https://shop-url.dev
};
Application.init(options); // Init application
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 |
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_token
Now, 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);
Application.authenticate(grantType)
automatically call Application.setAuthToken
so you don't need to call it again.
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);
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' });
- 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.
Follow those steps to run the example:
- Run
npm install @shapeandshift/shopware-node-sdk --save
- Update file
/examples/auth-config.json
match with your environment - Run examples
node ./examples/authenticate.js
...
You can also check out the examples without any installation on /examples