Product Messaging
Send per-product warranty emails, instruction manuals, and checkout-success messaging automatically, without writing a line of custom code. Rules you define in the admin match order SKUs, then send a native Magento email template at the order-lifecycle point you choose and/or show a CMS block on the checkout success page - independently, per rule.
✦One rule, two moments
Match SKUs exactly or with * wildcards, then send an email on order, invoice or shipment, show a block on the success page, or both.
✦Native templates, no lock-in
Emails are ordinary Magento email templates and success content is an ordinary CMS block. Two sample templates install on day one.
✦Never slows checkout
Matching is one queue insert. Cron does the sending with retry and backoff, and a misconfigured rule is logged, never thrown at checkout.
✦One email per rule, per order
A unique rule-and-order constraint stops duplicates across double saves, re-invoicing and partial shipments.
Per-product emails and checkout messaging for Magento 2
Every SKU you sell has something worth saying after the sale - a warranty to register, a manual to open, an accessory that ships separately. OCM Labs Product Messaging lets you say it automatically. Define a rule once, match it to specific SKUs, and the module handles the rest: a native Magento email at the order-lifecycle point you choose, a CMS block on the checkout success page, or both.
One rule, two moments
A rule matches a list of SKUs - exact or * wildcard - and drives two independent actions: send an email, and show a block on the checkout success page. Turn on one, the other, or both. A drill's warranty rule can email a registration reminder three days after shipment and still show "register your warranty now" the moment the order is placed. One order can trigger multiple emails and multiple success-page blocks, one per matched rule.
Built on Magento's own templates and blocks - no lock-in
There is no proprietary template language to learn. Emails are ordinary Magento email templates, edited in Marketing > Communications > Email Templates with the same var, trans, if and for directives you already use for order confirmations. Success-page content is an ordinary CMS static block, authored in Content > Blocks. Two sample templates - a warranty email and an instruction-manual email - install automatically so you have a working example on day one.
Never slows down checkout
Matching a rule against an order is a cheap database write, not a template render or an HTTP call. When an order is placed, invoiced or shipped, an observer checks the SKUs, inserts a queue row and returns. A background cron job does the actual sending a minute later. If a rule is misconfigured, the failure is logged and swallowed; it never breaks checkout, invoicing or shipping.
Every order gets exactly one email per rule
A unique constraint on the rule-and-order pair means a rule can never email the same order twice - not on a double save, not across a re-invoice, not across two partial shipments of the same order. A shipment-triggered rule only fires when a matched SKU is actually in that shipment, so split orders don't produce duplicate or premature sends.
Attach the manual, not just a link
Rules carry PDF attachments that go out on every email they send. Uploads are checked against both file extension and actual file content, so a renamed non-PDF is rejected before it is ever stored. If an attached file goes missing by the time an email sends, the email still goes out without that attachment, with a warning in the log.
Meet buyers on the success page, while they're still paying attention
The checkout success page is the highest-attention moment in the order. A rule's success-page block shows up right there, only to buyers of the matching product: warranty registration, a manual download link, a note that the battery ships separately. It is evaluated fresh on every page view against the live order, works identically on Luma and Hyva, and leaves no empty markup behind for orders that don't match.
Technical details
- Magento Open Source / Adobe Commerce 2.4.7 - 2.4.9, PHP 8.2 / 8.3 / 8.4 / 8.5
- Magento Open Source:
composer require ocmlabs/module-product-messaging - Adobe Commerce:
composer require ocmlabs/module-product-messaging-commerce(pulls in the module automatically) - SKU matching with exact and
*wildcard patterns, with optional child-SKU matching for configurable, bundle and grouped products - Order-lifecycle triggers: Order Placed, Invoice Created, Shipment Created, each with an optional per-rule send delay
- PDF attachments per rule, MIME-verified at upload and size-capped
- Cron-driven send queue with automatic retry and exponential backoff, plus a full Email Log with Resend
- ACL-controlled admin access for rules, deletion, the Email Log and configuration
✦ IN THE STORE & IN THE ADMIN
See it working.
✦ INSTALLATION
Two commands. Like it should be.
# keys provisioned to your dashboard at purchase $ composer require ocmlabs/module-product-messaging $ bin/magento setup:upgrade
✦ RELEASE LOG
Maintained like production code - because it is.
v1.1.0 · 2026-10-06
- Compat: PHP 8.5 supported, alongside PHP 8.2, 8.3 and 8.4, verified on Magento 2.4.9.
- Change: The Adobe Commerce package now requires version 1.1 or newer of the module.
v1.0.4 · 2026-07-30
- Fix: Saving a rule after using the email-template quick-create no longer lands on a page of raw JSON and abandons the save.
- Fix: Removed the unusable "ALL GROUPS" entry from Customer Groups - leave the field empty to target every group.
v1.0.3 · 2026-07-28
- Compat: Magento Open Source and Adobe Commerce 2.4.9 supported, verified on a live 2.4.9 install.
- Note: PHP 8.5 is not supported.
v1.0.2 · 2026-07-27
- Security: The template quick-create now respects the Magento email-template permission, and Send Test only searches orders in the rule's own store views.
- Fix: Multi-address checkouts now trigger emails and show success-page blocks.
- Fix: Send Test, PDF attachment upload and removal, and the grid Delete action now work as documented.
- Fix: No email for orders cancelled or refunded during a send delay; shipment emails show the quantity actually shipped.
- Fix: Zero or blank Batch Size, Max Send Attempts and Log Retention values can no longer cause destructive behaviour.
- Change: Every product attribute is now available in email templates with no configuration.
- Change: Admin menu and ACL resources moved under Sales.
v1.0.1 · 2026-07-24
- Packaging: Ships as ocmlabs/module-product-messaging plus the ocmlabs/module-product-messaging-commerce metapackage for Adobe Commerce. No functional changes.
v1.0.0 · 2026-07-24
- Initial release: per-SKU rules driving native email templates and checkout success-page CMS blocks, cron send queue with retry, Email Log with Resend, PDF attachments, Test Mode and ACL.
✦ THE OCM LABS LICENSE
Your code. Your keys.
✦ MODULE QUESTIONS
Before you buy.
Support & Documentation
Need more help?
Our support team typically responds within 1 business day.