Skip to main content

Changelog

What's new in Digital Content Manager? Every feature, fix and change is listed here. Filter by type and area to see what changed and where.

FeatureDocumentation

Search the Documentation

The documentation now has a search bar, so you can find the page or section you need by typing what you're looking for.

  • The search bar sits at the top of the sidebar on every documentation page, just above Getting Started. On a phone, open the menu to find it.
  • Press ⌘K (Ctrl+K on Windows) to jump straight to it.
  • Results update as you type and take you straight to the matching section, with your search terms highlighted on the page.
  • Small typos are forgiven, and different forms of a word match, so 'refund' also finds 'refunds' and 'refunded'.
  • Select 'See all results' for the full list of matches.
FeatureDocumentation

All-New Documentation

The documentation has been rewritten from the ground up, with a page for every feature, from first setup to returns, chargebacks and settings.

  • Every area of the app has its own section (Orders, Products, Content, License Keys, Analytics, Settings and Miscellaneous), each opening with an overview of how that part of the app works.
  • Pages are organized around what you want to do, such as 'Editing an Order', 'Revoke Customer Access', 'Returning and Restocking Keys' or 'Updating Content', rather than around pages in the app.
  • New pages cover features that weren't documented before, including customer activity tracking, key history and metadata, importing and exporting, alerts, analytics, staff permissions, and every global and checkout extension setting.
  • Each setting shows its default, and whether its message supports dynamic text feature.
  • Outdated information has been corrected. Download limits and time limits are set per piece of content, and limit downloads only, never license key reveals.
FixAdmin

Consistent Terminology Across the App

All domain-specific terms (e.g., key statuses, product types, and statistics) now have the same name across the entire app.

  • Unified and consistent terminology across the app. This ensures that users encounter the same terms and labels in every context, reducing confusion and improving the overall user experience.
  • Fixed a handful of typos and capitalization inconsistencies across the app.
FixAdminContent

Clearer Status on Linked Content and Linked Resources

The Status column on the order, product, and content pages now answers one question consistently: does the customer have access to this content?

  • Status is now one of 'Available', 'Unlinked', 'Access Revoked', 'Returned', 'Content Disabled', or 'Product Disabled' / 'Variant Disabled', and each label provides a detailed description of why the content is in that state.
  • When more than one thing blocks a row, the badge names the most specific cause and adds '+1' (or more) for the rest, with every reason listed on hover.
  • Access revoked for a whole line item and access revoked for one piece of content are listed separately, because restoring one does not restore the other.
FeatureOrdersContent

Revoke Access to Individual Pieces of Content

Access can now be revoked for a single piece of content on a single line item, instead of only for a whole line item or a whole order.

  • Each row in a line item's Linked Content table has new 'Revoke Access' and 'Restore Access' actions, available from order edit.
  • Revoking affects that one line item only. Content linked to a product or variant stays linked to it, and every other order for that product keeps its access.
  • This is now the way to take product or variant linked content away from a single order. Rows with access revoked show an 'Access Revoked' badge.
  • Customers no longer see revoked content on their order status page. If every piece of content on a line item has been revoked, its download button is disabled with the 'No Content Available to Download' message.
  • Download links a customer already has stop working as soon as access is revoked, including bookmarked links and pages left open.
  • Unlink Content is no longer available on order edit for product or variant linked content. Unlinking it there would have removed the content from every order for that product, including past orders. Unlink it from the product, variant, or content page instead, or revoke access to remove it from just one order. Content linked directly to a line item can still be unlinked from order edit.
FeatureOrders

Order Page User Experience Improvements

The license keys and linked content sections on the order page are now tables, with reveal logs and download logs nested under the key or content they belong to.

  • License keys on a line item are now one table with a row per key, instead of a separate card and log table for each key. Each key shows a status badge (Assigned, Returned, Restocked, or Deleted) with a hover explaining what it means and when it happened.
  • Restocked keys now appear in that table with a 'Restocked' status, replacing the separate 'Restocked Keys' list.
  • To make the UI less noisy, a key's reveal logs are hidden until you click its reveal count, and then open as a table directly beneath that key.
  • Download logs have moved out of their own section and into the Linked Content table. Click the downloads count on a piece of content to see the downloads behind that number, nested under it.
  • To avoid losing order history, Content that was unlinked from the order after it was downloaded now appears in the Linked Content table with an 'Unlinked' status and all of its download logs still visible.
  • A new 'Expand All Logs' action in the Actions menu opens every reveal log and download log on the order at once for easier review and screenshot capture.
  • The order edit page now uses the same tables, so keys and content stay in the same place when you switch between viewing and editing.
FixLicense Keys

Deleted Keys Keep Their History

Deleting a license key that was assigned to an order or revealed no longer erases its history, reveal logs, or the analytics built from them.

  • License keys that were never assigned or revealed are still permanently deleted.
  • License keys that were assigned, revealed, returned, or restocked are now marked as deleted instead. Customers can no longer view them and they can never be assigned to another order, but their history, reveal logs (useful as chargeback evidence), and statistics are kept.
  • Deleted keys show a 'Deleted' badge on order pages and on the license key page.
  • Deleting a key now adds a 'Deleted' event to the key's history with who deleted it.
  • Use the new 'Is Deleted' filter on the License Keys table to find deleted keys. Deleted keys are read only.
FixContent

Preventing Content From Being Linked Twice

Content can no longer be linked more than once to the same product, variant, or line item, including when a line item would receive the same content through its product or variant.

  • Linking content that is already linked no longer creates a second link. Everything else you selected is still linked and the duplicates are skipped.
  • The confirmation message now tells you how many links were created and how many were skipped because they were already linked.
  • Linking content to a product or variant when some of its order line items already have that content linked directly to the line item now replaces those line item links. Customer download limits, download limit resets, time limits, and download history all carry over, so access does not change.
  • Duplicate links are now prevented client and server side, so linking from an out of date page can no longer create duplicate links.
FixAdmin

Faster Search on Orders, Products, License Keys, and Content Tables

Fixed slow searches and timeouts on table search bars, especially for stores with a large number of orders.

  • Searching the orders table by an order ID or order name is now much faster, and searches that previously potentially timed out now complete.
  • Searching by an exact Shopify Order ID or order name (e.g. '#1001') now returns that order directly instead of also returning partial matches.
  • Searching the products table by an exact Shopify Product ID or Variant ID now returns that product directly.
  • Search bars on the Orders, Products, License Keys, and Content tables now wait until you stop typing before searching, instead of searching on every keystroke.
FixOrdersLicense Keys

Fixed License Keys Being Assigned or Restocked on Orders From Before the App Was Installed

Fixed an issue where orders created before your store installed the app could be automatically created, assigned license keys, or have their keys restocked.

  • Previously, reconciliation and Shopify events (order paid, refunds, returns, chargebacks) could bring in old orders and pull keys from your inventory for orders that may have already been fulfilled another way.
  • Previously, keys on old orders could be restocked even though the app can't know if they were previously revealed, which could put a used key back into your inventory.
  • Orders from before the app was installed are no longer added automatically. They can still be brought in with 'Manual Import' and are imported without license keys so you can assign them manually.
  • Imported orders from before the app was installed still stay in sync with Shopify, but license keys are never automatically assigned or restocked.
  • If a new line item is added to one of the 'before app installation' orders in Shopify, keys are assigned and a warning alert is created so you can confirm it was expected.
FeatureAdmin

Metrics bar on all resource pages

Every resource page now has a metrics bar with useful stats about the resource(s)

  • Orders Page, Products Page, License Keys Page, Variants Page, etc all updated to have metrics bars in the header of the page.
  • Metrics bars on table pages take the filters and queries into account for the derived statistics.
  • Clicking an individual metric will filter the table to show the specific resources related to that statistic.
  • Some metrics have been updated to show total | % to give more informative insights.
FeatureProducts

Added additional products table filters

Updated the products table with new filters and correcting old filters.

  • Removed some old stale filters that no longer apply to the way products are managed in the app.
  • Added new 'Product Type' filter to the products table, allowing shop owners to filter by Download Only, Download & License, Multiple Variant Products.
FeatureLicense Keys

Added return and bulk return actions

Added bulk return and individual return actions to the license keys table and page.

  • Added bulk return action to the license keys table, allowing shop owners to return multiple license keys at once.
  • Added individual return and undo return actions to the license keys page, allowing shop owners to return a single license key if it is currently assigned and undo a returned license key if it is currently marked as returned.
  • Return and Restock bulk action modals were updated to be context aware and filter the selected license keys to only those applicable for the action. Both modals were also updated to show which license keys will be affected by the action.
FeatureSettingsContentOrders

Order Tag Content Downloads

Added a new 'Order Tag Content Downloads' setting that allows shop owners to add custom order tags to orders when customers download content.

  • This setting allows shop owners to add custom order tags to orders when customers download content. This can be useful for tracking downloaded orders, as a branching variable or trigger in automated flows, or for any other purpose that requires custom order tags.
  • The setting is available in the settings page under 'Global -> Order Tag - Content Downloads'.
FixExtensionLicense Keys

Fixed Reveal Key Button When No Keys Are Available

Fixed an issue where the reveal key button in certain scenarios would allow customers to click into it, and then throw an error when a line item had no available license keys.

  • The reveal key button is now disabled with an explanatory message when a line item has no available license keys to reveal, instead of surfacing a generic error to the customer.
  • This can happen when license keys were manually removed from an order, or when the license pool didn't have any available keys at the time of purchase.
  • Also fixed the reveal key button's availability check, which was incorrectly treating a line item as having available keys even when all of its keys had already been returned.
FeatureAdminOnboarding

New Setup Guide

Added a new setup guide to help users complete the onboarding process.

  • The setup guide walks users through adding content, configuring their first product, configuring settings, adding the extension to checkout, and processing their first order.
  • Each step includes a list of bullets explaining the step, and an action button to help complete the step.
  • The setup guide automatically tracks progress and can be dismissed at any time. Additionally, the setup guide can be restored at any time via the support section 'Restore Setup Guide' button on the homepage.
FeatureLicense KeysProducts

Assigned License Key Statistic

Added a new statistic to the product/variant page that shows the number of assigned license keys for that product/variant.

  • Assigned license key statistic includes all license keys that have been assigned to line items, including license keys that have been revoked but are not restocked.
  • Product and Variant tables now have a new column that shows the number of assigned license keys for each product/variant. The tables are sortable by this new column, allowing shop owners to easily see which products/variants have the most assigned license keys.
  • The product and variant page now has a new statistic that shows the number of assigned license keys for that product/variant.
FixOrders

Fixed Last Updated Timestamp Accuracy

Fixed an issue where an order's 'Last Updated' timestamp did not reflect changes to its access status, or attached content.

  • An order's 'Last Updated' timestamp now updates whenever anything on the order changes, including revoking or restoring download access, and linking or removing content on a line item.
  • This helps shop owners know when an order was last modified, and helps with troubleshooting issues with orders.
FeatureAdminAnalytics

Custom Date Range Selector

Added a custom date range selector that allows users to choose their own date ranges.

  • Date Range selector allows for choosing a speicifc date range via calendar selection or typing in a date in 'YYYY-MM-DD' format.
  • New date range selector still provides the original presets of 'Last 7 Days', 'Last 30 Days', 'Last 90 Days', etc.
  • Date range selector is now unified across the entire app so that all locations that use date range selection will have the same expierience.
FeatureAnalytics

X Axis Grouping Selector

Added a grouping selector that allow users to pick the time dimension grouping for data.

  • New x-axis grouping selector allows users to pick between 'Daily', 'Weekly', 'Monthly', 'Quarterly' and 'Yearly'.
  • 'Daily' and 'Weekly' groupings will be shown as line charts. 'Monthly', 'Quarterly', and 'Yearly' groupings will be shown as bar charts.
FeatureAdminAnalytics

New Analytics Dashboard

Added a new analytics dashboard consisting of orders, content, and license key analytics.

  • Home page now displays a teaser 7-day analytics dashboard with a link to the full analytics dashboard.
  • New Analytics Tab, can be accessed from the main navigation under 'Analytics', or from the home page dashboard by clicking 'View More'.
  • Current dashboard supports date ranges of, 'Last 7 Days', 'Last 30 Days', 'Last 90 Days', 'This Year', 'Last Year' and 'All Time'. There are future plans to support a more flexible custom date range selection.
  • Orders Panel supports the following metrics: Orders over Time, Orders by Product, and Disputes by Product. The Orders and Disputes by Product pull the top 25 products. Disputes additionally support a return/chargeback rate display on hover to help the shop owner understand the dispute rate for each product.
  • Content Panel supports the following metrics: Downloads over Time, Downloads by Type, Bandwidth by Day, Storage by Day, Downloads by Content. The Downloads by Content panel pulls the top 25 content items.
  • License Panel supports the following metrics: Restocks and Returns over Time by Type, Restock and Return Savings over Time by Type, and Restock and Return by Product. The Restock and Return by Product panel pulls the top 25 products. The Savings panels calculate the savings based on the current price of the product.
FeatureExtensionLicense Keys

License Key Section Enhancements

Added clipboard copy icons to license keys and enhanced the overall UI of the license key section.

  • Added clipboard copy icons to license keys, allowing customers to easily copy their license keys to the clipboard.
  • Enhanced the license key section UI to be more prominent so that customers can easily find and access their license keys.
FeatureProducts

Enable Reminder

Added an enable product reminder banner to newly onboarded products.

  • Products are disabled by default in the app. This is so that shop owners can configure the products content, settings, and license keys before the product is available to customers.
  • Disabled by default can easily lead to shop owners forgetting to enable the product after configuration. This new reminder banner will help shop owners remember to enable the product after configuration is complete.
  • For Download Only products, the banner will be displayed as soon as the product has linked content.
  • For Download & License products, the banner will be displayed as soon as the product has linked content and at least one license key.
FeatureSettingsExtensionContent

Download Prevention Message

Added download prevention message setting, allowing custom messages to be displayed to customers before they download content.

  • Download Prevention message is a new setting that allows you to display a custom message to customers when they click the download button in the extension. This message can be used to provide additional information, instructions, or warnings to customers before they download content.
  • Supports 'Banner', and 'Modal' display types.
  • Supports dynamic text input.
FeatureContent

Supporting More Files

Added support for more file types and larger files for content.

  • This update allows for more flexibility in the types of content that can be offered to customers, including compressed files, audio files, and video files. etc.
  • Enhanced uploader to support larger files, fixing previous chunking bug that caused issues with larger files.
  • Added cleanup process to remove any failed and incomplete uploads, preventing users from having hidden storage usage from partial uploads.
FeatureSettingsExtension

New Extension Message Display Types

Added ability to display extension setting messages as a modal, popover, or banner.

  • In addition to previously being able to display extension setting messages as a banner, you can now display them as a modal or popover. This allows for more flexibility in how you want to display messages to your customers.
  • This feature is supported in the following settings... 'Customer Access - Content Download Limit', 'Customer Access - Content Time Expiration', 'Reveal Key Prevention', 'Return Message'.
  • The extension preview has been enhanced to more accurately model the actual customer accounts extension. Instead of just showing the message, the preview now shows a mock line item, as well as being interactive for popovers and modals.
FixOrders

Shopify Order Edits Processing Fix

Fixed an issue where Shopify order edits were not being processed correctly in the app.

  • Adding line items to an order via Shopify order edits was not being processed correctly in the app. This has been fixed and all line items will now be processed correctly.
  • Line Item quantity changes are now processed correctly. If a line item quantity is increased, the app will now process the additional quantity correctly.
FixOrders

Removed Line Item deduplication

Removed line item deduplication from order processing. This fixes a lot of minor bugs that were caused by the deduplication process.

  • Two line items with the same product/variant will no longer be deduplicated into a single line item. All line items will have their own unique entry in the app.
  • Fixed an issue where returns/refunds for deleted products/variants were not being processed correctly.
  • Fixed an issue where returns for download-only product/variant with multiple line items were not being processed correctly
  • Allows users to attach different content to line items with the same product/variant, which was not possible before.
FeatureAdminLicense Keys

Add License Key Modal

Unified to an add license key modal across all pages for better user experience.

  • Added a single Add License Key modal to provide a unified experience for adding license keys on the product/variant page as well as the license keys page.
  • The unified modal is accessible from the main navigation under 'License Keys' -> 'Add License Keys' or from the product/variant page by clicking the actions drop down -> 'Add License Keys' button.
FeatureAnalyticsContent

Live Usage Statistics

Usage statistics are now live and updated in real time, instead of being delayed by 24 hours.

  • All usage statistics displays will now show the current day's data, and will update in real time as new data is processed.
  • This update is backwards compatible with the previous usage statistics, and will not affect any existing data or reports.
FeatureExtensionContent

Enhanced Security and Access Control

Updated the Customer Accounts extension architecture to enhance security and access control to content.

  • Content links are now only exposed to customers after they click the download button.
  • All access control checks are now performed server side in real time, preventing old links from being used to access content after access has been revoked.
  • Download links now expire after a couple hours and open in a new tab — reloading the order status page always provides a fresh, working link.
  • All settings related to content access work the same as before.
FeatureOrdersContent

Post Purchase Linking

Added ability to link content to line items after order processing

  • Content can now be manually linked to line items after the order is processed. Can link existing content, or add new content.
  • Content must be linked to an existing line item. If the line item does not exist, ensure the product is configured in the app and then sync the order.
  • This feature is great for custom digital content products, adding additional content to existing orders, fixing broken content, and more.
FeatureSettingsContent

Download and Time Limits

Migrated download and time limit settings to content settings.

  • Download limits and expiration time limits have been migrated from product settings to content settings.
  • Both settings still work the same way, still have dynamic text input, and still use global / content level hierarchy
  • This allows for a multi-content product to have different download and time limits for each content item.
FeatureExtensionAdminProductsContent

Multi-Content Products Support

Added admin and extension support for products with multiple content items.

  • Updated the checkout extension to support products with multiple content items. For products with multiple content items, the extension will display a button that opens a modal allowing customers to download all content items.
  • Added a multi-content button text setting to allow the user to customize the text displayed on the multi-content button in the extension. This setting has both global and product level options, allowing for flexibility in how the button text is displayed.
  • The update is backwards compatible with products that have a single content item. For products with a single content item, the extension will display the standard download button.
FeatureContent

Content Migration

Migrated to content as first class entities in the app.

  • Content is now its own entity, not directly linked to a product. This allows for more flexibility in how content is managed in the app.
  • New Content section and individual pages for managing content via actions like create, link to products, unlink from products, edit, delete, and more.
  • A single content item can now be linked to multiple products, and a single product can have multiple content items linked to it.
  • Additional stats have been added around content, including download counts, storage used, unique order counts, and more.
  • Download Logs have been updated to be content centric, allowing users to view exactly what content was downloaded, when, and by which order.
  • New Content user permissions have been added for managing content.
FeatureSettingsExtension

Dynamic Text Input - Shopify Metafields

Updated settings dynamic text input to support Shopify metafields.

  • This update allows the dynamic text input feature to utilize Shopify metafields, enabling more flexible and powerful customization options for merchants.
  • View details about how to use this feature in our [documentation](https://support.aymdevelopment.com/app/digital-content-manager/documentation/settings/dynamic-text).
FeatureOrders

Remove Line Item Return Status

Added the ability to remove the returned status of a line item.

  • This feature is useful in the case where customer returns were processed but for whatever reason the shop would like to remove the returned status from the line item and give customers access again.
  • To use this feature, shop owners can navigate to the order edit page in the app. From there, all line items with a returned status will have an option to remove that status.
  • There is not a 'Mark line item as returned' feature. This is intentional so that returned status remeains specfic to customer returns. If you want to remove customer access to a line item, just use the 'Remove Access' feature.
  • When the returned status is removed (considered a 'hard' edit), order reconciliation (if enabled) for this order will be disabled. The reason for this is that once 'hard' edits are performed, the order is no longer in sync with Shopify.
FixLicense Keys

License Creation Statistics Fix

Fixed an issue where variant statistics were not being updated on license creation.

FeatureAdminAnalytics

Homepage Analytics Dashboard

Added order, license, and download analytics to the homepage dashboard.

  • Order analytics include total orders processed by the app. This order count can differ from the shops total orders, because we do not process orders that do not include a line item with digital content.
  • License analytics include data about restocks and returns. This data is broken down by who performed the action. Additionally, there is savings and cost data calcuated using the current price of the product.
  • Download analytics include data about the number of downloads processed by the app. This data is broken down by the product download type.
FixExtension

Extension Security Update

Closed a security vulnerablity in the checkout extension related to request forgery.

  • This vulnerability was never exploited but could have allowed an attacker to forge requests and gain unauthorized access to resources not related to their order.
  • For security reasons, we are not disclosing the specific details of the vulnerability.
FeatureAdmin

Changelog Initialization

This is the initial setup of the Digital Content Manager changelog. This is where we will post feature updates, bug fixes, etc.