Connecting Shopware 6 to n8n: Orders, Customers, and Stock via Admin API

Shopware 6 has no native n8n node. Here's how you connect orders, customers, and stock via the Admin API and HTTP Request Node.

n8n comes with a ready-made node icon for many popular tools, but not for Shopware 6. That may be surprising at first glance, but in practice it is no obstacle: Shopware 6 provides a complete, well-documented REST interface with the Admin API, through which you can read and write orders, customer data, and stock levels. In n8n, the generic HTTP Request Node does the job, combined with an OAuth2 credential for Shopware's client credentials flow.

This article shows you the complete path: from the integration in the Shopware administration through the login in n8n to concrete queries for orders, customers, and stock. You retain full control over every single request, because nothing is hidden behind a black box.

Why there is no native Shopware node

n8n maintains native nodes for services with a particularly broad user base. Shopware 6 does not belong to that group so far, which in practice makes little difference: according to the n8n documentation, the HTTP Request Node is designed exactly for this case, namely to query data from any app or service with a REST API, even without a dedicated node. It can be used both as a regular workflow step and as a tool for an AI agent. For Shopware this means: with a few HTTP Request Nodes you build your own integration, tailored exactly to your processes, without waiting for the features of a ready-made node. Details on setup and options can be found in the n8n documentation on the HTTP Request Node.

Setting up access to the Shopware Admin API

Before n8n can query anything at all, you need an integration with its own credentials in Shopware.

  • Open Settings > System > Integrations in the Shopware administration and create a new integration.
  • Enable the Administrator toggle, otherwise the integration will not get sufficient rights for write access.
  • Note down the Access Key ID and Secret Access Key. The secret is only shown once.
  • These two values later correspond to the client ID and client secret in your n8n credential.

According to the official documentation, the Admin API itself covers structured access to central business objects such as products, orders, customers, and configurations, and is designed exactly for data synchronization, imports, and system-to-system communication. An overview is provided by the Shopware documentation on the Admin API.

Storing the OAuth2 credential in n8n

Shopware authenticates integrations via the OAuth2 client credentials flow: your client sends the Access Key ID and Secret Access Key to the token endpoint and receives a bearer token in return, which according to the documentation is valid for ten minutes. You replicate exactly this process in n8n with a generic OAuth2 API credential, which you select in the HTTP Request Node.

  • Grant Type: Client Credentials
  • Access Token URL: `https://yourshop.example/api/oauth/token`
  • Client ID: your Access Key ID
  • Client Secret: your Secret Access Key
  • Authentication: depending on your Shopware setup, as Body or Header, when in doubt try Body first

n8n automatically fetches a new token with this credential as soon as the old one has expired, so you don't need to worry manually about the ten-minute validity. Which generic auth types the HTTP Request Node supports in total, including Basic Auth, Header Auth, and OAuth2, is described by the n8n documentation on the HTTP Request credentials. The exact process of Shopware-side authentication, including example requests against `/api/oauth/token`, can be found in the Shopware guide to authentication and API requests.

Retrieving and processing orders

For orders you most often use the search endpoints of the Admin API, for example `POST /api/search/order`. Unlike many REST APIs, you don't send the filter criteria here as query parameters, but as a JSON body with a criteria structure.

  • Filter, for example, by order status or creation date to fetch only new or open orders.
  • Load customers, line items, and shipping addresses via `associations` right away, instead of querying them separately for each order.
  • Control the result set via `limit` and `page`, so that an n8n workflow does not fail on timeouts even with many orders.
  • A Schedule Trigger Node that runs every 15 minutes, combined with this HTTP request call, is completely sufficient for most sync scenarios toward a CRM or inventory management system.

For companies who do not want to maintain this integration themselves, NordFlux also builds such order sync workflows as a fixed-price project as part of the n8n consulting.

Keeping customer data in sync

You query customer data analogously via `POST /api/search/customer`. Filtering by email address or customer number is particularly useful here, if you want to check whether a contact from another system already exists in Shopware, before you create it anew via `POST /api/customer` or update it via `PATCH`. Make sure to consistently distinguish between creating and updating in your n8n workflows, for example with an IF node before the actual write access, so that you don't create duplicate customer records.

Reconciling stock

For stock you read and write the `stock` field directly on the product entity via `PATCH /api/product/{id}`. If you want to mirror stock changes from an external inventory management system to Shopware, a simple HTTP Request Node with this route is enough. Conversely, if a new Shopware order should reduce the stock in an external system, an event-based trigger is worthwhile instead of constant polling.

Trigger instead of constant polling: Shopware events via webhook

Regularly polling the Admin API works, but it is unnecessarily sluggish if you want to react immediately to individual events such as a new order. Shopware offers the Flow Builder in the administration for this: there you select a trigger such as "Order placed", add a webhook action, and enter the webhook address of your n8n workflow as the target URL. Details on the configuration can be found in the Shopware documentation on webhook actions in the Flow Builder.

On the n8n side, you receive it with the Webhook Node, which according to the documentation supports the HTTP methods GET, POST, PUT, PATCH, DELETE, and HEAD, and distinguishes between a test URL for development and a production URL after activating the workflow. This way you process new orders, customer registrations, or status changes at the moment they happen, instead of only noticing them at the next scheduled query.

Frequently asked questions

Is there now a native Shopware node for n8n after all?

Not as of now. n8n does not cover Shopware via its own node, which is why the generic HTTP Request Node is the intended way. This is not a second-class workaround, but the approach recommended by n8n itself for REST APIs without a dedicated node.

How do I log in to the Shopware Admin API with n8n?

In Shopware, under Settings, System, Integrations, you create an integration with administrator rights and store the Access Key ID and Secret Access Key as Client ID and Client Secret in a generic OAuth2 API credential in n8n. As Grant Type you choose Client Credentials and as Token URL the `/api/oauth/token` endpoint of your shop.

How often does the access token expire, and do I need to worry about it?

According to the Shopware documentation, the token is valid for ten minutes. n8n automatically renews it in the background via the OAuth2 credential as soon as a request with an expired token would be executed. Nothing changes for you as a workflow creator in everyday use.

How do I get order data in real time instead of via constant polling?

Via the Flow Builder in Shopware you can send events such as a new order directly to a webhook URL, which an n8n workflow receives with the Webhook Node. This replaces regular polling with real, immediate notifications and at the same time reduces the number of API calls.

Can I also write stock levels with the same integration, not just read them?

Yes. With the same credentials and an HTTP Request Node with the PATCH method, you can update the `stock` field on the product entity directly. The prerequisite is that the integration in Shopware was created with administrator rights, since read-only rights are not sufficient for write access.

About NordFlux

NordFlux UG (haftungsbeschränkt)

NordFlux builds digital employees for organisations: automations and AI agents that take over repetitive work. You stay in control.

More about us
Free initial analysis

Concrete questions about automation or AI?

In a free initial analysis we discuss your case directly. No strings attached.