I have a remark, and I am not sure whether this is an intended system behavior or not. When I upload an updated version of a downloadable file and keep the same filename (for example a .zip file), the user still downloads the original (old) version.
This is likely due to server-side caching. I have to rename the .zip file for the user to receive the updated version. For example: a user purchases a plugin, downloads it, installs it, and activates it - everything works fine. After some time, the user logs in to /my-orders/ and wants to download the purchased file again. However, in the meantime I have released an update and uploaded a new version for each product (e.g. 1.0.1), but with the same .zip filename.
The user logs in and downloads the file, but still receives the original version, for example 1.0.0. As a result, I have to rename the file for each product so that the user receives the newer version. Are you planning to add versioning support, similar to Lemon Squeezy, where users could directly perform updates from Creem.io?
My case:
I provide users with the option to purchase a WordPress plugin.
The user purchases, downloads, installs, and activates the provided license.
After X days, I release an update to the plugin, so the process is as follows:
I go to Creem.io > Products > Edit Product > delete the original ZIP file and upload a new one with the same name.
In my API proxy, I change the plugin version, and the update check in the user's admin dashboard detects the newly released version and directly downloads the updated ZIP from my server.
The problem is that when I delete the old file and upload a new one in Edit Product on Creem, the original user logs into their Customer Portal and downloads the file, but still receives the old version — the change I made is not reflected.
I tested this all day using VPNs and different browsers.
I hope I explained it clearly :)

Belove - This is exactly how it is handled on Lemon Squeezy and similar MoR platforms. When a file with the same filename is uploaded as a previous one, a version of that file is recorded. This then allows you to easily set up an update process where, via an API, you can query the server to determine which version of the file is available for download, and you can directly offer the user a download of the newer version of that file without even renaming it.
However, I understand that you probably do not want to provide a direct request for downloading/updating for the end customer, because it could create load and unnecessary data transfer costs.
Still, it would be sufficient if the issue described above were resolved.

