Leaderboard
Popular Content
Showing content with the highest reputation since 05/09/2025 in all areas
-
Hi everyone We've updated the Shops using ThirtyBees page + home page banner as requested. https://thirtybees.com/powered-by-thirty-bees/shops-using-thirty-bees/ If your site isn't on there or if there's an issue, please let me know and we'll sort it out asap. Thanks to @the.rampage.rado and everyone else concerned for creating the list and everyone who submitted their sites! I must say, seeing these sites, I was super impressed - some are even giving Shopify and Prest*sh*p a run for their money - especially in terms of designs. Obviously our sites are on ThirtyBees, so they're just better anyways 😉 Well done to all, and keep up the good work and please remember, if you haven't already, to please support ThirtyBees and become a member 😉 Your support helps us keep ThirtyBees alive and help it grow and thrive! https://forum.thirtybees.com/support-thirty-bees/6 points
-
Hello everyone, I'd like to announce new upcoming feature, and as always ask for testing and reporting any and all issues, problems, and enhancement requests. This new functionality is names List Filters. You can test it by upgrading your store to list-filters branch (using core updater in custom targets) What this new functionality do? On every (filterable) lists in back office you will find a new icon in upper right corner: When you click on it, new section will appear. Here, you can define additional filters that will be applied to the list. The new filters are applied together with the standard filters from list header. But these new filters are slightly more powerful, because you can select operator - not, contains, starts with, between, any of Also, developers can define additional filters in AdminControllers that do not depend on list columns. For example, I have added new filter fields for Order list controller - (Customer - Email, Customer - First Name, Customer - Last Name). So you can filter order list by customer email, even though customer email is non one of list columns! We will be slowly adding more and more filter fields based on your suggestions. Let us know what you need!. This functionality is not 100% completed, but it's quite stable. I've been using it on few production servers without any issues for a few weeks now, so it should be safe for you to test it as well. We already have a few enhancement we want to implement. One of them is support for filter presets -- you will be able to save your filter settings, and easily switch between different presets. Now it's your turn. Please test and give feedback. I'm sure there is a lot to improve here. I'm very excited about this new feature, as I wanted to do have this for a few years now. And finally it's coming 🙂4 points
-
Sorry ich habe das Thema total vergessen. Das wurde in meinem Shop mittlerweile auch ganz anders gelöst. Ich erachte es als sehr sinnvoll solche Produkte zurückzustellen. Wir berechnen daher bei uns einen score wo verschiedene Parameter entscheiden, wie die beste Reihenfolge ist. Aber ok das ist ein anderes Thema. Zur Lösung: der Core Code ist hier wirklich hässlich... Du verwendest auf deinem Shop das Filter Modul. Deshalb muss man die Lösung da suchen. Das Module heisst blocklayered. Suche die Datei blocklayered.php. Es gibt dort eine Funktion: public function getProducts($selected_filters, &$products, &$nb_products, &$p, &$n, &$pages_nb, &$start, &$stop, &$range) Die musst du bearbeiten... Suche die Zeile: m.name manufacturer_name, Füge danach folgendes ein: IF(stock.quantity>0,1,0) AS sort_helper, Nun füge zudem nach "ORDER BY" folgendes ein: sort_helper DESC, Nun sollte es funktionieren. Hier noch ein kleiner Screenshot: Funktioniert das so für dich? Ich konnte diesen Code nicht intensiv testen, da meine Shops nicht dieses Modul nutzen. ACHTUNG: bei jedem Update dieses Modul wirst du das wieder anpassen müssen.3 points
-
TB rocks.. still doing new websites with it 🙂3 points
-
Thirty bees is still alive, that is the only thing that counts for me 😊 A lot of great things are going on github. It would be wishful, if we could clone Datakick somewow, but might be difficult 🫠3 points
-
Hi, I adapted Brevo's (Formerly SendInBlue) PS 1.7 version of their module to work on thirty bees and php 8.3. I didn't test on lower php versions, but it should work on php 8.0+ I believe. It connects and works and, for the price, they offer quite a bit of digital marketing functionality. Module is attached sendinblue_tb_v5.0.36.zip3 points
-
I've added the option to set columns as hidden by default. When you create list column, you can pass 'hidden' => true, and thirtybees will not show it by default. Here's example: https://github.com/thirtybees/thirtybees/blob/f27320165d9e788af9f702af547adaaed6e0db90/controllers/admin/AdminOrdersController.php#L179 Once we implement list column customization, we will be able to show those default hidden columns, hide columns that are displayed by default, or even reorder columns in the list.2 points
-
This is a module I got the Copilot AI to create which exports products from a Thirty Bees store to a XML format that can be used to upload to Google Merchant center so they can be added to the shopping feed. The module extracts the following product details from a Thirty Bees store database: ✅ Product ID (<g:id>) ✅ Title (<g:title>) ✅ Short description (<g:description>) ✅ Product URL (<g:link>) ✅ Image URL (<g:image_link>) ✅ Price in store currency (<g:price>) ✅ Stock availability (<g:availability>) ✅ Product condition (<g:condition>) ✅ Brand (Manufacturer) (<g:brand>) ✅ MPN (Manufacturer Part Number) (<g:mpn>) ✅ GTIN (EAN or UPC if available) (<g:gtin>) ✅ Category name (<g:product_type>) These are far from the total number of field you can use with Google Merchant center but they include the minimum amount to get the product feed accepted. To install the module download the attachment exportgoogleshopping.zip from this post, and add a new module from your TB admin area and it will appear in the administration section when uploaded I created this module purely for my own personal use, but thought i would share it with the community for anyone else found it useful. It was my first time using AI to generate a module and I was suprised how well it managed to do it. But as i am not a developer I don't know if the code itself maybe buggy or insecure so if you are worried about that then maybe don't use it on a live store or uninstall it after you generated the XML file. I have tested it on both 1.5.1 and on 1.6.1 versions of TB and it worked OK on both for me, and the feed was accepted by Google Merchant center as valid. But I cannot offer any support for it should it not work for someone else or take any responsibility for any problems that might occur. I am happy if someone else wants to update and improve on this should module should they wish to. For those who might be interest in what prompts to give to an AI to generate a module like this one see below: "Create a Thirty Bees module that exports product data to an XML feed for Google Shopping. The module should include the following features: ✅ Manual XML generation via a "Generate XML" button in the back office ✅ Customizable title and description for the feed ✅ Dynamic price handling based on the store's default currency ✅ Stock availability pulled from the database (in_stock or out_of_stock) ✅ Condition extracted from the product's condition field (new, used, refurbished) ✅ Correct image retrieval using Product::getCover() ✅ Brand (manufacturer) added to <g:brand> if available ✅ MPN (manufacturer part number) added to <g:mpn> if available ✅ GTIN field dynamically populated with EAN or UPC if available ✅ Category assigned to <g:product_type> ✅ A "Return to Modules" button for navigation back after interaction ✅ Ensure clean XML output without empty fields ✅ Store feed file in a configurable location (default: /google_feed.xml) Include full module code in PHP that correctly integrates with Thirty Bees, following best practices for PrestaShop-based platforms. The module should be installable and configurable from the back office." exportgoogleshopping.zip2 points
-
1 point
-
Unfortunately, but in order to track google Ads retargeting, it is necessary to add a GTM tag in the store. And about GTM integration with this cookie module it is best to ask the developer of this module. I don't buy any ads from google and have no need to do such integration.1 point
-
@musicmasterAs it's not clear from the title of the post that it's about Prestools.1 point
-
@Raymond could you tell me if the reordering feature works for you in Home slider? I'm now adding the native core image extension support to the module. You can try those changes: https://github.com/thirtybees/homeslider/pull/141 point
-
Do you see this "id_product_attribute" in the possible keywords when you set up your structure? Because I don't see it. In what use case you need this there?1 point
-
I am waiting for Mollie support since two or three years. All I need for my shop is Mollie, a nice and modern way to change my start page for making it more attractive for my customers in visual and speed terms and a better way to manage my catalogue in a whole (Prestashopmanager or Storecommander).1 point
-
Hi everyone, I'd like to ask you for a help with testing upcoming new feature - Packs with Combinations. As you may know, it is currently not possible to have combinations for Pack products. This new feature add supports for that. What is it good for? For example, let say you are selling sport equipment. You want to create a bundle for soccer players containing soccer ball, socks, and cleats. Every one of those products in pack can have different variants (ball can have size 1-2-4-5, socks can have different colors and sizes,...). Because thirty bees does not support packs with combinations, you would have to create a dedicated Pack Product for every combination of products that you want to sell. That's not very user friendly, and it's very hard to maintain. That's why we have this new feature. How it works: 1) When you are adding a product with combinations to your pack, you can now select a special item variant named virtual attribute. (It's stupid name, I know. I'm open for better name suggestions 🙂 ) 2) when you add this special variant to the pack, and save the product, thirty bees will automatically generate a matching Attribute containing all combinations of that product. This is a special Attribute that can be only used by Pack products that contains the virtual attribute item. System will make keep the attribute values in sync with existing combinations. You can rename the attribute name, and also rename the attribute values. 3) In pack product, you can use this new attribute to create/generate combinations: 4) On front office, you now have an option to select specific combination of a pack: This approach is not the nicest. I personally don't like the need for dedicated Attribute that is kept in synch with specific product combinations. But by doing it this way, we have achieved backwards compatibility. Every modules that work with combinations/attributes can work with that. There are a lot of corner cases that I'd like your help with testing. If you are willing to help, you can use core updater. In module settings, select 'custom target' as your distribution channel, and then update to branch pack-combinations: Thank you for your help!1 point
-
I am now on bleeding edge and php 8.4. My first impression is, that it works pretty well beside deprecation warnings. I will keep you updated 👍1 point
-
1 point
-
It may be easier to just use this module. I've been using it for years. You can configure the feed and have it auto ingested by Google without you needing manually export and upload. https://store.getdatakick.com/en/modules/datakick-data-export-and-import1 point
-
Sure, it make sense, but only after we add support for list column customization. Without it, there would be too much clutter.1 point
-
Thanks you very much. It works now 👍 This feature will be so great, love it. Especially, if we can save presets. 🤩 As I had this functionality in mind too. I wonder about something. Why do you implement the new $this->filters_list? I wanted to add this functionality $this->fields_list, then I would also allow an employee to select the columns he wants to display. He could then save the columns and also filters. IMO this would help merchants to customize their list to their needs even further. They can just hide unnecessary stuff and as a dev we can add more columns, without having to think a lot about "is it too much". A module like orderlistcarriers would just be obsolete with a few lines of code. Also your example with the customer email would be good. Maybe some merchants would like to see in orders list!? I hope you get my proposal. Maybe I don't see the drawbacks!? 😊1 point
-
Thanks everyone for testing. I've created the issues for those problems, and will make sure they are addressed before we merge this into bleeding edge. As we found out, the solution we implemented before was not good enough for all use cases. The virtual/dynamic attributes are fine in most cases, but sometimes we need even more flexibility. So we implemented yet another enhancement in this area -- full-fledged packs per combination. You can now choose between two different versions of packs Pack of existing products -- original implementation, when pack is defined on product lavel. You can use virtual/dynamic attributes here to tweak pack content using dynamic product attributes, as described in this thread above Pack of existing products - combinations -- new functionality. When you select this, you won't be able to define pack on product level, but you will have to define packs for every combination separately. This gives you great flexibility, as your combinations can have totally different/independent pack items. But obviously, it will be more complicated to set up, as you need to define pack content for every and each combinations. So choose this only when appropriate Pack content on combination level: This new functionality is in pack-combinations branch. If you can, please help us with testing once again.1 point
-
Thanks for testing Yes, so far the values are saved in cookies. However, there is now an abstraction (ListViewStorage interface) that will make it possible to save filter values differently in the future. It's a todo task that I would like to implement soon. With this in place, cookies will be much smaller, and we will be able to implement additional features like saved filter presets. I think that will make this quite useful Thanks for bug report. I believe I have fixed this - could you please re-test on latest version of this branch? If you still get the error, please send me a controller class, so I can figure out what is wrong.1 point
-
Da TB relativ einfach zu modifizieren ist sollte es weitaus weniger Probleme geben als bei verschachtelten Shops. Wer seinen Shop über Tap und hoch und runter bedienen kann ist schon fast dabei durch. Kontrastreiche Font Farben sind gegenläufig zu dem allgemeinen Händler Geschmack.1 point
-
Unfortunately it won't be easy to upgrade smarty to newer versions easily. New versions of smarty raises a lot of new deprecation warnings when templates call php methods directly. We are now required to register all methods that are allowed to be called from smarty template. As you can imagine, that's something absolutely impossible for system like thirtybees/prestashop -- we simply don't have that information. For example, if some module template contains code like this: {if Configuration::get('PS_INVOICE')} <span>...</span> {/if} we would have to tell smarty engine that the method Configuration::get exists and can be called. In the near future, using that template without registering the method would cause runtime error. Because we are using templates from third party modules and themes, we simply don't know what methods are used. The only potential solution for us is to parse templates to collect list of all used methods so we could register them before template is used. While the parsing can be done only once (when template source changes), the registration of methods needs to be done on every render. That will cause quite a big performance impact - we need to load the info from somewhere and pass it to smarty engine. I don't understand why this change has been introduced, and I'm very unhappy about that. We will either have to keep using smarty 4.4.1 forever (which is not possible due to new php versions not supporting it). Or we will have to invest days or weeks of work to implement that stupid registration, just to get to the same point we are now.1 point
-
1 point
-
@the.rampage.rado your post reminded me, to renew my supscription 👍1 point
-
There are a lot of use cases, but I guess it depends on what needs you have. For example, we have recently used this feature to find all products within certain profit margin range.1 point
-
This is the module: https://www.lineagrafica.es/en/modulos-prestashop/eu-cookie-law-banner-blocker-prestashop-module/1 point
-
1 point
-
You need to edit Meta.php, method getCategoryMetas, lines ~ 443-449 https://github.com/thirtybees/thirtybees/blob/21b15c3e17188037e4862ddf357b6a3d65f1c3bd/classes/Meta.php#L443-L449 There are three similar lines looking like this: $row['meta_title'] = $title.$row['meta_title'].(!empty($pageNumber) ? ' ('.$pageNumber.')' : '').' - '.Configuration::get('PS_SHOP_NAME'); You want to edit these lines to look like this: $row['meta_title'] = $title.$row['meta_title'].(!empty($pageNumber) ? ' ('.$pageNumber.')' : '');1 point
-
I don't see an error on the PS site. But you can also download from the first post of this thread (first paragraph, word "here"). And you can also scroll down on the homepage of Prestools.1 point
-
@30knees this actually got me thinking about combination selection. I come up with the idea of having some sort of intermediate page for products with combinations (well, some of them). If customer clicks on product, this page would be displayed instead of standard product page. It would work somehow like category, showing all combinations within product. One attribute could be primary to let visitor quickly decide on some main characteristics, in your use case it could be gel or capsules. If he click on any of this, standard product page with pre-selected attribute would open. Or he could scroll down and see all possible variants of the product. Something like this: This flow could be interesting for some products I believe. And it shouldn't be that hard to implement as a module. Just a morning brainstorming session to get me started my week :)1 point