order-shipped-webhook/order-shipped-webhook

order-shipped-webhook/order-shipped-webhook

Maintainers

Package info

github.com/medinaahmeti/OrderShippedWebhook

Type:shopware-platform-plugin

pkg:composer/order-shipped-webhook/order-shipped-webhook

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2025-07-26 20:11 UTC

This package is not auto-updated.

Last update: 2026-04-21 17:04:51 UTC


README

Order Shipped Webhook plugin

# Order Shipped Webhook

A Shopware 6 plugin that triggers a webhook when an order's delivery status changes to **Shipped**.
It sends order details (customer, products, addresses, tracking info) to a specified webhook endpoint.

## Features

- Listens for `order_delivery` state changes.
- Dispatches a `SendWebhookMessage` to send data asynchronously.
- Sends comprehensive order payload including:
  - Customer information (name, email, phone)
  - Billing and shipping addresses
  - Products with quantity and price
  - Payment details
  - Delivery method, tracking codes, and estimated delivery date
- Uses Symfony Messenger and Shopware MessageQueue.
- Configurable via System Config:
  - Enable/disable the webhook.
  - Specify the `shippedStateId` to listen for.

## Installation

1. Copy the plugin folder `OrderShippedWebhook` to your Shopware `custom/plugins/` directory.
2. Install and activate the plugin:

   ```bash
   bin/console plugin:install --activate OrderShippedWebhook
  1. Clear cache and recompile:

    bin/console cache:clear

Configuration

Navigate to Settings → System → Plugins → OrderShippedWebhook and configure:

  • Enable Subscriber Webhook: Turn the webhook listener on/off.
  • Shipped State ID: Set the technical state ID for the "Shipped" delivery status.

Webhook Payload Example

{
  "order": {
    "order_id": "12345",
    "order_date": "2025-07-25T12:34:56+00:00",
    "customer": {
      "customer_id": "c123",
      "name": "John Doe",
      "email": "john@example.com",
      "phone": "+123456789"
    },
    "shipping_address": {
      "name": "John Doe",
      "street": "123 Street",
      "city": "Berlin",
      "state": "BE",
      "postal_code": "10115",
      "country": "Germany"
    },
    "billing_address": { ... },
    "products": [
      {
        "product_id": "p123",
        "name": "Product Name",
        "quantity": 2,
        "price": 19.99,
        "currency": "EUR"
      }
    ],
    "total_amount": 39.98,
    "payment": {
      "payment_method": "PayPal",
      "payment_provider": "paypal_handler",
      "payment_state": "paid"
    },
    "delivery": {
      "delivery_method": "DHL",
      "tracking_number": "123456789",
      "delivery_status": "shipped",
      "estimated_delivery_date": "2025-07-28"
    },
    "order_status": "completed"
  }
}

Development

  • PHP: ^8.1
  • Shopware: ~6.5.0

Code Structure

  • MessageQueue

    • SendWebhookMessage – Encapsulates the order ID.
    • SendWebhookHandler – Fetches order details and sends the webhook.
  • Subscriber

    • OrderShippedSubscriber – Listens for order_delivery state changes and dispatches messages.

CMS Banner Slider

The plugin also registers a Banner Slider CMS Element with:

  • Configurable slides with image & text.
  • Uses Bootstrap Carousel for frontend rendering.

Author

Order Shipped Webhook Plugin by Medina Ahmeti