DragonByte eCommerce 5.5.0
Update highlights
This version brings a slew of bug fixes thanks to automated testing, and includes a new optional feature to allow sales to post a discussion thread when the sale starts. This also works for recurring sales, posting a new thread every time the sale occurs.
Other than that, the biggest change in this version is what happens to products when their owner's account is deleted, as well as what happens if a Classifieds product is reassigned. eCommerce now makes a best effort to move all other Classifieds products using the same business profile, as well as the business profile itself, to the new owner. If the user is deleted, the products are now kept, and can be reassigned to a valid user by a staff member with the appropriate permissions.
Please see the full changelog below for information about the bugs fixed in this version.
Complete Change Log
Feature: Sales can now post a discussion thread in a chosen forum, with an optional prefix, when they start, and each run of a recurring sale gets a new thread that shows the sale's dates and discounted products, follows the sale's title, and is closed or hidden along with the sale; a new "Sale thread author" option, also shown above the sale list, sets who posts these threads
Feature: Address and business profile webhooks can now be sent when a sales tax ID is approved or rejected, including the moderator's reason
Change: Deleting a member now keeps their products in the store as guest-owned products under their old name, and removes their licenses properly, cleaning up license counts, serial keys, deletion logs and approval queue entries
Change: Reassigning a classified product now moves its business profile to the new owner, and if other products of the old owner use the same business profile they must be reassigned together, such as with inline moderation
Change: Reassigning a product now also makes the new owner the owner of all its releases
Change: Order item custom field values are now stored in anorder_fieldscolumn instead ofproduct_fields, and existing data is migrated automatically on upgrade
Change: API and webhook order item results now return custom field values underorder_fieldsinstead ofproduct_fields, so integrations that readproduct_fieldsfrom order items need updating
Fix: Importing from Xen Product Manager Essentials now assigns download logs to their product branch instead of to any version
Fix: Creating a ticket in a ticket forum without a product no longer causes an "Undefined array key" warning
Fix: Importing products from Xen Product Manager or XR Product Manager no longer fails when creating their price, and their renewal price is now kept
Fix: Importing downloads and optional extra files from Xen Product Manager or XR Product Manager no longer fails with a database error
Fix: Importing downloads and download logs that use Xen Product Manager Essentials branches now reads the branch names from the source forum instead of failing with a database error
Fix: Importing order items from Xen Product Manager or XR Product Manager no longer fails with a database error, and new purchases and renewals are no longer marked as upgrades
Fix: Deleted products, add-on products and coupons imported from Xen Product Manager or XR Product Manager now keep their deletion reason and date
Fix: Coupons imported from XR Product Manager can now be used by the user groups they were limited to, instead of their permissions all being set for unregistered users
Fix: Importing product field values from XR Product Manager no longer fails
Fix: Optional extras imported from XR Product Manager are now added to the imported parent product instead of to the product that happened to have the source product's ID
Fix: Importers adding a free default price to a product no longer fail with a database error
Fix: Setting a product icon directly from an image file or WebP image, as the importers do for product thumbnails, no longer causes an error
Fix: Categories imported from XR Product Manager now get new IDs under their imported parent category instead of clashing with existing categories
Fix: Add-on products imported from Xen Product Manager or XR Product Manager now have their parent product's creation date instead of no date
Fix: Files and instructions of optional extras imported from Xen Product Manager or XR Product Manager are now added to the add-on product instead of its parent product
Fix: Importing payments from Xen Product Manager no longer fails for transactions without a recorded payment processor
Fix: Products imported from Xen Product Manager or XR Product Manager whose thumbnail file is missing now keep their product permissions and are counted as imported
Fix: Reversing an order now removes the user groups the purchase granted
Fix: When an admin reverses an order, the store credit refund and the reversal log now go to the buyer instead of the admin
Fix: A failed store credit refund during an order reversal no longer leaves a log entry behind that blocked later refunds
Fix: Completing an order with a date order field no longer fails while creating the purchase thread
Fix: Adding an item whose product no longer exists to the cart now shows an error instead of failing
Fix: Exported order CSVs now show "Unknown user" for guest orders instead of an empty username
Fix: Creating a product without choosing license, order or download version fields no longer fails
Fix: Creating or editing a product (including via the API) without a tagline or description no longer fails when spam checks apply
Fix: Generated downloads no longer include files inside hidden directories such as.ideaor.github
Fix: Generating hashes no longer includes an existing hashes file in the hashes
Fix: Generating a download no longer leaves its temporary zip file behind
Fix: Creating more than one invoice or shipping label in the same request, such as in jobs or an invoice plus a shipping label, no longer triggers a "Constant FPDF_FONTPATH already defined" error
Fix: Shipping labels no longer fail to generate when no business title is set and the order has no business profile
Fix: Invoices and shipping labels no longer fail to generate when the business country option is empty or set to an unknown country
Fix: PDF documents created with centimetres as the unit now use the correct scale
Fix: Embedded PDF fonts with custom encoding differences now reference the correct encoding object
Fix: Multi-line PDF text cut off at a maximum line count no longer returns garbled text for non-ASCII characters
Fix: Product review field definitions are now cached correctly instead of being rebuilt on every page load, and address field definitions are now preloaded with the other field caches
Fix: License expiry reminder emails are no longer sent when none of the listed licenses can still be renewed
Fix: Itemised Stripe checkout no longer fails when a product cost on the order has been deleted
Fix: The license extend job now falls back to its default settings when some are not provided
Fix: Importing orders from sources that don't record a shipping method no longer triggers an error
Fix: Administrators without the matching admin permission can no longer view or save category, coupon or product permissions by going to the edit or save URLs directly
Fix: Moving a Classifieds product now checks whether the destination category allows Classifieds, instead of the category it is leaving
Fix: Adding a physical product or Classifieds listing now requires at least one shipping zone, as intended
Fix: Moving an add-on to a product name or ID that doesn't exist now shows the form again instead of an error
Fix: Administrators can now create Classifieds payment profiles
Fix: Saving a product filter in the admin control panel no longer fails with an error
Fix: Administrators with the Commissions, Distributors or Products admin permission can now open the commissions, distributors, product prefixes and review fields pages, which previously only super administrators could
Fix: The sale type chosen when adding a sale is now applied to the new sale
Fix: Sale types now get the correct add or edit context when the sale form is shown
Fix: Adding a payment method without a business profile now shows the "no valid business profiles" message
Fix: Loading a release version's description without choosing among several versions no longer causes an error
Fix: Downloading a file for a version that can't be found now shows the version chooser instead of an error
Fix: The license page no longer hides the download and discussion options when the oldest product version has no releases
Fix: The "New downloads" What's new page now works, listing recent releases with a link in the What's new navigation and tabs
Fix: Adding or removing product tags through the API no longer causes an error
Fix: Opening the account upgrades page with an unknown product cost now shows a "product not found" message instead of an error
Fix: Rebuilding products no longer fails with a database error for products that have no pricing tiers
Fix: Restoring a soft-deleted review now counts its rating towards the product's rating again
Fix: API results for products whose category no longer exists no longer throw an error
Fix: Saving a sale that has a discussion thread no longer throws an error, and a new "Sale thread title template" option controls the thread title
Fix: Sale announcement emails and coupon discount lists no longer fail when no language is given
Fix: Entering a banned email address on an address or business profile now shows an error instead of silently discarding the email
Fix: Soft-deleting, restoring or approving a release now closes or reopens its discussion thread, updates reaction counts, removes its alerts and reports approved releases as ham
Fix: External downloads whose URL contains a censored word are now correctly refused
Fix: Order field values can now be loaded through their order item
Fix: Deleting a license field now removes it from the products it was assigned to
Fix: Deleting a commission payment now subtracts the exact amount, including cents, from the commission's total
Fix: Viewing completed orders that have no stored shipping cost no longer throws an error
Fix: Checkout no longer fails when the "require full address for selected product types" setting has no product types ticked
Fix: Shipping estimates with an unparseable cost formula now raise a clear error
Fix: Product owners can now reply to reviews on their products, using a new "Reply to reviews on own products" permission that is granted to user groups that can edit their own posts
Fix: Saving a product no longer lets a crafted request take over pricing tiers that belong to another product
Fix: A member's cart subtotal and pending cart items are now calculated without an error
Fix: Watched product lists now work when they are given a user rather than a user ID
Fix: API category product lists now stay within the requested category when the API key bypasses permissions
Fix: A business profile's list of payment profiles is now updated when its last payment profile is deleted, or when a payment profile moves to another business profile
Fix: Moderator actions on an order whose buyer has been deleted no longer try to alert a guest
Fix: Product filter links that include an unknown or deleted product field no longer cause a server error
Fix: Admin license search now requires every license field criterion to match, while still matching any of the selected choices within one field
Fix: Admin download log search now matches any of the selected choices of a multi-choice license field
Fix: Sorting the distributor log by user name no longer causes an error
Fix: Filtering the purchase log by amount now works
Fix: Editing an item that is not in the order now shows a "product not found" message instead of an error
Fix: User upgrade products whose upgrade has been deleted are no longer treated as purchasable and no longer cause undefined key errors
Fix: Adding a product that has no pricing tiers to the cart now shows an "invalid pricing tier" message instead of an error
Fix: The payment profile delete confirmation now lists eCommerce correctly when it uses the profile
Fix: License change logs that mention a deleted license field now show the raw value instead of causing an error
Fix: The "stop emails for this category" link in notification emails now works
Fix: Viewing a release discussion thread whose release no longer exists no longer causes an error
Fix: Moderator log entries for releases now link to the release instead of a page that doesn't exist
Fix: Saving a business profile no longer fails when webhooks are configured
Fix: Moving a payment profile to another business profile, or to the board, no longer makes its saved credentials unreadable
Fix: Adding a product or Classifieds listing with an unknown product type now shows a "not found" error instead of a server error
Fix: Deleting a pricing row while editing a product now only works for that product's own pricing rows
Fix: Editing or otherwise saving a product whose owner was deleted no longer gives the product to whoever saved it or to the default product owner
Fix: Guests are no longer treated as the owner of products whose owner was deleted, so they can now buy those products and can no longer delete them or manage their tags as their own
Fix: Reassigning a product whose owner was deleted no longer fails when an alert is requested, and moderators are no longer offered an owner alert for such products
Fix: Moderator actions on products, releases and licenses of deleted members no longer cause an error
Fix: Publishing a release whose uploader was deleted no longer causes an error
Fix: The admin product edit page now shows the owner name for products whose owner was deleted
Fix: Business profiles of a deleted member now stay with their classified products, so those products can still be edited and reassigned
Fix: Guests can no longer check out key products without creating an account, the same as other license products
Fix: Reviewers now receive moderator action alerts on reviews of products whose owner was deleted
Fix: Sale discussion threads no longer revert to normal discussion threads
Update highlights
This version gives the API portion a bit of a tune-up, fixing issues with its documentation being out of date as well as a few bugs. Some of these changes also affect Webhooks, so if you use either Webhooks or the API, please check the full change log for more information.
If you do not use either, it is safe to skip this release as it contains no changes that would affect the normal operation of DragonByte eCommerce.
Complete Change Log
Change: Order prices in webhooks and API results are now numbers instead of strings
Change: Listing licenses or purchased products via the API with none to show now returns an empty list instead of an error
Change: Download refusals via the API now answer HTTP 403 instead of 402
Change: Listing a product's downloads via the API with no matching versions now returns an empty list instead of an error
Change: With the API disabled, endpoints now answerendpoint_not_foundinstead of a generic not-found error
Fix: Creating a download via the API now respects the provided release date
Fix: Product filters and download version fields can now be set when editing a product via the API
Fix: Leaving or deleting an author reply to a review via the API now returns the review in the documented format
Fix: Order webhooks and API results now include the order's items
Fix: Order webhooks and API results now include the customer's username
Fix: Pending orders in webhooks and API results now show their current prices instead of zero
Fix: Listing a category's products via the API now respects pagination
Fix: Fetching the latest version via the API for a product with no versions no longer causes a server error
Fix: Corrected numerous mistakes in the API documentation
Update highlights
Thanks to recent scientific advancements in the field of subspace quantum strings, things previously thought impossible turned out to actually be possible. In other words; it is actually possible to have attachments for individual editor fields, so all product and download editor fields can now have attachments. This includes inline images!
Attachments added to downloads (for digital product updates) or products (for initial release threads) will be copied over to the news thread as well.
It is also now possible to preview the contents of all editor fields across products and downloads.
Complete Change Log
Feature: Full product description, product specifications and copyright information now have their own attachments that can be inserted into their editors, including via the API
Feature: Download change logs and release notes now have their own attachments that can be inserted into their editors, including via the API
Feature: Automated product and release thread posts now include the attachments from the product description, specifications, change log and release notes
Feature: Product description, specifications, copyright information, download change log, release notes and commission payment note editors can now be previewed
Change: API download responses now includechange_log_attach_countandrelease_notes_attach_count, withattach_countnow being the total of both
Change: Download attachment keys in the API now check the product's attachment upload permission instead of the category's
Fix: Editing a product or download via the API without an attachment key no longer causes an error
Update highlights
This version fixes an issue with the DragonByte Tickets integration, where a server error could be logged if the configured ticket support forum did not have an associated eCommerce product.
Complete Change Log
Fix: Fix a PHP warning when DragonByte Tickets actions run on threads in forums without a product
Update highlights
After a successful Beta period, v5.3 is now ready for wider release. As you can see by the changelog, a significant amount of fixes have been incorporated into this release. There is one new feature; the filtering feature on the Downloads list in the AdminCP can now accept download version numbers. Particularly useful if you need to recall information about older versions that may not show up when just filtering on the product name.
None of the resolved issues should negatively impact functionality, the vast majority of them simply address race conditions that required a highly specific set of circumstances to trigger. There are a couple of minor fixes for the DragonByte Tickets integration, as well as a fix for Stripe Itemised Checkout which only affected you if you asked Stripe to handle sales tax rather than letting eCommerce handle it.
PS: If you are using Xero Invoice Sync by @Xon please upgrade to v2.8.3 to maintain compatibility, as v5.3 changed address fields from being hardcoded to being customisable via the "Address fields" system.
Complete Change Log
Feature: Ability to filter on download version in the AdminCP
Fix: Ensure sort order/link filtering is carried over when navigating various AdminCP pages
Fix: Fix regression from v5.2 affecting generated downloads
Fix: Check the correct admin permission when deleting a category via the API
Fix: Disallow transferring All-Access Pass licenses even if license transfer is enabled
Fix: Disallow license transfer if the license isn't valid
Fix: Correctly delete shipping label when deleting an order
Fix: Fix incorrect step order in the v4.1.0 upgrade path
Fix: Fix typo in the Product API leading to a server error when sorting
Fix: Don't include licenses from deleted users in expiry reminders
Fix: Serial keys with low entropy no longer trigger an infinite loop
Fix: Prevent race condition with serial key generation
Fix: License Extend job now has improved guard rails
Fix: Fix potential server errors in v5.2 upgrade steps
Fix: Remove an invalid coupon more reliably
Fix: Fix currency rounding errors due to floating point precision
Fix: Fix currency rounding for currencies that use a precision other than 2
Fix: Ensure no Order Total values can go below 0.00
Fix: Handle encryption failure more gracefully
Fix: Store the correct value in theOrderItementity for automatic discounts
Fix: Fix an issue where store credit could be removed twice
Fix: Fix race condition with product view counter
Fix: Fix calculations for discount totals
Fix: Ensure '%' is escaped when filtering products
Fix: Delete temporary product features on product deletion
Fix: Fix sales tax rate calculation for Classifieds business profiles
Fix: Improve the randomness in Serial Key generation
Fix: Prevent automatic coupons from being guessable
Fix: Store credit is now refunded when the order is reversed
Fix: Avoid a race condition where more store credit than what's available could be spent
Fix: Avoid a race condition where a coupon's usage limits were not respected
Fix: Itemised Stripe checkout is now disabled when sales tax isn't included
Fix: Shipping cost information is now also saved per-item
Fix: Fallback to an empty array in case of problems with the license macro
Fix: Fix server error when editing a DragonByte Tickets ticket in certain circumstances
Update highlights
Continuing the work of Beta 1, this version reworks another significant part; The "Address line 1" through 4 and "Business c/o" fields have been converted into "Address fields". This uses the standard XenForo "custom fields" feature, so you are free to add and remove (or easily change the title of) these fields as fits your needs.
Fields created under the "Business" display group will only be shown if the user indicates the address is a business address. "General" fields are shown regardless. This even works with the "Field is required" flag, so it's perfectly safe to flag Business fields as required! You can see this in action @ dragonbyte-tech.com
The second feature is not exactly the biggest, but it was requested; you can now optionally choose a style that will be enforced across all eCommerce pages.
There's also a minor fix for staff members viewing users' licenses; All-Access Pass licenses are no longer reading your AAP status. They now correctly read the license holder's AAP status.
There's other minor fixes and internal changes, see the full changelog for details.
Complete Change Log
Feature: Address book and business profile address lines (previously fixed at Address line 1-4) and "Business c/o" are now Address custom fields
Feature: Optionally override style on all eCommerce pages
Change:xf_dbtech_ecommerce_license.license_keyis now indexed
Fix: Clean up thread types/forum types on uninstall
Fix: Fix API type config results for Tickets
Fix: Fix "has required user groups" check for Licenses
This add-on has been hotfixed to address an issue affecting all front-end pages while this add-on is enabled. This issue was caused by additional security measures introduced in XenForo 2.3.13.
The latest version has been patched, and can be downloaded at no additional cost. If you are running an older version and you are unable to upgrade for whatever reason, please let me know the exact version you are running and I will apply the hotfix accordingly.
Note: Both the latest Beta version and the latest Stable version of this add-on has been hotfixed.
Update highlights
This version is a rework that mostly is invisible for end-users, with the exception of User Upgrade products no longer being flagged as free. This update is a companion update to DragonByte Tickets v4.
In order to support DragonByte Tickets no longer depending on DragonByte eCommerce, parts of the functionality covered by Tickets has now been taken over by eCommerce.
- eCommerce Suggestions (A.K.A. product suggestions) is now handled by this addon, and existing nodes will be seamlessly handled by eCommerce going forward after installing this update.
- All code dealing with displaying product/license information in a ticket has been moved to eCommerce and injected via template modifications.
If you previously ran both add-ons, I would strongly recommend you upgrade both at the same time to avoid any potential issues.
Complete Change Log
Feature: Product Suggestions forum type
Change: Internal changes to support Tickets v4
Fix: Fix developer docs for code events
Fix: Guest checkout would display a "Please enter a valid email." regardless of user input
Fix: User Upgrade products are no longer mistakenly flagged as "Free" in the front-end filter
We use essential cookies to make this site work, and optional cookies to enhance your experience.