Official Dropday plugin for Shopware 6 — Dropday · API docs
Send orders to dropshipping suppliers and track fulfilment status from your Shopware store. Dropday is an order automation platform that connects your store to dropshipping suppliers: you push an order through the API, Dropday routes it to the right supplier, handles the fulfilment flow, and keeps you updated on status.
This plugin ports the same order-push behaviour as the official PrestaShop module and the Laravel package to Shopware 6, using Shopware's native extension points.
- PHP 8.1+
- Shopware 6.5, 6.6, or 6.7
composer require dropday-io/shopware
bin/console plugin:refresh
bin/console plugin:install --activate DropdayShopware
bin/console cache:clearOr upload/extract the plugin into custom/plugins/DropdayShopware and install it from Settings > System > Plugins in the administration.
Go to Settings > System > Plugins > Dropday and fill in:
| Field | Description |
|---|---|
| Live mode | When disabled, orders are sent flagged as test: true — Dropday validates them but does not route them to a real supplier. Mirrors the Laravel package's test mode. |
| Account ID | From your Dropday account settings. |
| API key | From your Dropday account settings. |
| API base URL | Defaults to https://dropday.io/api/v1. Only change this to point at a staging environment. |
These settings can also be configured per sales channel, since Shopware's system config supports sales-channel-specific overrides.
Unlike the PrestaShop module — which hard-codes a "select which order statuses trigger the API call" dropdown in its config screen — this plugin registers a custom Flow Builder action: "Send order to Dropday".
To wire it up:
- Go to Settings > Shop > Flow Builder and create a new flow.
- Choose a trigger, e.g.
Order transaction state changed→Paid(this is the equivalent of the PrestaShop module's default behaviour), orOrder state changed→Done, or any other trigger/condition combination you need. - Add the "Send order to Dropday" action.
- Save and activate the flow.
This is strictly more flexible than the PrestaShop module: you can add conditions (e.g. only for a specific sales channel, minimum order value, shipping country), combine multiple triggers, or attach additional actions (tagging, emails) to the same flow.
On trigger, the order is mapped to the Dropday "create order" payload:
| Dropday field | Shopware source |
|---|---|
external_id |
Order number |
source |
Sales channel name |
total |
Order total |
shipping_cost / shipping.cost |
Sum of delivery shipping costs |
shipping.name / shipping.description |
Shipping method name/description |
shipping.note |
Customer comment |
shipping.delivery_date |
Earliest shipping date of the delivery |
email |
Order customer's email |
shipping_address.* |
Order delivery's shipping address (name, company, street, zip, city, state, country, phone) |
products[].external_id |
Product ID |
products[].name |
Line item label |
products[].reference |
Product number (SKU) |
products[].quantity / price |
Line item quantity / unit price |
products[].ean13 |
Product EAN |
products[].stock_quantity |
Product stock |
products[].purchase_price |
Product purchase price |
products[].image_url |
Product cover image URL |
products[].brand |
Manufacturer name |
products[].category |
First assigned category name |
products[].custom |
Variant option group/option pairs, if any |
test |
true whenever Live mode is disabled |
After a successful call, the Dropday reference number returned by the API is stored on the order as a custom field (Dropday > Dropday reference, visible in the order detail's custom fields tab), so support staff can cross-reference orders without leaving Shopware.
Failures are logged (Dropday validation errors, transport errors, missing credentials) via Shopware's default logger and do not interrupt the rest of the flow sequence — matching the PrestaShop module's behaviour of logging failures without blocking the checkout/order process.
The Laravel package (dropday-io/laravel) is a thin, framework-agnostic API client (createOrder, getOrders, getOrder) meant for custom integrations. This plugin's Dropday\Shopware\Api\DropdayApiClient mirrors that same interface (plus getProducts) using Symfony's HTTP client, but is wired directly into Shopware's Flow Builder so no custom code is required to start sending orders.
Spin up a full Shopware 6 demo with this plugin installed and activated using dockware:
cp .env.example .env # optional: set Dropday credentials
make up| URL | Credentials |
|---|---|
| Storefront: http://localhost:8080 | — |
| Admin: http://localhost:8080/admin | admin / shopware |
| Adminer: http://localhost:8888 | MySQL root / root (host 127.0.0.1) |
Useful commands:
make logs # follow container logs
make down # stop containers
make reset # wipe volumes and start freshDefault image tag is 6.6-latest. Override in .env or on the command line:
SHOPWARE_VERSION=6.7-latest make upOptional. If set in .env, they are written into the plugin config on container boot:
DROPDAY_ACCOUNT_ID=...
DROPDAY_API_KEY=...
DROPDAY_BASE_URL=https://dropday.io/api/v1 # optional override
DROPDAY_LIVE_MODE=false # optional overrideAfter boot, wire a Flow Builder flow (see above) so orders are sent to Dropday when they reach the state you want.
- The Flow Builder administration registration in
src/Resources/app/administration/src/main.jsuses theflowBuilderServiceextension API. Verify the exact call signature against the Shopware Flow Builder extension docs for your target version before shipping to production, since this part of the Administration API has evolved across 6.5/6.6/6.7. - No console command or "test connection" button is included yet;
DropdayApiClient::isConfigured()is available for building one.
MIT