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.
Version 1.8.1 - 2026-02-17
- Added mass action "Resend" in notification grid to requeue selected notifications
- 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 email notification recipient filtering when both specific customers and customer groups are assigned
Version 1.8.0 - 2026-02-13
- Added product-level document assignments with store view scoping and new Downloads tab at product detail page
- 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
- Unified download validation logic across endpoints for more consistent behavior
Version 1.7.5 - 2025-12-12
- 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 website scoping for customer documents (Website Field and "All Websites" Option)
- Added Export and Filter to Customer ->Documents section
- 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 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 config path enable_sidebar in Block/Sidebar class
Version 1.7.1 - 2025-11-09
- 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 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
- 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 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 feature to use external links for document downloads instead of uploaded documents
- Fixed issue on fresh installation with obsolete customer group colum check
Version 1.5.3 - 2025-08-08
- Fixed small issues with PHP 8.4 compatibility
Version 1.5.2 - 2025-07-27
- Added PHP 8.4 compatibility
- Fixed an issue with incrementDownloadsCounter
Version 1.5.1 - 2025-07-22
- Added suggest entry to composer.json referencing the CustomerDocuments Sample Data package for easier onboarding
- Show download as ZIP file option only if customer has access to at least one document
Version 1.5.0 - 2025-06-22
- 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 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 issue with back button in admin area (customer documents form, customer documents category form)
Version 1.4.5 - 2025-06-11
- Fixed issue accessing the customer documents category menu in admin area
Version 1.4.4 - 2025-06-06
- Fixed issue when creating document and customers/customer groups within the same request
Version 1.4.3 - 2025-05-28
- 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 link "My Documents" in the customer head section (store config, enabled by default)
Version 1.4.1 - 2025-05-07
- Added Public URL on Admin UI Form to copy & paste the URL easily
- Added DB column created_at to email notification table
- 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 "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 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 issue with sorting parameters in frontend My Documents section
Version 1.3.1 - 2024-10-25
- Changed logic of email store: Now, the store for the selected template will be fetched from the customer's store_id
- 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 fulltext search in customer documents admin grid
- Added pager and limit feature for frontend customer documents grid
- 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 issue with Cronjob DeleteMissingFiles
Version 1.2.0 - 2024-09-24
- 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 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
- Removed action columns for Download Report menu
Version 1.1.6 - 2024-08-07
- Fixed icon issue on Download Report menu in admin area
Version 1.1.5 - 2024-07-22
- Updated README.md
Version 1.1.4 - 2024-05-17
- 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
- PHP 8.2 compatibility bugfixes
- Improved email template
Version 1.1.2 - 2024-03-06
- PHP docs
Version 1.1.1 - 2023-09-24
Version 1.1.0 - 2023-08-29
- Added a store config "Enable Sidebar" - only if store config is enabled, sidebar block will be rendered
- 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 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
- replaced setFrom() method with setFromByScope()
Version 1.0.9 - 2022-10-14
- Added uninstall routine
Version 1.0.8 - 2022-08-03
- PHP8 Compatibility bugfixes
Version 1.0.7 - 2022-05-17
- Field updated_at added
- Added password on document grid
- Removed new button from report grid
Version 1.0.6 - 2022-04-23
- Composer.json bugfixes
Version 1.6.1 - 2026-03-11
- 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 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 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 compatibility to mageb2b/customerdocuments 1.7.3 (tag implementation)
- Fixed issue on export.xml file
Version 1.5.2 - 2025-10-28
- 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 README.md and CHANGELOG.md
Version 1.5.0 - 2025-06-20
- Added compatibility with customerdocuments 1.5.0
Version 1.4.0 - 2025-04-29
- 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
- Downgraded to version 1.3.1
Version 1.3.0 - 2024-10-03
- Changed version constraint for new version
- Import changes especially for customer group table change
Version 1.2.0 - 2024-08-07
- Version 1.2.0 which will support new MageB2B_CustomerDocuments 1.2.0 (classes were removed)
Version 1.0.4 - 2024-03-06
- Changed homepage in composer.json
Version 1.0.3 - 2023-11-09
- Fixed undefined issue on variable
Version 1.0.2 - 2022-12-28
- Fixed undefined constant issue on sample file download
Version 1.0.1 - 2022-07-29
- fixed composer.json, bump version to 1.0.1
Version 1.0.0 - 2022-05-14
- Added dependency for package mageb2b/customerdocuments inside composer.json
- Output validation errors on CLI import
- Updated import class to add updated_at column
- Replaced MageBTB->MageB2B
- MageBTB_CustomerDocumentsImportExport ->MageB2B_CustomerDocumentsImportExport
Version 1.4.3 - 2026-02-13
- Added new endpoints for document product assignment feature
Version 1.4.2 - 2025-07-05
- 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 new webapi routes
- Add version constraint for new api definitions
Version 1.2.0 - 2024-08-08
- Added new API routes for customer link feature
Version 1.0.1 - 2024-03-06
- Fixed homepage on composer.json
- Updated copyright info
Version 1.0.0 - 2022-05-12
- Initial version of mageb2b/customerdocuments-api
Version 1.1.2 - 2026-02-24
- Added dedicated view models for product downloads, linked documents, and tag URL handling in Hyva templates
- 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
- Hyva compatibility for product page document downloads
- 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
- 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
- Initial version
Use document access settings to assign individual customers and/or customer groups. Private documents are visible only after login.
Yes. Enable the Is Public option to generate a public download link. You can also set an additional password.
Enable password protection on each document. Optionally, obfuscated filenames can make file guessing harder.
Yes. Use Valid From and Valid To to define when a document is visible and downloadable.
Yes. With ZIP download enabled, customers can download multiple approved and internally hosted documents in a single archive.
In the customer account under My Documents. You can also surface documents in navigation or additional page areas.
Use filename-based linking rules so matching documents appear automatically in the related order context.
Assign documents directly to products. Approved files then appear in the document section on the product page.
Yes. Download events are recorded so retrieval can be traced and evaluated.
Yes. Documents can be stored as external URLs. Allowed domains can be restricted in configuration if needed.
Block the document folder at web server level, for example in Apache or Nginx. Documents should be provided only through protected shop download links.
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.
Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.
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.
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.
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.
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.
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.
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.
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