[DBTech] DragonByte eCommerce

[DBTech] DragonByte eCommerce 1.5.3

No permission to buy ($49.95)
Update highlights

This version features the ability for customers to choose a default address when creating it. Default addresses will be automatically loaded during checkout, simplifying the process.

Address information is now also loaded when selected during checkout, making it easier to pick the right billing address.

An issue with the default registration options has also been addressed, and should now work as intended for new users going forward.


Complete Change Log

Feature: Ability to set default address
Feature: Load address info when an address is selected
Change: Updated internal data path references to better support CDNs
Fix: Unticking default registration options would not correctly set registration defaults
Fix: The downloads list on the License View page did not respect the product-wide download version sort order
  • Like
  • Love
Reactions: Nulumia and mcatze
Update highlights

eCommerce now has the ability to send HTML-based invoices, via an application called WkHtmlToPdf. In order to use this feature, you must have this application installed on your server (and no, support for how to install it on your server is not available as this varies from server to server 😛).

You must also have the exec feature enabled on your server, same as if you were using ffmpeg for the XFMG.

In other news, an issue was discovered with the rich metadata for products (Google Rich Results) that would have produced a warning email from Google. The metadata has been updated to reflect the new requirements from Google.


Complete Change Log

Feature: Option to use WkHtmlToPdf to generate HTML invoices, which also support RTL text
Fix: Fixed an issue with Google Rich Search Results
  • Like
Reactions: Liam W and SyTry
Update highlights

This version further improves the recently added functionality for the various criteria forms in XenForo by adding inverse user criteria for Created Products, Licenses Purchased and Amount Spent.

Multiple improvements have also been made to the layout thanks to @Liam W: Browsing the product list sees less wasted space, it is easier for mobile users to tap to navigate to the product information screen, and the default icon's alignment has been fixed.

Lastly, about half a dozen smaller bugs have been resolved.


Complete Change Log

Feature: Inverse criteria for Created Products, Licenses Purchased and Amount Spent
Change: Improve mobile usability by condensing the "Add product" buttons into menu items in the Overview, Category View, What's New (Products) and Author pages
Change: On narrow mobile screens, each product row now takes up the full width of the column
Change: Make it easier for mobile users to tap on the product in the product list
Change: The default icon is now better aligned when showing bigger icons
Change: Renamed "Outdated" phrase to "Update available"
Fix: Order reminder emails would still send after an order was completed
Fix: Fix a few database tables that were not changed on user content change
Fix: Purchasable type is now removed on uninstall
Fix: Certain information was not being logged in the Purchase Log when an order was reversed
Fix: Ensure order reminders are cancelled when the order is deleted
  • Like
Reactions: SyTry and XenArabia
Update highlights

This version implements new functionality for the various criteria forms in XenForo. You can now search for users who have purchased (or not purchased) certain products both in the user searcher (e.g. "search for users") and user criteria (e.g. "criteria for awarding trophy").

This version also improves reliability of various API lookups by adding protection from invalid responses that could cause a server error.

Lastly, about half a dozen reported bugs have been resolved.


Complete Change Log

Feature: "User has purchased any of the selected products" user searcher criteria
Feature: "User has NOT purchased any of the selected products" user searcher criteria
Feature: "User has purchased any of the selected products" user criteria
Feature: "User has NOT purchased any of the selected products" user criteria
Change: Add protection from invalid responses from various API lookups
Fix: Removed "You must visit the forum to reply" from the watched product update email phrase
Fix: Use the correct author for the product update emails
Fix: The Alert and Push templates for Download Mentions were missing
Fix: The download button will no longer appear in the license list if the user does not have permission to download the product
Fix: Fix a server error when reverting to the Webservice lookup
Fix: More cleanly handle an empty country code response from the geolocation service
Fix: Moving an add-on product will now work as intended
  • Like
Reactions: SyTry
Update highlights

This version adds a new feature; a BBCode embed for products. You can copy a product's BBCode from its "Share product" widget on the product information page and paste it into any XF text box that supports BBCode.

The Commissions page has also been tweaked in order to make individual transactions easier to read, as well as fixing some display issues with negative amounts (e.g. chargebacks / refunds).

Lastly, about half a dozen reported bugs have been resolved.


Complete Change Log

Feature: Ability to embed products in posts
Change: Use a separate phrase for "Paid" (invoice) from "Paid" (product costs money)
Change: Reworked the "Applicable Payments" section of the "Outstanding Payments" page for Commissions to be easier to read
Change: Standardised the purchase log status phrases
Fix: XR Product Manager importer would not convert serialized fields correctly
Fix: Download chooser form did not respect download visibility state
Fix: Moving categories would not immediately trigger a permission rebuild
Fix: Fixed an issue where assigned products would not appear in the "generate licenses" list even after assigning someone as a Distributor
Fix: Fixed an issue where cancelled / refunded transactions would not correctly update the Commission value on the Outstanding Payments page
Fix: Fixed an issue where the Order Clean-up feature was not working as intended
Fix: Fixed an issue where the Order Reminder feature was not working as intended
Fix: Fixed an issue where the License Expiry Reminder feature was not working as intended
Update highlights

After a successful Beta period, it's time to release the Gold version of DragonByte eCommerce v1.4.0! 🎉

This version contains multiple usability improvements and enhancements. The "Simplified download interface" option has been made obsolete, and its functionality has been merged with the "normal" downloads interface.
This means users will have an easier time downloading their licenses, as download buttons are now more readily available.

Furthermore, when viewing releases on the Product information page, the download versions any given release applies to will now display in the list, reducing confusion for people stuck on older platforms of your product.

This version also contains future-proofing for PHP 7.4 / XenForo v2.1.3.

Lastly, about half a dozen discovered bugs have been resolved.


Complete Change Log

Feature: Added a list of versions each individual release applies to when viewing the Releases tab on the product info page
Feature: The "Download" button on the "Licenses" tab on the product info page now appears in all scenarios
Change: Eliminated the "Simplified downloads interface" option and switched its functionality to a style property (controls whether the grouped download interface shows up when clicking a license)
Change: The user who added a download to a product is now stored in the download record
Change: Set version_string as required in the Download entity
Change: Changed the way API calls are made, in order to support the HTTP Proxy feature in XenForo
Fix: PHP 7.4 compatibility fix
Fix: Respect deleted/moderated when displaying list of releases
Fix: Fix errors on install
Fix: Fix for server error in license entity
Fix: When editing products, the global "Enable content tagging" setting was not respected
Fix: Fix a few issues with the download cache for download versions
Fix: Fix alerting on new product update (fall back to product if the download user does not exist)
Fix: The user who added a download to a product will now correctly show in the news feed / update alert
Fix: Fixed an issue where removing the last item from an order would not delete the order itself.
Fix: Fix various issues with the "Generated downloads cache" feature
  • Love
  • Like
Reactions: Xon and SyTry
Update highlights

Welcome to the second Release Candidate version of DragonByte eCommerce v1.4.0! 🎉

This version adds a couple new features; Ability to hide a product from the product list, and ability to associate a forum with a product to work as a support forum.

If you associate a forum with a product, a new "Get support" button will be added to the product information block, letting users know exactly where to get support. This works especially well with our DragonByte Tickets product, which will show a special support ticket UI when viewing the support forums.

The way pricing is displayed in templates has also changed, to fix a few issues where an error could occur if a sale was ongoing and a product was free, or in some cases even just marking a product as free.

The registration defaults have also been changed, no longer requiring an entirely separate setting. The toggles can be found inside XF's own registrationDefaults setting.


Complete Change Log

Feature: Per-product setting to indicate whether it's included in product lists
Feature: You can now enter a "Support forum" for each product, with a link on the product information page
Feature: A new phrase (dbtech_ecommerce_invoice_closing_line) has been added, letting you add custom text to the bottom of the invoice (below the order total)
Change: Merged registration defaults into the core setting
Fix: Only show renew button if the user has renewal licenses
Fix: Copy Xen Product Manager Essentials support & default config into XF-PM importer
Fix: Fix incorrect pricing display on the product overview page if the product is currently on sale
Fix: Fixed an issue where the pricing display could be corrupted
Fix: Do not show download versions without any contents
  • Like
Reactions: Xon
Update highlights

After several months in development, we're proud to present the first Release Candidate version of DragonByte eCommerce v1.4.0! 🎉

As you can tell, the list of changes is nothing short of immense. I won't be able to break down every single change or new feature, as that would take hours, but I'll go through some of the most important ones.

VAT ID per address: VAT IDs are now stored in the Address record, instead of in the Order record. This means that recurring customers will no longer have to fill out their VAT ID every time they place a new order. With this change, it is also possible to place addresses in the Approval Queue for moderators to validate prior to allowing it to be applied to an order.
If you don't wish to use this moderation feature, a user group permission can be granted to bypass validation.

Uneditable addresses: Addresses that have been used in orders, or have a verified VAT ID, can no longer be edited in the front-end. Administrators can still edit these records in the Admin control panel. This is to preserve the records in case the tax man comes calling for an audit.

Recurring sales: You can configure sales to recur at certain time intervals, or using custom date ranges. This makes recurring sales useful for sales that occur at the same date every year (such as Xmas) and for sales that occur at different dates every year (such as Easter).

Specific renewal costs: Each different product pricing tier for a digital product can now have a specific, fixed renewal cost. This cost does not change when the license is expired vs. still active.

UI improvements: Many different improvements have been made to the UI, including (but not limited to) a purchase button in the product list, renewal costs in the product information block, version number in the product list, ability to click "Renew licenses" to renew even non-expired licenses, and more.

XPM / XRPM importer improvements: Various improvements to these importers see them more reliably importing data, including extended data from XPM Essentials.

Bugs, now fixed: Over two dozen bugs have been fixed!

Thanks to @Xon for many of these features and improvements!


Complete Change Log

Feature: Generated downloads are now optionally cached via a new config.php flag "$config['dbtechEcommerceCacheReleases'] = true;" (Experimental)
Feature: Automatically mark alerts for download as read when downloading a release
Feature: Automatically mark alerts for download as read when viewing the download page
Feature: Automatically mark alerts for product ratings as read when viewing the reviews page
Feature: Automatically mark alerts for product ratings as read when viewing the latest reviews page
Feature: Automatically mark alerts for download as read when viewing the releases page
Feature: Automatically mark alerts for a product as read when viewing the main product page
Feature: For digital products, the version number now appears in a more prominent spot in the product list
Feature: Purchase button on product list
Feature: Starting renewal cost is now in a tooltip on the pricing label
Feature: Renewal costs are now displayed on the product pricing block
Feature: Renewal pricing can now be set per product cost
Feature: Ability to display a "Checkout" button in the pricing info block for products currently in cart
Feature: Ability to specify any number of date ranges in the future for the sale to recur manually
Feature: Recurring sales
Feature: Implement "On sale" product filter
Feature: Ability to customise product release thread titles
Feature: Moderation queue support for Addresses, when using the VAT system
Feature: Per-sale option to feature products during sale
Feature: Added purchase type (new / renew) to the invoice
Feature: [XPM Importer] Properly convert XPM Essentials 'branches' into product versions
Feature: [XPM Importer] Import product filters
Feature: [XPM Importer] Migrate extra license field
Feature: [XPM / XRPM Importer] Setup product-watch for imported licenses
Feature: The "Expired" label and the expiry date (for non-lifetime licenses) are now links to purchase a renewal
Feature: When the "Simplified download interface" setting is disabled, show a grouped list of the latest X releases in the license view


Change: Merged registration defaults into the core setting
Change: Improve performance on the product overview list by caching product pricing data
Change: Simplified the CSS / Style properties for the Sale ribbon
Change: Sale percent discounts now accept floats
Change: Sale discounts are now formatted to remove unneeded trailing zeroes
Change: Sales tax rate is now displayed in the invoice
Change: Fixes & improvements to the XenProductManager import
Change: Add-on products are no longer included in the sitemap, as they do not have a dedicated product information page
Change: Product icon no longer shows up on the product info page if there's also no product description
Change: "Renew licenses" button will now show up if any license is not lifetime in addition to if any licenses have expired
Change: Add-on licenses now link to the parent license if the license info is invalid
Change: The email validator for Addresses now respects the banned emails list
Change: VAT ID is now stored in the Address record, automatically set in an order when choosing an address with a VAT ID
Change: Addresses used in previous orders can no longer be edited or deleted
Change: Addresses with a valid VAT ID can no longer be edited or deleted
Change: Use new Approval Queue template
Change: Use XF's abstracted filesystem instead of direct access for most contents in 'internal_data' & 'data' directories


Fix: Fixed "{name}" showing up in the news feed instead of the user's name when a new review is written
Fix: Email options would not save correctly on Account Details or Privacy pages
Fix: Fixed an issue where sales would not rebuild when undeleted
Fix: Certain VAT ID formats could produce a server error when validating them
Fix: The email subject for order shipped emails would not correctly include the board title
Fix: Ensure prefixes can be clickable on the main product overview page
Fix: Fix a race condition where viewing another user's pending order could remove their items from cart
Fix: Fixed serialize -> json_encode for various cache rebuilds
Fix: Shipping notification could generate a server error in some circumstances
Fix: Fixed product cost cache not rebuilding after importing one
Fix: Fix for a potential server error where a non-existent order is refunded
Fix: Fix eror during updates; Template error: Method canViewDbtechEcommerceProducts is not callable on the given object
Fix: Fix missing "View scheduled releases" permission
Fix: Fixed infinite scrolling when using the Grid style
Fix: Check whether invoices are enabled for the front-end order list
Fix: "Page not found" when trying to view the licenses tab
Fix: Deleting orders containing deleted products would fail with an error
Fix: Filtering licenses by product using the drop-down would not preserve the selection onto page 2 onwards
Fix: New orders could produce a server error record in certain circumstances
Fix: Fixed an issue where the email preferences in the Preferences page would not show up in certain scenarios
Fix: Fixed banners on List style
Fix: [XPM Importer] Import per-product permissions
Fix: Certain data could be stored with an incorrect amount of decimals
Fix: Fix "Template error: Method canViewDbtechEcommerceProducts is not callable on the given object" during rebuild
Fix: Ensure alerts are linked to add-on
Fix: Fix possible "Call to undefined method hasDbtechEcommerceProductPermission()" during rebuild
Fix: Better handle copied from abstract path system to temp files
Fix: Stop responding to API requests if the API system is disabled
  • Like
Reactions: Xon
Update highlights

This is a re-release of v1.3.4 (which has also been patched) to fix an issue that could lead to data loss.

Given following scenario:
  • Another user's order is pending
  • The current viewing user is the owner of a product in the other user's cart (and thus can't purchase it)
  • The current viewing user visits the order log in the Admin control panel
In the above scenario, any order items whose products are owned by the current viewing user would be silently removed from the other user's cart.

The reason this occurred is that every time the order total is calculated for pending orders, the order items are validated to ensure that the user has the permission to buy the item in question.
This permission check did not ensure it was taking the buyer's permissions into account, so permissions were checked incorrectly.

The problem only revealed itself because of the Order log in the AdminCP, which is currently the only way it is possible to view another user's current pending order.

To clarify: The existing v1.3.4 release has also been patched, so if your eCommerce license has expired since the release of v1.3.4, you can re-download that version to obtain the fix.


Complete Change Log

Fix: Fix a race condition where viewing another user's pending order could remove their items from cart
Update highlights

This update features some important changes in relation to VAT and PayPal.

If you sell your products via PayPal, and use accounting software like QuickBooks to manage your bookkeeping, it would previously have been difficult to utilise the VAT features in eCommerce while maintaining records in your accounting software. Transactions would either fail to import or be imported with incomplete data.

This happened because eCommerce would specifically tell PayPal how much sales tax to add separately to each transaction, bypassing any sales tax rates you set up in your interface.

There is now a new setting for controlling whether the order cost sent to PayPal is inclusive of tax. If this setting is turned off, PayPal will use the sales tax rates as defined in your PayPal account settings to apply sales tax.

If a valid VAT ID was added to the order, eCommerce will tell PayPal to not add any tax to the order, unless the person placing the order is from the same country as your business.
If both the seller and the customer is located in the same country, VAT should always be added and each party will be able to reclaim the VAT from the tax authority.

---
The next version (v1.4.0) will have even more updates with regards to VAT. The tentative feature list:
  • Sales tax ID will be stored in the address book, rather than the order. This means recurring customers won't have to keep re-entering their VAT ID every time they place an order.

  • If VAT is enabled in the tax settings, addresses with VAT IDs will be placed under moderation and appear in the "Approval Queue" in XenForo. You can then look up the VAT ID and see whether the user entered their correct business address.

  • A new user group permission will be added to allow chosen user groups to bypass the address moderation requirement, if you do not wish / need to use the address moderation feature.

  • If an address is under moderation, a notice will appear on the checkout screen letting them know they will still be charged VAT until the address is approved.

  • Addresses with approved VAT IDs will not be editable and customers will not be able to delete them from their address books. This is to prevent older order records from being rendered incomplete.

  • Addresses will become searchable / editable in the AdminCP.
The goal of this update is to ensure that your business is compliant with all tax authorities and their varying record keeping requirements.

I'm aiming to make the update as frictionless as possible for your existing customers. All past sales tax IDs will be imported into the corresponding address entries. The existing form field for entering a VAT ID during checkout will simply be changed to apply to the currently selected billing address, rather than the order itself.

As always, it's not possible to provide an ETA for this update.


Complete Change Log

Feature: Add new setting for controlling whether tax amount is included in the amount sent to the payment processor
Change: Update sales tax calculation to only exclude sales tax if VAT is enabled and the user is from a different VAT country
Fix: Fix product description not saving
Fix: Fixed an issue where add-on products would generate an alert if the user is watching the category
Top