PHPackages                             shubo/module-shipping-wolt-drive - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. shubo/module-shipping-wolt-drive

ActiveMagento2-module[Admin Panels](/categories/admin)

shubo/module-shipping-wolt-drive
================================

Wolt Drive carrier adapter for Shubo\_ShippingCore (Magento 2 marketplace shipping)

00PHP

Since Apr 21Pushed 1mo agoCompare

[ Source](https://github.com/nshubitidze/module-shipping-wolt-drive)[ Packagist](https://packagist.org/packages/shubo/module-shipping-wolt-drive)[ RSS](/packages/shubo-module-shipping-wolt-drive/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Shubo\_ShippingWoltDrive
========================

[](#shubo_shippingwoltdrive)

Wolt Drive carrier adapter for [`shubo/module-shipping-core`](https://github.com/nshubitidze/module-shipping-core).

**Status:** scaffold (Phase 7, 2026-04-21). Sandbox adapter only — live merchant credentials require a paid Wolt Drive account and are outside the scope of this release.

What this module is
-------------------

[](#what-this-module-is)

A concrete implementation of `Shubo\ShippingCore\Api\CarrierGatewayInterface` and `Shubo\ShippingCore\Api\WebhookHandlerInterface` for [Wolt Drive](https://developer.wolt.com/drive/) — Wolt's business-to-consumer on-demand delivery service. Core orchestrates; this adapter translates.

What it is NOT
--------------

[](#what-it-is-not)

- **Not a fork of Wolt's SDK.** We call the public REST API directly via Magento's `CurlFactory` so the module stays small and auditable.
- **Not merchant-account automation.** You need a real Wolt Drive merchant account (sandbox free, prod paid).
- **Not a multi-parcel integration.** Wolt Drive treats each delivery as a single parcel.

Capability declaration
----------------------

[](#capability-declaration)

CapabilitySupportedNotesWebhooks✓HMAC-SHA256 signed. See `WoltDriveWebhookHandler`.Sandbox✓`https://daas-public-api.development.dev.woltapi.com/`COD reconciliation API✗Cash reconciliation is offline via weekly invoice.PUDO✗Door-to-door only.Express✓Wolt Drive's core value proposition.Multi-parcel✗Single parcel per delivery order.Returns✓Supported via `cancelShipment`.Cancel after pickup✓Up until `dropoff_enroute`.Installation
------------

[](#installation)

```
composer require shubo/module-shipping-wolt-drive
bin/magento module:enable Shubo_ShippingWoltDrive
bin/magento setup:upgrade
```

Configuration
-------------

[](#configuration)

Per-merchant (scoped to the Magento website/store), admin-only:

Config pathMeaning`shipping/wolt_drive/merchant_api_key`Encrypted. Wolt's Merchant API bearer key.`shipping/wolt_drive/venue_id`Wolt-assigned venue identifier.`shipping/wolt_drive/is_sandbox`1 = use sandbox base URL; 0 = prod.`shipping/wolt_drive/webhook_secret`Encrypted. HMAC secret for webhook verification.A future release ships a `system.xml` to expose these in the admin UI; for now, set them via CLI:

```
bin/magento config:set --scope=websites --scope-code=m_tbilvino \
  shipping/wolt_drive/is_sandbox 1
bin/magento config:set --scope=websites --scope-code=m_tbilvino \
  shipping/wolt_drive/venue_id VEN-12345
# secrets (encrypted) must be set via the admin UI or:
bin/magento config:sensitive:set --scope=websites --scope-code=m_tbilvino \
  shipping/wolt_drive/merchant_api_key
```

Webhook endpoint
----------------

[](#webhook-endpoint)

Core's frontend route `POST /shubo_shipping/webhook/wolt_drive` receives webhook deliveries. Wolt Drive signs requests with:

- `X-Wolt-Signature` — base64-encoded HMAC-SHA256 of `timestamp.body` using the shared secret.
- `X-Wolt-Timestamp` — Unix epoch seconds.

Invalid signatures, replays (&gt;5min clock skew), and malformed bodies are rejected with `WebhookResult::STATUS_REJECTED`. Accepted webhooks flow through Core's dispatcher, which writes the shipment event + updates shipment status.

Status vocabulary map
---------------------

[](#status-vocabulary-map)

Wolt Drive → Core `ShipmentInterface::STATUS_*`:

Wolt statusCore status`created`, `accepted`, `pickup_enroute`, `pickup_arrived``READY_FOR_PICKUP``picked_up``PICKED_UP``dropoff_enroute`, `dropoff_arrived``OUT_FOR_DELIVERY``delivered``DELIVERED``cancelled``CANCELLED``failed``FAILED`Testing
-------

[](#testing)

```
composer install
vendor/bin/phpunit
vendor/bin/phpstan analyse --level=8
vendor/bin/phpcs --standard=Magento2 --extensions=php Model
```

Unit tests mock the HTTP client and inject synthetic webhook signatures — no live Wolt API calls. Integration tests against the Wolt sandbox require merchant credentials and are deferred to a follow-up release.

License
-------

[](#license)

Apache-2.0 — matches [`shubo/module-shipping-core`](https://github.com/nshubitidze/module-shipping-core), [`shubo/module-tbc-payment`](https://github.com/nshubitidze/module-tbc-payment), and [`shubo/module-bog-payment`](https://github.com/nshubitidze/module-bog-payment).

###  Health Score

19

↑

LowBetter than 10% of packages

Maintenance59

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/25e03e1c788be1ce1b2067241fb98d4b40e916fb9e9ea61d257a06ce871db916?d=identicon)[shubodev](/maintainers/shubodev)

---

Top Contributors

[![GS-Workspace](https://avatars.githubusercontent.com/u/162041121?v=4)](https://github.com/GS-Workspace "GS-Workspace (1 commits)")

### Embed Badge

![Health badge](/badges/shubo-module-shipping-wolt-drive/health.svg)

```
[![Health](https://phpackages.com/badges/shubo-module-shipping-wolt-drive/health.svg)](https://phpackages.com/packages/shubo-module-shipping-wolt-drive)
```

###  Alternatives

[leung/laravel-adminer

adminer for laravel5.\*

169.0k](/packages/leung-laravel-adminer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
