Skip to content

Releases: thirtybees/thirtybees

Version 1.5.1

27 Nov 08:03
Choose a tag to compare

Bugfix version that fixes new bugs introduced in major release 1.5.0

  • Problem with saving products with custom fields in back office (#1730)
  • Problems with Full Page Cache (#1737)

Build for other PHP versions can be found on thirtybees website

Version 1.5.0

09 Oct 10:34
Choose a tag to compare


  • Premium modules
  • Extracted minification from core, introduced new module instead
  • Extracted email sending functionality from core, introduced Mail Transport modules
  • use Server Side Cache [redis/memcache] for smarty caching
  • Attributes / Features list - drilldowns to products
  • Support combinations for virtual products
  • New carrier conditions - min order weight, min order value, max order value
  • Cookies optimization - smaller, faster
  • CSV import - support custom import entities
  • Contact form: option to disable confirmation email
  • Revamped File Manager - image handling, update library, security fixes
  • Revamped modules zip files handling - unification, fixed problem with deleting assets
  • Currency - ability to specify decimal places
  • Cart rules: ability to set maximum discount value
  • Support for custom notifications in toolbar
  • System Notifications
  • Webservice: Order Detail Pack informations
  • Webserivce: expose Order Cart Rules
  • Experimental features - stringify fetches
  • Support tinymce editor customization
  • Public names for features

Bugs and Maintenance

  • A lot of bug fixes in core and native moudles
  • Fixed lot of PHP 8.2 compatibility warnings
  • Fixed redis/memcache/acpu cache
  • Security fixes
  • Removed support for PHP 7.3 and older
  • Removed unused code (push notifications, configuration tests, rijndael)
  • Fixed dashboard and stats reporting
  • fixed ecotax calculation
  • Fixes BO order edit - support free product, weight calc, restock...
  • Fixed installation packs data - tax rates, zones,...
  • Decreased dependency on third party library (google maps,...)

Database schema changes

tb_system_notification - new table
tb_order_detail.product_reference - increased size
tb_order_detail.product_supplier_reference - increased size
tb_product.reference - increased size
tb_product.supplier_reference - increased size
tb_product_supplier.product_supplier_reference - increased size
tb_search_index.word - increased size
tb_stock.reference - increased size
tb_supply_order_detail.reference - increased size
tb_supply_order_detail.supplier_reference - increased size
tb_search_engine - deleted
tb_tab_module_preference - deleted

Version 1.4.0

14 Nov 07:27
Choose a tag to compare
Update cacert.pem

Version 1.3.0

18 Oct 09:05
Choose a tag to compare

Version 1.2.0

03 Mar 09:04
Choose a tag to compare

We are very happy to announce release of new version 1.2.0

This release consists of a lot of enhancements and bug fixes that were implemented in the last 2 years, including stuff like:

  • PHP 7.4 compatibility - this version is fully compatible with PHP 7.4
  • Object model audit - database and php model are now in sync. This fixes a lot of weird issues and problems
  • Ability to auto migrate database during update - missing database tables and columns are automatically created by core updater
  • Installation fixes - a lot of bugs were fixed in installation process. Installation should now run more smoother
  • Bug fixes - many issues were solved
  • and more...

If you already running your store on thirtybees, simply use core updater module to update to latest stable release.

If you want to test this version please download installation package

Version 1.1.0

25 Jul 15:50
Choose a tag to compare
  • Core Updater is now the tool to update thirty bees core. A lot faster, a substantially more reliable update strategy. It can update all versions beginning with thirty bees 1.0.1. And it can downgrade / roll back just as easily in case a new release doesn't work for your shop.
  • Module tbupdater should be kept installed, it's needed for updating modules for the time being.
  • Big refactoring of error reporting and exception handling by @getdatakick. A new exception page and more important for merchants: reports no longer go into the rendered shop page, but get reported in the JavaScript console. PHP errors messing up shop pages are a thing of the past.
  • Another big audit of price rounding. Prices in the cart get now rounded properly according to the configured rounding strategy (by item / by line / by total). And invoices, credit slips, all now do as well.
  • This audit also brought a lot of detail improvements in displayed prices. For details, see
  • In multishop environments, one no longer sees duplicate entries for currencies.
  • Editing translations no longer requires to raise the max_vars PHP setting. Thanks to @ziyaindia.
  • When checking for module updates, not only the module name, but also the module author has to match. This should solve a class of issues with thirty party modules named like official modules. It also means that one can exclude a (edited) module from updates by simply changing the module author, e.g. from $this->author = 'thirty bees' to $this->author = 'thirty bees tweaked'.
  • Coupons/vouchers with taxes get now taken into account as well, thanks to @Zengraph.
  • With multishop, lists of customer groups now list only groups available in the currently selected shop context, thanks to @chitmann.
  • Also thank you to Emanuel Schiendorfer, David Gasperoni, Mark, Yaniv Mirel and Geo for their contributions. Much appreciated!
  • There is a new section in the statistics module: Stats by Groups. Written and contributed by @Zengraph.
  • Considerable chunks of theme installation were re-written. It should work now simpler and no longer mess with back office modules.
  • This added support for different image sizes in distinct themes. Developers would call this a per-theme namespace for image types.
  • Theme configuration XMLs in config/xml/themes/ disappeared. As they never got edited, they were always identical to config.xml in the theme folder.
  • This also removed config/xml/themes/default.xml, which was used for community-theme-default, so no more surprises when installing a shop and re-installing the default theme.
  • Initial theme settings in the installer were aligned with those of the actual default theme. Before, (re-)installing the default theme later had quite distinct results from what one had right after installation.
  • Theme metas (where one turns left and right columns on and off on particular pages) now allow to configure not only pages known by the theme, but all pages available.
  • CSV import now supports custom date formats in CSV data. This should allow e.g. U.S. merchants to import CSV data from a European manufacturer. Thanks to @ksimunovic!
  • A new, awesome looking default theme, Niara.
  • Previous theme is still there.
  • Now one can switch back and forth between both themes coming with thirty bees. Support for the "back" step with third party themes is forthcoming, one can still install them, of course.
  • Module beesblog is now a default module.
  • Two new modules, thememanager and tbhtmlblock. Already in use by theme Niara, they get disabled when installing theme community-theme-default.
  • Modules & Themes Catalog can now actually list modules and themes.

Notes to developers:

  • Price rounding audit contained the following steps:
    • Get the cart into rounding properly.
    • When creating an order, take these rounded prices from the cart unchanged. This ensures all downstream calculations use these rounded values rather than the current product price. This also allowed to remove duplicated rounding in classes like HTMLTemplateInvoice or HTMLTemplateOrderSlip. As a metaphor, consider rounding to be like a discount: price in the order is what the shop customer saw, not what the merchant started with.
    • Reviewed all classes dealing with prices to always round to database precision. As if PHP couldn't do better. For strategies, see Dealing with Prices at Traumflug's.
    • Replaced a whole lot of (hopefully all) hardcoded rounding precision values with constant _TB_PRICE_DATABASE_PRECISION_ or Configuration::get('PS_PRICE_DISPLAY_PRECISION') as appropriate.
    • Controllers rendering option fields ($this->fields_options[]) containing prices should use field type 'price', validation 'isPrice' and, new, a cast 'priceval'. The latter converts to a float, then rounds to database precision.
  • AdminController was changed to apply the cast for option fields ($this->fields_options[]) before validation, not after. This allows to implement a cast which shapes the value (like priceval() does).
  • There is a new field type for a class' storage field, type TYPE_PRICE. It's a float like TYPE_FLOAT, but also rounds the value to database precision, to get precisely predictable price and tax calculations.
  • Started to remove outdated code. Retrocompatibility code for PS 1.4 and before or PHP 5.5 and before.
  • Removed AdminRangePriceController and AdminRangeWeightController. Introduced in 2011, they were never available in back office. Classes RangePrice and RangeWeight are kept, of course.
  • Themes now support only one variation. Not sure whether multiple variations every worked before, code had quite a number of discrepancies. Attempting to install a theme with multiple variations now reports an error.
  • To get the path of the config file of a theme before and after 1.1.0, use Theme::getConfigFilePath().
  • Image type names are now enforced to contain the theme name. Recommended standard is to let the system do this, it prefixes the theme name. For getting links to product images, use Link->getImageLink(), for getting product image sizes, use Smarty getWidthSize and getHeightSize, see e.g. in product_list-item.tpl in both thirty bees themes. For getting just the appropriate type, use ImageType::getFormatedName(). Other variations are allowed as well, see ImageType::getFormatedName().
  • And yes, fallbacks for hardcoded image types were implemented. They come with a small performance penalty, though. To see how to fix a theme with hardcoded image types, see commits like thirtybees/niara@1047053 or thirtybees/niara@7f682df.
  • There are a whole lot of new hooks, see New Hooks in 1.1.x in our forum.

Version 1.0.8

14 Dec 22:05
Choose a tag to compare

Notes to merchants:

  • File consistency checks in back office -> Advanced Parameters -> Configuration Information now also report obsolete files. To allow you to keep your installation tidy.
  • These file consistency checks were extended to cover files in vendor/, for the same reason.
  • Note: looking up back office -> Advanced Parameters -> Configuration Information after updates or in case of trouble is always a good idea. This pages detects missing and changed core files.
  • CSV import example files were fixed to match the importer's default settings.
  • Fixed text direction in back office for RTL languages (Hebrew, Arabic, ...) and other themes than plain Bootstrap when switching language and on installation.
  • Back office -> Localization -> Currencies learned another currency format, 0.000,00 X, thanks to @idnovate.
  • Back office -> Advanced Parameters -> E-mail now allows to set an arbitrary subject for emails sent. Default is the formerly enforced text, [{shop_name}] {subject}, thanks to @getdatakick .
  • Fixed a fundamental flaw in back office message handling. Non-error messages (warnings, confirmations, infos) never got displayed to the user. Expect to see helpful messages in back office which weren't there before.
  • The upgrade (in case you upgrade from a previous version) heals some deficiencies in migrated shops regarding URL schemas. Shops which started with thirty bees are unaffected. If you're unsure and care about your SEO ranking, please look up #604 for an attempt to explain the situation.
  • The upgrade also removes back office menu items which existed in PS, but no longer do in thirty bees.
  • The upgrade adds back office menu items which didn't exist in PS, but are new in thirty bees. The migration module didn't do this so far.
  • Note: these last three items belong to migrated shops, ones created with thirty bees from the beginning have all this already.
  • A new back office menu item, Modules and Services -> Modules & Themes Catalog. Still empty, so stay tuned :-)
  • A total of 189 Github commits since release 1.0.7.

Notes to developers:

  • New class ShopMaintenance, which is for running regular maintenance, like cleaning old logs.
  • A new hook in class Mail, actionEmailSendBefore. It allows to tweak emails before they get sent.
  • A new admin controller, AdminCatalogController. Currently empty, plans are to implement a module and theme browsing/finding interface there.
  • Unit tests now do class load tests for all classes and no longer tolerate warnings. This move uncovered 5 bugs in core classes already.
  • Unit tests now get validated for completeness of class loading tests.

Known bugs:

  • Having a product attribute with price impact and also a group price reduction displays a wrong price on the product page. Price in the cart is correct. See #538.

Version 1.0.7

27 Sep 19:16
Choose a tag to compare
  • Full page cache should work now again (known bug in 1.0.6), thanks to @getdatakick.
  • Fixed a security flaw where customers could see shopping carts of other users when Full Page Cache was enabled.
  • Fixed date format for Arabic.
  • Fixed a potential time zone misalignment, which led to cron jobs not executing. Thanks to @doclucas and @getdatakick.
  • Fixed the config.xml vs. Config.xml problem on theme installation.
  • More PHP 7.2 compatibility.

Hundreds of translated strings by @DaoKakao, @ToplakD, @yanivmirel, @elund, @m.tomasovsky, @trace, @Andreaevangelina, @paintspec, @Selwyn, @lutek, @null, @Antagony1060, @Khan27, @amirrzd to German, Russian, Slovenian, Polish, Danish, Hebrew, Czech, Spanish, Afrikaans, British English, Azerbaijani and Persian. Thanks to all of you!

Notes to developers:

  • register() in config/ changed its signature. We didn't find a module using it, but if your module does, use smartyRegisterFunktion() instead.

Version 1.0.6

16 Aug 13:38
Choose a tag to compare
  • Fixed a serious bug which prohibited checkout in some cases.
  • Refactored the translations packing machinery, Crowdin translations for front and back office are back in business. This also uncovered 8 additional languages.
  • Added equipment for module vatnumber v2.1.0. In case you don't use the community default theme, see release notes there on how to get this for your theme as well.
  • Documentation for PHP vendor packages no longer go into the release package (55 files less).
  • Those 11 modules not getting installed by default no longer go into the release package (176 files less, tiny performance improvement). One can still install them by clicking 'Install', of course.
  • Fixed various bugs, of course.

Known bugs:

  • Full Page Cache still causes delivery of 404 and 500 Errors in some installations. Workaround is to turn Full Page Cache off. Other caching variants (Smarty, CCC) not affected.

Version 1.0.5

26 Jun 17:24
Choose a tag to compare
  • Introduction of and This should increase
    reliability of making module and thirty bees core releases a lot.
  • Removal of PHP unserialize() and friends for security reasons, in favor of
    serializing with JSON. With retrocompatibility code, of course.
  • Fixed images reordering for multistores, thanks to @mcdado.
  • No more duplicate manufacturer listings in back office -> Price Rules -> Catalog Price Rules, thanks to @okom3pom.
  • Compatibility with the Litespeed web server (an Apache derivate). Thank you to @lucasRolff.
  • Areas to check after upgrade:
    • Back office -> Preferences -> Store Contacts -> each store: check whether opening hours still appear.
    • In module blockmyaccount / Block My Account: changed the wording to be less personal, so check translations.