Magento 2 ExtensionCustomer Documents

Document delivery in customer accounts and on product pages with precise access control, password protection, time windows, and rule-based assignment to orders.

Customer Documents for Magento 2 centralizes the delivery of important documents in your store. You can provide invoices, contracts, manuals, and records in a structured way and control access for different customer segments in both B2B and B2C scenarios.

Precise access control: Assign documents to individual customers, customer groups, or public access. With validity periods, you control exactly when documents are visible and downloadable.

Product-related documents: Documents can be assigned directly to products and appear on the product detail page in the download area. This places technical documents exactly where customers need them.

Secure download process: Sensitive documents can be protected with passwords. Optional filename obfuscation makes guessing files harder. Documents are delivered through protected shop download links instead of publicly visible file paths.

Linking to order processes: Documents can be linked automatically to orders, invoices, or shipments. This allows customers to find relevant files directly in the related process view.

Operations and service: Automated email notifications inform customers about newly available documents. ZIP bulk download helps customers retrieve multiple files quickly.

Precise Access Control by Customer and Group

Define access per document by customer or customer group. This keeps sensitive content protected while approved files remain easy to access.

Documents Directly on Product Detail Pages

Assign documents to products so customers can download manuals, datasheets, and instructions directly on the product page once visibility and access rules are met.

Automatic Assignment to Orders, Invoices, and Shipments

Link documents automatically to order data. This reduces support follow-up and speeds up service processes.

Password Protection and Time Windows for Sensitive Content

Protect individual documents with passwords and control availability with validity periods.

Automated Document Notifications

Notify customers automatically by email when new documents are available, with clear visibility into delivery status and failures.

ZIP Bulk Download for Multiple Documents

Customers can download multiple approved documents as one ZIP package, improving the experience for larger document sets.

  • Current Version1.8.1
  • Compatible with Magento 2.4.6 - 2.4.8
  • Compatible with PHP 8.1 - 8.5

If your environment differs from the listed requirements, we can check compatibility in advance. Please contact us via our contact form.

customerdocuments

Version 1.8.1 - 2026-02-17

Added
  • Added mass action "Resend" in notification grid to requeue selected notifications
Changed
  • Changed notification grid column from "Document ID" to "Document" and display document name
  • Standardized customer account protection for frontend account pages
  • Highlight selected tag filter in frontend "My Documents" tag cloud
Fixed
  • Fixed email notification recipient filtering when both specific customers and customer groups are assigned

Version 1.8.0 - 2026-02-13

Added
  • Added product-level document assignments with store view scoping and new Downloads tab at product detail page
Fixed
  • Private documents now enforce access rights and download limits before delivery
  • Fixed cron notification timestamps and error handling when a document no longer exists
  • Fixed document linking cron to process in batches and avoid heavy memory usage
Changed
  • Unified download validation logic across endpoints for more consistent behavior

Version 1.7.5 - 2025-12-12

Fixed
  • Fixed error on admin Customer Documents grid when categories are empty
  • Fixed admin Customer Documents grid filters for "Customer Emails" and "Customer Groups" columns not working

Version 1.7.4 - 2025-12-08

Added
  • Added website scoping for customer documents (Website Field and "All Websites" Option)
Changed
  • Added Export and Filter to Customer ->Documents section
Fixed
  • Fixed PHP 8.4 deprecation warning by explicitly marking the `$pool` constructor parameter in `Ui\DataProvider\Document\DataProvider` as nullable

Version 1.7.3 - 2025-12-07

Added
  • Added Customer ->Documents section in admin area to view assigned documents
  • Added tag management system with admin CRUD interface, tag chips in document form, and frontend tag cloud filtering
  • Added column visibility configuration for frontend document grid (multiselect in admin to show/hide columns)

Version 1.7.2 - 2025-11-13

Fixed
  • Fixed config path enable_sidebar in Block/Sidebar class

Version 1.7.1 - 2025-11-09

Fixed
  • My documents layout: use cards on mobile viewport
  • Escaping: sanitized unescaped values (name, category, description, and category headers) in frontend grid templates to prevent XSS
  • Configuration scope: ensured store/website scope is respected by using SCOPE_STORE for frontend config reads (links, grid options, upload path, allowed extensions, external domain whitelist, email settings)
  • Sidebar visibility: customer account navigation link now respects "Enable at sidebar" via layout `ifconfig` and additionally hidden when module is disabled
  • Head link visibility: header "My Documents" link is hidden unless both the module is active and the head link is enabled
  • Disabled module redirects: improved grammar for the disabled-extension message and ensured controllers read module status per store scope

Version 1.7.0 - 2025-11-02

Added
  • Added rate limiting for document downloads (5 downloads per hour) using cache-based implementation with IP tracking for guest users and customer ID tracking for logged-in users
  • Added CSRF protection for POST requests in CheckDownload controller using FormKeyValidator
  • Added request-level caching for access rights checks to prevent redundant database queries during the same request
  • Added composite database indexes to optimize queries on relation tables (document_id + customer_id, document_id + customer_group_id, document_id + customer_id + downloaded_at)
  • Added configuration option for maximum upload file size (MB) in system config
  • Added configuration option for maximum email attachment size (MB) in system config
  • Added MIME type validation using setValidateCallback() in file uploader for better security
  • Added security warning for external URL configuration in admin system config
  • Added temporary directory writability check for ZIP download functionality
  • Added PathColumn UI component to display external URL when path is empty in admin grid
  • Added delete confirmation dialogs for admin grid actions in both documents and categories listing
Changed
  • Replaced all date() calls with Magento DateTime helper (gmtDate) for proper timezone handling and consistency
  • Improved admin documents grid to show customer emails instead of customer IDs
  • Improved admin documents grid to show customer group codes instead of customer group IDs
  • Changed admin grid path column label to "Path / External URL" to better reflect its dual purpose
  • Email attachment logic now respects configurable maximum attachment size
Fixed
  • Fixed N+1 query issue in document collection by implementing eager loading using GROUP_CONCAT and _afterLoad() hook
  • Fixed 12-hour time format bug (h:i:s) in document creation timestamp, now correctly uses 24-hour format (H:i:s)
  • Fixed URL encoding in frontend search functionality
  • Improved error messages throughout the extension to be more specific instead of generic

Version 1.6.0 - 2025-10-17

Added
  • Added feature to use external links for document downloads instead of uploaded documents
Fixed
  • Fixed issue on fresh installation with obsolete customer group colum check

Version 1.5.3 - 2025-08-08

Fixed
  • Fixed small issues with PHP 8.4 compatibility

Version 1.5.2 - 2025-07-27

Added
  • Added PHP 8.4 compatibility
Fixed
  • Fixed an issue with incrementDownloadsCounter

Version 1.5.1 - 2025-07-22

Added
  • Added suggest entry to composer.json referencing the CustomerDocuments Sample Data package for easier onboarding
Fixed
  • Show download as ZIP file option only if customer has access to at least one document

Version 1.5.0 - 2025-06-22

Added
  • Added a configuration obscure_filename to obscure the filename (e.g., `file_64e1f8a9c3b4a.pdf`) when downloading a document - this adds an additional layer of security to prevent direct access to files by their original names
  • Added feature to restrict a document within dates (valid from date & valid to date) - disabled by default
  • Added instructions in README.md for web server configuration to block direct access to the document folder for enhanced security
Changed
  • Changed the public download path to `/customerdocuments/download/file?id=document_id&password=password` , please make sure to update your public download links accordingly
  • Removed the resync upload path functionality and config button, as it is replaced by observer logic
  • Improved display for public download URL in customer document form in admin area, now it shows the full URL with the document ID and password dynamically
  • Removed some redundant functions and methods in the codebase to streamline the extension
Fixed
  • Fixed issue with back button in admin area (customer documents form, customer documents category form)

Version 1.4.5 - 2025-06-11

Fixed
  • Fixed issue accessing the customer documents category menu in admin area

Version 1.4.4 - 2025-06-06

Fixed
  • Fixed issue when creating document and customers/customer groups within the same request

Version 1.4.3 - 2025-05-28

Added
  • Added feature to download all documents as ZIP file (the password protected files, if any, will be automatically excluded) - disabled by default

Version 1.4.2 - 2025-05-22

Added
  • Added link "My Documents" in the customer head section (store config, enabled by default)

Version 1.4.1 - 2025-05-07

Added
  • Added Public URL on Admin UI Form to copy & paste the URL easily
Changed
  • Added DB column created_at to email notification table
Fixed
  • Fixed error message shown when customer document file was deleted in edit form
  • Fixed wrong error message on public download when password was not provided
  • Fixed sorting issue under My Documents
  • Fixed incorrect value display for "Is Public" under My Documents

Version 1.4.0 - 2025-04-29

Added
  • Added "Max Downloads" attribute to define a maximum number of allowed downloads per document
  • Added added email notification table to check if any errors occured during sending process
  • Added system store config option to directly add document as attachment inside the email
Changed
  • Changed email to queue processing using cronjob
  • Refactored complete Admin UI using UI forms
  • Changed Category, Customer and CustomerGroup Classes/Models to add prefix "Document" (CustomerRepository -> DocumentCustomerRepository)

Version 1.3.2 - 2024-12-30

Fixed
  • Fixed issue with sorting parameters in frontend My Documents section

Version 1.3.1 - 2024-10-25

Changed
  • Changed logic of email store: Now, the store for the selected template will be fetched from the customer's store_id
Fixed
  • PHP 8.3 compatibility bugfixes
  • Fixed ambigious column issue in customer documents grid
  • Fixed sorting issue in customer documents grid

Version 1.3.0 - 2024-10-07

Added
  • Added fulltext search in customer documents admin grid
  • Added pager and limit feature for frontend customer documents grid
Changed
  • Moved the customer_group values (previously stored as comma-separated values) into a dedicated relation table customer_document_customer_group for better data management
  • Added a data migration patch to transfer existing customer group data into the new relation table
  • Improved performance when handling large datasets by optimizing database queries and reducing memory usage
  • Changed System class for displaying extension information
Fixed
  • Fixed issue with Cronjob DeleteMissingFiles

Version 1.2.0 - 2024-09-24

Added
  • Added link entity: Now customer documents can be linked to any entity in Magento 2, e.g. orders or invoices
  • Added automatic cronjob to connect the documents based on defined patterns (defined in the system configuration)
  • Added functionality to both use password protection and public document (see README.md for further instructions)
  • Added feature to show documents per category, added system configuration
  • Added system configuration: Show Document Name
  • Added system configuration: Show Password Notice
  • Added system configuration: Delete Missing Files (Cronjob)
  • Added support for Magento_RemoteStorage (by using Filesystem method of Magento 2)
  • Added Magento_CSP Compatibility (works for Magento 2.4.7 onwards)
Changed
  • Changed to a more secure approach for password protected documents
  • Changed config paths (a Patch will automatically move your settings)
  • Removed MageB2B\CustomerDocuments\Helper\Common (in favor of Helper\Data class)
  • Removed MageB2B\CustomerDocuments\Helper\Config (in favor of Magento\Framework\App\Config\ScopeConfigInterface class)
  • Removed MageB2B\CustomerDocuments\Helper\Logger (in favor of \Psr\Log\LoggerInterface class)
  • Renamed "Publicly Available" to "Is Public"
  • Use yesnoSource Class for Customer Document Form
Fixed
  • Removed action columns for Download Report menu

Version 1.1.6 - 2024-08-07

Fixed
  • Fixed icon issue on Download Report menu in admin area

Version 1.1.5 - 2024-07-22

Added
  • Updated README.md

Version 1.1.4 - 2024-05-17

Added
  • Added patch to add General category if it doesnt exist (to avoid issue when accessing category grid in admin with empty categories)

Version 1.1.3 - 2024-04-22

Fixed
  • PHP 8.2 compatibility bugfixes
Changed
  • Improved email template

Version 1.1.2 - 2024-03-06

Changed
  • PHP docs

Version 1.1.1 - 2023-09-24

Version 1.1.0 - 2023-08-29

Added
  • Added a store config "Enable Sidebar" - only if store config is enabled, sidebar block will be rendered
Fixed
  • Fixed various issues around grid filter, added category dropdown filter instead of text
  • Fixed mass action delete on grid

Version 1.0.11 - 2023-03-03

Added
  • Added a button "resync upload path" to resync the upload path after changed, so every file will be moved automatically

Version 1.0.10 - 2023-01-24

Changed
  • replaced setFrom() method with setFromByScope()

Version 1.0.9 - 2022-10-14

Fixed
  • Added uninstall routine

Version 1.0.8 - 2022-08-03

Fixed
  • PHP8 Compatibility bugfixes

Version 1.0.7 - 2022-05-17

Added
  • Field updated_at added
  • Added password on document grid
Fixed
  • Removed new button from report grid

Version 1.0.6 - 2022-04-23

Fixed
  • Composer.json bugfixes
customerdocuments-importexport

Version 1.6.1 - 2026-03-11

Fixed
  • Fixed export to properly handle `customer_ids` and `customer_group_ids` as arrays (not strings) in Document model

Version 1.6.0 - 2026-02-13

Added
  • Added CSV column `product_links` to import and export product assignments in format `sku@store_code@position|...`
  • Added validation for product links (SKU/store-code checks)
Fixed
  • Fixed import updates with existing `id` and empty `path` (keeps current document file path)
  • Replaced direct `date()` usage with Magento DateTime helper timestamps for import defaults

Version 1.5.3 - 2025-12-07

Added
  • Added compatibility to mageb2b/customerdocuments 1.7.3 (tag implementation)
Fixed
  • Fixed issue on export.xml file

Version 1.5.2 - 2025-10-28

Fixed
  • Return a proper download response for the sample file so the browser saves the file instead of rendering it inline

Version 1.5.1 - 2025-07-06

Added
  • Added README.md and CHANGELOG.md

Version 1.5.0 - 2025-06-20

Added
  • Added compatibility with customerdocuments 1.5.0

Version 1.4.0 - 2025-04-29

Added
  • Added compatibility with customerdocuments 1.4.0, added send_email flag and functionality to queue emails from import

Version 1.3.1 - 2025-04-16

Changed
  • Downgraded to version 1.3.1

Version 1.3.0 - 2024-10-03

Changed
  • Changed version constraint for new version
  • Import changes especially for customer group table change

Version 1.2.0 - 2024-08-07

Changed
  • Version 1.2.0 which will support new MageB2B_CustomerDocuments 1.2.0 (classes were removed)

Version 1.0.4 - 2024-03-06

Changed
  • Changed homepage in composer.json

Version 1.0.3 - 2023-11-09

Fixed
  • Fixed undefined issue on variable

Version 1.0.2 - 2022-12-28

Fixed
  • Fixed undefined constant issue on sample file download

Version 1.0.1 - 2022-07-29

Fixed
  • fixed composer.json, bump version to 1.0.1

Version 1.0.0 - 2022-05-14

Added
  • Added dependency for package mageb2b/customerdocuments inside composer.json
  • Output validation errors on CLI import
Changed
  • Updated import class to add updated_at column
  • Replaced MageBTB->MageB2B
  • MageBTB_CustomerDocumentsImportExport ->MageB2B_CustomerDocumentsImportExport
customerdocuments-api

Version 1.4.3 - 2026-02-13

Added
  • Added new endpoints for document product assignment feature

Version 1.4.2 - 2025-07-05

Fixed
  • Fixed CHANGELOG.md

Version 1.4.1 - 2025-07-05

Version 1.4.0 - 2025-05-20

Version 1.3.0 - 2024-10-03

Added
  • Added new webapi routes
Changed
  • Add version constraint for new api definitions

Version 1.2.0 - 2024-08-08

Added
  • Added new API routes for customer link feature

Version 1.0.1 - 2024-03-06

Fixed
  • Fixed homepage on composer.json
Changed
  • Updated copyright info

Version 1.0.0 - 2022-05-12

Added
  • Initial version of mageb2b/customerdocuments-api
customerdocuments-graph-ql

Version 1.0.0 - 2026-02-23

Added
  • Initial release
customerdocuments-hyva

Version 1.1.2 - 2026-02-24

Added
  • Added dedicated view models for product downloads, linked documents, and tag URL handling in Hyva templates
Fixed
  • Fixed Hyva linked document download flow by aligning template bindings with the Hyva download component
  • Fixed tag filter URL handling to keep a single `search[tags]` parameter

Version 1.1.1 - 2026-02-18

Added
  • Hyva compatibility for product page document downloads
Changed
  • Updated compatibility baseline for mageb2b/customerdocuments 1.8.1
  • Aligned module dependency sequencing for Hyva compatibility fallback loading

Version 1.1.0 - 2025-12-07

Added
  • Compability to mageb2b/customerdocuments 1.7.3
  • Added tag search field and visual tag cloud with Tailwind CSS styling
  • Added column visibility support for frontend document grid (conditional rendering based on configuration)

Version 1.0.0 - 2025-06-13

Added
  • Initial version
Module-Specific Questions
How do I restrict documents to specific customers or groups?

Use document access settings to assign individual customers and/or customer groups. Private documents are visible only after login.

Can I share public download links?

Yes. Enable the Is Public option to generate a public download link. You can also set an additional password.

How can I add extra protection for sensitive documents?

Enable password protection on each document. Optionally, obfuscated filenames can make file guessing harder.

Can I limit documents by time period?

Yes. Use Valid From and Valid To to define when a document is visible and downloadable.

Is there a bulk download for multiple files?

Yes. With ZIP download enabled, customers can download multiple approved and internally hosted documents in a single archive.

Where do customers see their documents?

In the customer account under My Documents. You can also surface documents in navigation or additional page areas.

How do I link documents to orders, invoices, or shipments?

Use filename-based linking rules so matching documents appear automatically in the related order context.

How do I show documents on product detail pages?

Assign documents directly to products. Approved files then appear in the document section on the product page.

Are downloads tracked?

Yes. Download events are recorded so retrieval can be traced and evaluated.

Can I use external document URLs instead of file uploads?

Yes. Documents can be stored as external URLs. Allowed domains can be restricted in configuration if needed.

How can I prevent direct file access on the server?

Block the document folder at web server level, for example in Apache or Nginx. Documents should be provided only through protected shop download links.

General Questions
How many Magento installations is the license valid for?

The license is valid for one Magento installation, including multi-website operation. In addition, the module may be installed on any number of development or staging servers. You can find further details in our license terms.

Is installation included in the price?

Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.

What payment methods are available?

You can pay by credit card (Stripe) or bank transfer (prepayment). For credit card payments, the order is processed immediately and the access credentials are provided directly in a separate follow-up email.

What does the order process look like?

After credit card payment, you immediately receive access credentials to obtain the module via Composer. For bank transfer, access is granted once the invoice is paid.

I need a custom modification of the module. Is that possible?

Custom requests are no problem. We tailor our Magento 2 modules to your project and maintain a dedicated internal version so we always know exactly what runs on your system for support.

Can I install a demo version locally?

On each module detail page, you can request your own demo instance and test the module intensively for 7 days. However, we do not provide a local demo version.

Is the source code encrypted?

No, the source code of our modules is not encrypted. If you need a customization, feel free to send us a request. We will get back to you promptly with a non-binding quote.

What is the update policy and support?

You can add a support package to your order. It includes assistance as well as updates and upgrades related to the module. No continuous subscription is required.

I already have a license. How can I perform an update?

You can complete the license update here. If you have an active support package, you receive updates automatically via Composer. If your support package has expired, you can renew your license here or in your account.

I have another question — how can I contact you?

You can reach us anytime via eMail.

Customer Documents

×

Ideal for these industries & use cases

Automated Invoice Distribution

Link invoices to orders automatically through filename patterns. Customers can access all relevant files from one central account area.

Secure Contract Delivery

Deliver confidential contracts with password protection and time-limited access. Downloads remain transparent and traceable.

Technical Documents on Product Pages

Provide manuals, datasheets, and instructions directly on product detail pages and reduce support requests.

Traceable Download History for Audit Processes

Track document downloads transparently and support internal review processes with clear retrieval history. Full compliance requirements still require additional organizational policies.

Order Confirmations and Delivery Notes

Link order-related documents to orders, invoices, and shipments so customers can find all information in one place.

Onboarding with Digital Documents

Provide setup materials, process guides, and instructions to new customers in a structured way and reduce onboarding time.

Try it without risk

Request a personal demo instance and evaluate the module directly in backend and frontend under real conditions — without local installation.

For developers

Practical Magento 2 guides, technical developer documentation, and API references (REST, SOAP, GraphQL) for installation, configuration, and troubleshooting.

Go to Knowledge Base