# Configuration Guide
This guide is intended for shop operators and administrators setting up and operating **Axoli Withdrawal Button & Order Withdrawal Requests**.
---
## 1. What the plugin does
The plugin adds:
- a **withdrawal form** in the storefront (modal),
- **entry points** in the account menu, footer and order list,
- **central management** of all withdrawal requests in the administration,
- **email notifications** to customers and your team,
- a **tracking page** where customers can view processing status.
Most settings are configured **per sales channel**. For example, you can enable the feature in your B2C shop and disable it in a B2B channel.
---
## 2. Installation and activation
### Via the Shopware Store (recommended)
1. Log in to the **administration**.
2. Open **Extensions → Store**.
3. Search for *Axoli Withdrawal Button & Order Withdrawal Requests* and install the extension.
4. Activate the plugin under **Extensions → My extensions**.
5. Clear the cache under **Settings → System → Caches & indexes → Clear caches**.
> **Note:** Depending on your hosting, storefront assets may rebuild automatically after activation. If buttons or the admin module do not appear, contact your host or run `./bin/build-storefront.sh` and `./bin/build-administration.sh` on the server.
### Manual installation (ZIP)
If you received the plugin as a ZIP file, extract it to `custom/plugins/AxoliOrderWithdrawal` and run on your Shopware installation:
```bash
bin/console plugin:refresh
bin/console plugin:install --activate AxoliOrderWithdrawal
bin/console cache:clear
```
---
## 3. Opening plugin configuration
1. **Settings → System → Plugins → My extensions**
2. Select *Axoli Withdrawal Button & Order Withdrawal Requests*
3. Click **Configure**
4. Select the desired **sales channel** at the top
All settings below apply to the currently selected sales channel. Repeat configuration for each additional channel you use.
---
## 4. Settings in detail
### Enable withdrawal functionality
Enables or disables the entire storefront feature for the selected sales channel.
| Setting | Default |
|---|---|
| Enabled | Yes |
**When disabled**, the form, buttons and new storefront requests are hidden or blocked. **Still available:** the administration module, existing tracking links and processing of ongoing requests.
---
### Withdrawal period (days)
Defines how long the withdrawal button is shown in the **account order list**.
| Setting | Default |
|---|---|
| 14 days | Yes |
- **Positive number** (e.g. 14): Button appears only within this period after the order date.
- **Leave empty or set to 0:** No time limit – button always shown (as long as no request exists yet).
**Calculation:** The period starts on the order date and ends at the **end of the last day**. Example with 14 days and order on 1 June: withdrawal possible until 15 June, 23:59.
The period applies to both button display and form submission. When a matching order exists in the system, its **actual order date** is used.
> **Legal notice:** Adjust the period to your withdrawal policy. The plugin does not replace legal advice.
---
### Sender name for outgoing emails
Display name of the sender for customer emails and internal notifications.
| Setting | Default |
|---|---|
| Widerrufsservice | Yes |
---
### Notification recipients for new requests
Email addresses notified for each **new** withdrawal request.
- Enter multiple addresses **comma-separated**, e.g. `returns@my-shop.com, service@my-shop.com`
- **If empty:** The sales channel shop email is used (*Settings → Basic information → Shop email*)
The notification contains order number, customer data, message and a link to the request.
---
### Show withdrawal button in account menu
Shows a button in the **header account dropdown** that opens the withdrawal form. For logged-in customers, name, email and phone are pre-filled.
| Setting | Default |
|---|---|
| Enabled | Yes |
---
### Show withdrawal button in footer
Shows a link to the withdrawal form in the **footer service area**. Visible to all visitors, including guests.
| Setting | Default |
|---|---|
| Enabled | Yes |
---
### Cancel order automatically when withdrawal is accepted
When a withdrawal request is set to **Accepted**, the linked order can be cancelled automatically.
| Setting | Default |
|---|---|
| Disabled | Yes |
**Requirements:**
- The request must be linked to an order.
- The transition to “Cancelled” must be allowed in Shopware for the order.
The action is logged in the request history.
---
### Button colours
For **account menu**, **footer** and **order list**, background and text colour can be set separately.
**Leave empty** to use your theme colours.
---
### Right of withdrawal URL
Link to your **withdrawal policy** page. Used in the required checkbox of the form (“I have read the right of withdrawal …”).
**Example:** `https://www.my-shop.com/right-of-withdrawal`
> **Important:** Enter this URL before go-live.
---
## 5. Storefront – What your customers see
| Entry point | Configuration | Audience |
|---|---|---|
| Account dropdown (header) | Account menu button | Logged-in customers |
| Footer | Footer button | All visitors |
| Account order list | Automatic (if active & within period) | Logged-in customers |
| Sidebar “Withdrawal requests” | Always (if active) | Logged-in customers |
### Order list
- **Withdrawal button:** Appears next to the order number when no request exists and the period has not expired. The form is pre-filled with order data.
- **Status badge:** If a request already exists, a badge shows the processing status (e.g. “Withdrawal: Under review”).
### Withdrawal form – Required fields
- First name, last name, email
- Order number, order date
- Confirmation of withdrawal policy (checkbox)
**Optional:** Phone, message, file attachments (PDF, PNG, JPG, JPEG, WEBP, GIF – max. 10 files at 10 MB each).
### Captcha
The form uses captchas enabled in Shopware. Configure them under **Settings → System → Captcha**.
### Guests and existing customers
- **Logged in:** Data is taken from the customer account.
- **Guest:** Manual entry; matching via order number and email within the sales channel.
Only **one** withdrawal request per order is possible.
---
## 6. Setting up emails
### Customer emails
Under **Settings → Email templates** you will find two customisable templates:
| Template | When sent |
|---|---|
| Order withdrawal: confirmation | After new request |
| Order withdrawal: status update | On note/status change from administration |
**Available placeholders:** First name, last name, order number, order date, status, tracking link, note text (on updates).
### Internal notification
For each new request, the configured **notification recipients** (or shop email) receive an email with request details.
### Sender
The **sender name** comes from plugin configuration. The sender **address** is taken from your sales channel mail settings. Ensure email delivery (SMTP) works in Shopware.
---
## 7. Reference numbers
Each withdrawal request receives a sequential number, e.g. **WID-10001**.
Adjust under **Settings → Shop → Number ranges** → type *Withdrawal requests*.
---
## 8. Processing requests in the administration
### Open module
**Orders → Withdrawal requests**
### Statuses
| Status | Typical meaning |
|---|---|
| Requested | New, unprocessed request |
| Under review | Being reviewed |
| Waiting for return | Awaiting return shipment |
| Accepted | Withdrawal accepted |
| Declined | Withdrawal declined |
### Recommended workflow
1. Review new request (download attachments, link order if needed)
2. Update status
3. Add **note to customer** if needed and optionally send by email
4. Close: **Accepted** or **Declined**
### Additional features
- **Manual creation** of requests (e.g. after phone call)
- **Link order** or remove link
- **Internal comment** (visible to your team only)
- **History** with timestamp and actor
- **“Withdrawal” badge** in order list and block in order detail view
---
## 9. Permissions for your team
Under **Settings → System → Users & permissions → Roles** the **Withdrawal requests** permission is available:
| Level | Rights |
|---|---|
| Viewer | Read requests |
| Editor | Edit requests, upload attachments |
| Creator | Create new requests |
| Deleter | Delete requests |
**Recommendation:** Service staff get Viewer + Editor; team leads additionally Creator.
---
## 10. Customer tracking page
After submission, customers receive an email with a **personal tracking link** showing current status and notes from your team.
**Guests** must additionally verify with email and order number.
**Logged-in customers** also find their requests under **My account → Withdrawal requests**.
Tracking links work even if withdrawal functionality is later disabled for a channel.
---
## 11. Embedding the form in CMS pages
You can open the withdrawal form from your own pages:
**Simple button:**
```html
Submit withdrawal
```
**With pre-filled order number:**
```html
data-axoli-withdrawal-url="/axoli-withdrawal/modal?orderNumber=10001&orderDate=2026-06-01">
Withdraw order 10001
```
**Alternatively:** Any link targeting `#axoli-withdrawal-modal` opens the form.
---
## 12. Multiple sales channels
| Scenario | Solution |
|---|---|
| B2C active, B2B inactive | Disable “Enable withdrawal functionality” in B2B channel |
| Different periods | Own withdrawal period per channel |
| Dedicated service email | Own notification recipients per channel |
| Separate branding | Own button colours per channel |
---
## 13. Go-live checklist
- [ ] Plugin installed and activated
- [ ] Per sales channel: withdrawal functionality enabled
- [ ] Right of withdrawal URL entered and reachable
- [ ] Withdrawal period aligned with your process
- [ ] Notification recipients or shop email verified
- [ ] Email templates checked in all shop languages
- [ ] Test withdrawal as guest and customer
- [ ] Tracking link and account overview tested
- [ ] Staff roles assigned permissions
- [ ] Optional: auto-cancellation consciously enabled or disabled
---
## 14. FAQ
### Withdrawal button does not appear in order list
- Is withdrawal functionality enabled for the sales channel?
- Has the withdrawal period expired?
- Does a request already exist for this order?
- Clear cache and reload the page.
### Customer does not receive email
- Are email templates present?
- Does SMTP delivery work in Shopware?
- Check spam folder.
### Order not cancelled on “Accepted”
- Is “Cancel order automatically when withdrawal is accepted” enabled?
- Is the request linked to an order?
- Does the current order status allow transition to “Cancelled”?
### Plugin update fails in admin
Run the update via console:
```bash
bin/console plugin:update AxoliOrderWithdrawal
bin/console cache:clear
```
---
*Axoli Withdrawal Button & Order Withdrawal Requests · *