Skip to content

@Traumflug Traumflug released this Jul 25, 2019 · 158 commits to 1.1.x since this release

  • 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.
Assets 3

@Traumflug Traumflug released this Dec 14, 2018 · 405 commits to 1.0.x since this release

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.
Assets 3

@Traumflug Traumflug released this Sep 27, 2018 · 594 commits to 1.0.x since this release

  • 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.
Assets 3

@Traumflug Traumflug released this Aug 16, 2018 · 686 commits to 1.0.x since this release

  • 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.
Assets 3

@Traumflug Traumflug released this Jun 26, 2018 · 730 commits to 1.0.x since this release

  • 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.
Assets 3

@Traumflug Traumflug released this May 2, 2018 · 960 commits to 1.0.x since this release

This is the long awaited thirty bees 1.0.4 release.

Some 805 commits since the 1.0.3 release, most of them small bug fixes. The most stable thirty bees version ever.

Please note that this release works just fine for new installations. Merchants wanting to upgrade their existing shop can't use the usual update procedure, but have to do this manually. How exactly can be seen in the release announcement blog post.

A few larger improvements happened as well:

  • New back office statistics module, Stats Module. It replaces 23 former statistics modules and 2 helper modules. Less clutter, better performance.
  • Image regeneration in back office has been "ajaxed". Special tricks to get large image sets regenerated are no longer needed. It just works.
  • Improved Favicon support.
Assets 3

@firstred firstred released this Dec 4, 2017 · 1243 commits to 1.0.x since this release

  • First release candidate of version 1.0.4

Release notes will be available with the final version of 1.0.4

Assets 3

@firstred firstred released this Aug 18, 2017 · 1441 commits to 1.0.x since this release

  • Database query fixes
  • Fix tax displays on the back office
  • Fix partial refunds on the BO order page
  • RTL admin fixes
  • Improve imports
  • Further fix product customizations in cart
  • Fix select boxes on admin panel
  • Improve duplicating products, stock reporting should be better
  • Fix enabling/disabling columns on pages
  • Fix line rounding when ecotax is enabled
  • Avoid mcrypt when extension is not enabled
  • Timezone validation before applying it (some PHP versions have strict timezone limits)
  • Improved search for language flags when missing
  • Fix Slovene language at install
  • Use HTTPS for Google Maps URLs on the BO order page
  • Fix countActiveLanguages in some cases reporting an incorrect number of active languages
  • Auto prefix table names in DbQuery class
Assets 3

@firstred firstred released this Jul 17, 2017 · 1522 commits to 1.0.x since this release


  • Fix CSV import
    • Import long CSV files
    • Fix image descriptions
    • Fix importing of .xlsx, .xls and .ods files
    • General stability fixes
  • Fix currency display
    • Option to disable auto formatting on the BO Currency page
  • Fix taxes
    • Fix EU Compliance proportionate shipping taxes (requires the latest version of the th EU compliance module as well)
    • Fix taxes on invoices
    • Fix taxes on credit slips
    • Fix taxes when a Cart Rules and or Specific Price Rules are used
    • Reverse Specific Price Rule calculations (enable on Taxes BO page to set a default tax rate)
    • Fix tax rounding on the invoice
    • Fix tax breakdown on invoices
    • Fix tax spreading (e.g. in case a generic €10 discount voucher is used over an invoice with mixed tax rates)
  • Fix discounts
    • Properly calculates the cheapest product of a Cart Rule (within the configured restrictions!)
    • No longer applies the average tax rate, but only applies the tax rate of the selected product
  • Fix product customizations
    • Can now add or remove product customizations in the cart
    • Product customization database structure has been fixed
  • Fix URL rewrites
    • Can now add URLs with an ID on the SEO & URLs BO page
  • Fix RTL languages
  • Fix permissions on module folders
    • Now unzips with umask 0000
  • Fix comments on orders
  • Fix the discount page on the customer portal
  • Fix the custom code BO Page
  • Fixes for the full page cache


  • Increased performance
  • Higher code quality
  • Vagrant files in the git repo
  • thirty bees fixtures
  • State and Country pages have a better (de)select all dropdown menu
  • Remove the last JavaScript sync stuff (no longer deprecation warnings in Chrome)
  • Email validation is the same as SwiftMailer (RFC 2822)
  • Google Maps API key on the General Settings page
  • Synchronize MySQL timezone with PHP timezone
Assets 3

@firstred firstred released this Jun 28, 2017 · 1776 commits to 1.0.x since this release

Work-in-progress: see blog post

Assets 3
You can’t perform that action at this time.