v2.3.1 Release Notes


  • The ability to specify only 1 package to be required from the list of required packages added.
  • Global Commands revamp. Added servers so that the package chooses what server the global command will run on based on the list of servers on the global command.
  • Also added execute Global Command when price below and above to Global Command.
  • Loyalty Rewards have now been added.
  • User permissions have been completely overhauled. Groups have now been added.
  • Added ability to delete servers.
  • Added Romanian to list of supported languages.
  • Re-did how Modules work on Donation Store. Added docs explaining them and also how to make your own custom modules:
  • Can now clone packages and categories. If a package is cloned, all commands in it will also be cloned. If a category is cloned, all packages and commands in all packages in that category will also cloned.
  • Categories and Packages can now be re-ordered by dragging and dropping.
  • Removed limit on variable options on dropdowns. It was 10, now it's unlimited.
  • Recommended Packages have been added: Cross/Up sell your other products that tend to be bought together/you want bought together by recommending them at checkout. You can just recommend them, or you can even offer a discount amount or percentage, if a certain product is in the cart already. It will also give you the number of times a product has be recommended and also how many times a recommended product has been added to the cart.
  • Added the name of the category to the Required Package dropdown to distinguish what it is called.
  • Added the category that a category is in inside the "Category" dropdown on packages so you can distinguish between the same name in different categories.
  • Made variables be ordered when creating a package based on when they were added, not by alphabetic order.
  • Removed broken currencies.
  • Add the ability to mark all notifications as "Read"


  • Fixed issue where if you edited the Paygol gateway it would throw an error.
  • Made a default redirect. If no subdomain is used and the user is visiting by an IP Address (usually just after installing, it redirects them to the login)
  • Fixed issue where price of a package on sale would have too many trailing zeros.
  • Fixed issue where the ticket subject, requestor and status weren't showing for pending and closed tickets but were for open tickets.
  • Fixed issue with the price being 0 when letting the customer choose what server they want a package to be executed on.
  • Fixed issue where if a "Choose Server to Execute" was chosen, the View Payment page wouldn't work.
  • Fixed issue with variable pricing.
  • Fixed issue with checkout redirecting to home if still has contents in it.
  • Fixed issue with package gifting.
  • Fixed issue with spaces in usernames.

Instructions for Updating

There are quite a few file changes in this update. All of the file changes are drag and drop. Simply drag the contents the following folders from the update you downloaded, to the folder on your server:

  • DonationStoreV2/middleware
  • controlpanel
  • languages
  • other_modules/DonationStoreEmail
  • other_modules/DonationStoreIPNHandler
  • static/asserts/css
  • static/asserts/js
  • store
  • templates (Only the HTML files, not the individual folders)
  • templates/emails
  • templates/forms
  • templates/install
  • templates/store/default

There haas also been some database updates. Please navigate to:


and run:

python manage.py migrate

Then restart Nginx and Donation Store

service nginx restart

service donationstore restart

If you have caching enabled in Cloudflare etc, purge it.