superbig / craft-ordernotes
Order notes for Commerce
Installs: 1 779
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 3
Open Issues: 4
Type:craft-plugin
pkg:composer/superbig/craft-ordernotes
Requires
- craftcms/cms: ^3.0.0
- craftcms/commerce: >=2.0.0
This package is auto-updated.
Last update: 2026-02-19 11:33:30 UTC
README
Add internal notes to Craft Commerce orders. Team members can annotate orders directly from the control panel and optionally notify customers by email.
Requirements
- Craft CMS 5.5+
- Craft Commerce 5.0+
- PHP 8.2+
Installation
composer require superbig/craft-ordernotes
Then go to Settings → Plugins and install Order Notes.
Quick Start
Once installed, a notes panel appears on every Commerce order edit screen. Type a message, optionally check "Notify customer", and submit.
Using Order Notes in Templates
Access order notes in Twig via the craft.orderNotes variable.
Get notes by Order object
{% set order = craft.commerce.orders.number(orderNumber).one() %}
{% set notes = craft.orderNotes.getNotesForOrder(order) %}
{% if notes %}
<h3>Order Notes</h3>
{% for note in notes %}
<div class="note">
<strong>{{ note.getUsername() }}</strong>
<time>{{ note.dateCreated|date('Y-m-d H:i') }}</time>
<p>{{ note.message|nl2br }}</p>
</div>
{% endfor %}
{% endif %}
Get notes by order ID
{% set notes = craft.orderNotes.getNotesByOrderId(order.id) %}
Available properties
| Property | Type | Description |
|---|---|---|
note.id |
int |
Note ID |
note.message |
string |
Note content |
note.orderId |
int |
Associated order ID |
note.userId |
int |
Author's user ID |
note.notify |
bool |
Whether the customer was notified |
note.dateCreated |
DateTime |
When the note was created |
note.dateUpdated |
DateTime |
When the note was last updated |
note.getUser() |
User |
The User element who created the note |
note.getUsername() |
string |
Username of the note author |
Configuration
Configure via the CP settings page or a config/order-notes.php file:
| Option | Type | Default | Description |
|---|---|---|---|
notifyEmailFrom |
string |
'' |
Sender email address (falls back to system email) |
notifyEmailFromName |
string |
'' |
Sender name (falls back to system name) |
notifyEmailTemplate |
string |
'' |
Path to HTML email template |
notifyEmailTemplateText |
string |
'' |
Path to plain text email template |
notifyEmailSubject |
string |
'' |
Email subject (Twig, receives order and note) |
Config file example
<?php return [ 'notifyEmailFrom' => '', 'notifyEmailFromName' => '', 'notifyEmailTemplate' => '_emails/order-note', 'notifyEmailTemplateText' => '_emails/order-note-text', 'notifyEmailSubject' => 'Update on your order {{ order.reference }}', ];
Email templates receive order (Commerce Order) and note (OrderNotesModel) as variables.
Support
Brought to you by Superbig
