Chat on WhatsApp

Order File Attachments for Magento 2

Order File Attachments empowers Magento 2 merchants to accept customer-uploaded files at checkout on a per-product-item basis — ideal for print-on-demand, custom artwork, engraving instructions, prescription uploads, personalised gifts,…

Magento 2.4.6–2.4.8 PHP 8.1–8.4 Hyva + Luma Ready Free

Key Features:

  • Customer Upload Experience
  • Cart and Checkout Integration
  • Admin Management
  • Configuration and Control

Additional Services

$0.00
In stock
SKU
panth-order-attachments
Links
Pay with Wise
Lifetime Updates Every Magento release
1-Year Free Support Email + WhatsApp
Adobe-Certified Magento 2 Developer
Free Forever No subscription, no upsell
What you get

Everything in the box

Built-in from day one. No add-ons, no upsell, no licence keys to renew.

Customer Upload Experience

Multi-file support — up to N files per item (configurable)

Cart and Checkout Integration

Attachments appear on quote items as rich additional_options cards

Admin Management

Dedicated admin grid — Sales → Panth Infotech → Order Attachments

Configuration and Control

Per-product attribute — panth_allow_order_attachment (Yes/No)

Security and Performance

MEQP compliant — Adobe Magento Extension Quality Program tested

Overview

Panth Order Attachments is a Magento 2 file upload extension that lets customers attach files to specific order items at checkout for print-on-demand, custom artwork, and B2B workflows.

The Panth Order Attachments extension adds a per-item file upload field to Magento 2 and Adobe Commerce checkout, so shoppers can send artwork, engraving instructions, prescriptions, RFQ documents, or personalization assets alongside the order itself, without follow-up emails or support tickets.

It is built for Magento 2 merchants selling print-on-demand apparel, engraved jewelry, personalized gifts, prescription eyewear, business cards, and B2B configured products where every order needs supporting files. A simple product attribute toggles uploads on or off per SKU, so the field only shows where it belongs.

Admins manage every uploaded file from a dedicated grid with thumbnail previews, one-click downloads, order and item linking, multi-file support, and configurable size and MIME-type validation. Customers get a frictionless checkout, and the store gets a clean, searchable backend instead of a flooded inbox.

Best for:

  • Print-on-demand and personalization stores collecting artwork and engraving instructions for every order item.
  • Prescription, optical, and medical-supply merchants accepting Rx and ID document uploads at checkout.
  • B2B Magento 2 stores collecting RFQs, spec sheets, and purchase-order documents on a per-item basis.

Why Order Attachments?

Out of the box, Magento 2 has no native way for customers to upload files at checkout that are cleanly attached to a specific order item. Merchants selling customizable products, prescription products, or B2B documents are forced to:

  • Shoehorn file uploads into custom options (tied to cart quote, not order item)
  • Ask customers to email files after purchase (slow, error-prone, loses context)
  • Build brittle custom modules that break on Magento upgrades

Panth Order Attachments solves this properly:

  • Files are uploaded during product add-to-cart and carried through checkout
  • Uploads are linked to the exact order item on order placement
  • Admins see, preview, and download every file from a single searchable grid
  • Per-product attribute controls which products accept uploads
  • File size, extension, and multi-file rules are enforced server-side
  • Works on both Hyva (Alpine.js) and Luma (vanilla JS) storefronts

What you get

Panth Order Attachments adds per-item file uploads to Magento 2 checkout with a full admin management layer.

  • Per-product-item file uploads on the Magento 2 and Adobe Commerce checkout page.
  • Multi-file uploads with configurable max files, MIME types, and per-file size limits.
  • Product attribute toggle to enable or disable uploads per SKU.
  • Admin grid with thumbnail previews, one-click downloads, and order linking.
  • Native rendering on Hyvä and Luma storefronts.
  • Compatible with Magento 2.4.4–2.4.9 and PHP 8.1–8.4.

Order File Attachments for Magento 2 | Upload Files to Order Items at Checkout

Order File Attachments empowers Magento 2 merchants to accept customer-uploaded files at checkout on a per-product-item basis — ideal for print-on-demand, custom artwork, engraving instructions, prescription uploads, personalised gifts, B2B RFQs, and any store where orders require supporting documents.

Panth Order Attachments lets customers attach one or more files to specific order items directly during checkout. Store admins get a powerful backend grid to manage every uploaded file — with thumbnail previews, one-click downloads, order/item linking, and full file size validation. Enable or disable uploads per product via a simple product attribute, configure allowed file types and size limits globally, and support multi-file uploads where needed. Whether you sell custom-printed t-shirts, personalised mugs, business cards, engraved jewellery, or prescription eyewear, Order Attachments gives your customers a frictionless way to send you the files you need — and gives you a clean, searchable admin interface to retrieve them.


Key Features

Customer Upload Experience

  • Drag-and-drop upload widget on the product page with progress bars
  • Thumbnail preview for images, file-type badges for documents
  • Multi-file support — up to N files per item (configurable)
  • Customer notes — optional message travels with each attachment
  • Lightbox gallery — click to enlarge image attachments in cart, checkout, and order view
  • Mobile-friendly — touch-friendly uploads with drag-drop where supported

Cart and Checkout Integration

  • Attachments appear on quote items as rich additional_options cards
  • Visible in cart page, minicart, and checkout order summary
  • Cart item edit preserves, adds, or removes attachments as the customer updates
  • Carries through to order placement via sales_order_place_after observer
  • Shown on "My Account → Orders → View Order" with download links

Admin Management

  • Dedicated admin gridSales → Panth Infotech → Order Attachments
  • Order detail tab — "Order Attachments" section on admin order view
  • Thumbnail preview column — scan uploads at a glance
  • Filter and search — by order ID, customer, SKU, date, file type, status
  • One-click download from grid or order view
  • ACL resources for view and download permissions

Configuration and Control

  • Per-product attributepanth_allow_order_attachment (Yes/No)
  • Allowed extensions — configurable whitelist (e.g. jpg, png, pdf, ai, psd, eps, docx, zip)
  • File size validation — global max file size (MB) enforced client + server
  • Max files per item — cap the number of uploads per cart line item
  • Custom upload label — override the widget heading per store
  • Show-in-cart / Show-in-checkout toggles

Security and Performance

  • MEQP compliant — Adobe Magento Extension Quality Program tested
  • SHA-256 hashed filenames on disk — original names never used as path
  • Server-side MIME + extension + size validation on every upload
  • Honeypot + rate limiting (20 uploads per 10-minute window) against bots
  • Ownership validation on download and thumbnail endpoints
  • Soft-delete — attachments are never hard-deleted by customers
  • Hyva and Luma compatible — full support on both frontends

Use Cases

  • Print-on-demand stores — artwork for t-shirts, mugs, posters, canvas prints
  • Personalised gifts — photos for photo books, engraved jewellery, custom cases
  • Prescription products — opticians and pharmacies receive prescription PDFs
  • Business cards and stationery — customer-uploaded logos and designs
  • Custom embroidery and engraving — reference images and instructions per product
  • Signage and large-format printing — vector and high-res files with per-item rules
  • B2B procurement — PO documents, specs, and drawings attached to specific line items

How It Works

  1. Admin enables Allow Order Attachments on specific products
  2. Customer visits product page — drag-and-drop upload widget appears
  3. Customer uploads file(s); client- and server-side validation runs
  4. Uploads are linked to the quote item when product is added to cart
  5. Attachments show in cart, minicart, and checkout summary
  6. On order placement, an observer copies attachments to the order item
  7. Admin manages files from the Order Attachments grid and order view tab
  8. Customer sees uploaded files in "My Account → Orders"

Admin Management

Order Detail Tab

Open any order in admin; the Order Attachments tab lists:

  • File name (clickable download)
  • Linked product (clickable)
  • File size and extension
  • Uploader (customer or guest)
  • Customer note
  • Upload date

Dedicated Grid

Navigate to Sales → Panth Infotech → Order Attachments for a cross-order view:

  • Thumbnail preview column
  • Filename, product (linked), order ID (linked), customer, file size, extension, status
  • Created / updated dates
  • Download action
  • Filters: order ID, customer email, SKU, date range, file type, size range

Per-Product Attribute

The module installs a product attribute panth_allow_order_attachment (Boolean) in the Order Attachments attribute group.

Value Behaviour
No Upload widget is hidden on the product page (default).
Yes Upload widget appears; customer may attach files before adding to cart.

You can set this at product, attribute set, or attribute group level.


File Validation and Security

  • Stored filenames — SHA-256 hashed; original user-supplied names never touch disk paths
  • Extension whitelist — only configured extensions are accepted (server-side check)
  • Size limit — enforced client-side (JS) and server-side (PHP)
  • MIME sniffing — file contents validated, not just extension
  • Honeypot field — catches bots submitting the upload form
  • Rate limiting — 20 uploads per 10-minute window per customer/session
  • Ownership validation — download and thumbnail endpoints verify the requesting user owns the file
  • Soft-delete — customers cannot hard-delete; admins can via the grid
  • Storage pathvar/order_attachments/ — not publicly browsable

Compatibility

Requirement Versions Supported
Magento Open Source 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8
Adobe Commerce 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8
Adobe Commerce Cloud 2.4.4 — 2.4.8
PHP 8.1.x, 8.2.x, 8.3.x, 8.4.x
MySQL 8.0+
MariaDB 10.4+
Hyva Theme 1.0+ (full Alpine.js support)
Luma Theme Native support (vanilla JS)
Required mage2kishan/module-core (free, auto-installed)

Tested on:

  • Magento 2.4.8-p4 with PHP 8.4
  • Magento 2.4.7 with PHP 8.3
  • Magento 2.4.6 with PHP 8.2

Installation

Composer Installation (Recommended)

composer require mage2kishan/module-order-attachments
bin/magento module:enable Panth_Core Panth_OrderAttachments
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush

Manual Installation via ZIP

  1. Download the ZIP from Packagist or the Adobe Commerce Marketplace
  2. Extract to app/code/Panth/OrderAttachments/
  3. Also install Panth_Core to app/code/Panth/Core/ (required dependency)
  4. Run the same commands as above

Verify Installation

bin/magento module:status Panth_OrderAttachments
# Expected: Module is enabled

Configuration

Navigate to Stores → Configuration → Panth Extensions → Order Attachments.

General

Setting Default Description
Enable Module Yes Master on/off switch for Order Attachments.

Upload Settings

Setting Default Description
Allowed Extensions jpg,jpeg,png,gif,pdf,doc,docx,zip Comma-separated whitelist.
Max File Size (MB) 10 Server-enforced maximum per file.
Max Files Per Item 5 Maximum attachments per cart line item.

Display Settings

Setting Default Description
Upload Label Upload Your Design Custom heading displayed above the upload widget.
Show in Cart Yes Display attachment cards on the cart page and minicart.
Show in Checkout Yes Display attachment cards in the checkout order summary.

Product-Level Control

Edit any product → Order Attachments attribute group → set Allow Order Attachments to Yes/No.


License

Commercial — see LICENSE.txt. One license per Magento production installation. Includes 12 months of free updates and email support.


More Information
Module Category Cart & Checkout
Best For All Sizes
FAQ

Frequently Asked Questions

How is this different from Magento's native "file" custom option?

Native file custom options are tied to the cart quote item and don't persist cleanly as a first-class order record. Panth Order Attachments creates dedicated panth_quote_attachment and panth_order_attachment tables, linked to the sales order item, ensuring files remain accessible for the full order lifetime — including reorders, invoices, and RMAs.

Can customers upload multiple files per product?

Yes. Set Max Files Per Item in configuration (default 5). Each enabled product in the cart accepts up to that many files.

Does it support Hyva?

Yes. The frontend widget has both Luma (PHTML + vanilla JS) and Hyva (Alpine.js + Tailwind) implementations, auto-selected via Panth\Core\Helper\Theme.

What file types are supported?

Any extension you configure. Defaults: jpg, jpeg, png, gif, pdf, doc, docx, zip. You can add ai, psd, eps, svg, tif, xlsx, etc.

Where are files stored?

In var/order_attachments/ with SHA-256 hashed filenames. The directory is not publicly browsable; files are served only through authenticated controllers.

Can guests use Order Attachments?

Yes. Both guest and registered customer checkouts are supported.

Can the admin delete or replace an attachment after the order is placed?

Yes. Admins can soft-delete or download any attachment from the grid and order view tab.

Does it work with Adobe Commerce Cloud?

Yes. Files are stored in the writable var/ directory which is persisted across deploys on ACC.

Does it support multi-store?

Yes. Configuration respects default → website → store view scope. Attachments are stored per order regardless of store view.

Is a REST API available?

REST endpoints for listing and downloading attachment metadata are included. GraphQL support is on the roadmap.


Does this replace Magento's native contact form?

Yes. When the module is enabled, the /contact URL is handled by Panth Advanced Contact Us and the stock Magento_Contact form is bypassed. Disable the module to revert to the native form — no data loss.

Can I add more than 3 custom tabs?

Yes. Both CMS block tabs and attribute tabs support unlimited entries. Add as many as your product requires.

Does Smart Badge slow down my category pages?

No. Badge lookups are indexed and cached per product + store view + customer group, and badge rendering is pure CSS. Typical overhead is under 5ms on listing pages.

Does this module override Magento's `cms/noroute/index` controller?

No. It uses Magento's standard layout update mechanism to replace the block under the content container. The controller itself is untouched.

What triggers a price drop alert?

Any reduction in the final displayed price for the store view where the customer subscribed — catalog regular price, special price, catalog price rule discount, tier pricing, or group pricing. The module compares the current final price against the baseline captured at subscription time.

Will this slow down my storefront?

No. The head block is cacheable="true" so the full JSON-LD payload is baked into full-page cache. Providers only run on uncached renders; cached hits serve the pre-rendered <script> tag with zero PHP evaluation.

Does this replace Magento's default product gallery?

Yes, on the product detail page. When the module is enabled, the default gallery.phtml is replaced with the Panth gallery (one template for Hyva, another for Luma — chosen automatically).

Does Panth Search Autocomplete work with Elasticsearch and OpenSearch?

Yes. The module is engine-agnostic — it uses whatever Magento is configured with (Elasticsearch 7, Elasticsearch 8, OpenSearch 1.x/2.x, or the MySQL fallback). No extra setup required.

Will this overwrite my custom image labels?

No. Merchant-authored labels (anything other than empty, the product name, Image, main product photo, or the raw filename) are preserved. Only Magento's default placeholders get upgraded to template output.

How is this different from Magento's native "file" custom option?

Native file custom options are tied to the cart quote item and don't persist cleanly as a first-class order record. Panth Order Attachments creates dedicated panth_quote_attachment and panth_order_attachment tables, linked to the sales order item, ensuring files remain accessible for the full order lifetime — including reorders, invoices, and RMAs.

Need this customised?

Talk to Kishan directly — written quote, scope and timeline within 24 hours. No sales call.

WhatsApp

Order File Attachments for Magento 2

$0.00
Step up

Customers usually upgrade to