Leaderboard
Popular Content
Showing content with the highest reputation since 05/17/2024 in Posts
-
Today, we are thrilled to introduce the latest version of Thirty Bees: Version 1.6. This update wouldn’t have been possible without the support of our dedicated members. Thank you for being part of our journey! And to those who contributed code—your work is invaluable, and we extend our heartfelt thanks. If you’re not yet a member, consider joining us. Your support, whether through a small donation or by becoming a monthly member, makes a real difference. For just $15 a month with our Silver Membership, you gain access to an array of powerful modules designed to save you time and streamline your workflow. What’s New in Version 1.6? This release introduces numerous core updates and security improvements, some of which are highlighted below: ImageRewrite with AVIF Support: You can now use the AVIF format for images, optimizing quality and load speed. Enhanced Email Subject Control: Customize the email subjects sent during order status changes for better customer communication. Additional Category Description Field: We've added an extra text field in category descriptions for improved flexibility. New Modules: Two new modules are part of this release. One is free for everyone, allowing you to filter specific email domains in the contact form to reduce spam. The other, part of our Premium module pack, limits email-sending attempts from individual IPs, helping to prevent spam attacks. For just $15 a month, the premium pack includes this and other powerful tools to boost your efficiency. You can find all premium modules in the backoffice of your store! Love Thirty Bees, Please Support Us: For non-members, we have introduced a campaign to support Thirty Bees’ ongoing development. After a period, you’ll see a pop-up asking if you’d like to join us as a member or make a donation to support our work. Don’t worry; this pop-up won’t reappear for another two months, so it remains far from intrusive. Paying members, however, will not see this pop-up at all. How can you Support / Help Thirty Bees? We all love Thirty Bees and it has made many businesses thrive and be successful. The truth is that we’ve come a long way together, but there’s still so much more we can achieve. To continue growing, we need your help. We’re looking to expand our team, improve our platform, and spread the word about ThirtyBees to new users and developers. But we can’t do it alone. This is where our community comes in. How You Can Help: Leave a Review on TrustPilot: If ThirtyBees has helped your business, we’d love for you to share your experience. Positive reviews on TrustPilot not only help us reach more people but also build trust within the community. Support Us with a Donation or become a Supporter: Your contributions will directly help us bring more developers on board, enhance the platform, and support our growing user base. Every little bit counts, and it all goes back into making ThirtyBees even better. Spread the Word: Tell your friends, colleagues, and fellow entrepreneurs about ThirtyBees. Your endorsement is the most powerful tool we have to grow our community. Continue to Engage with Us and other Users in the Forum: Share your ideas and feedback, continue to help others like you always have. ThirtyBees thrives on the input and energy of our community. We love and appreciate that you are here! You are what makes ThirtyBees great! We believe in the potential of ThirtyBees and the strength of the community behind it. Together, we can continue to build something amazing—an eCommerce platform that truly serves its users and grows with them. Thank you for being a part of our journey. Your support means the world to us. Happy selling! Petr, Theo & Chiel Image rewrite generic mechanism to define and generate image types for any entity (categogry, products, blog posts,...) unified support for all image formats for all entities avif format chores updated librarires Remove dependency on Jaybizzle\CrawlerDetect, replaced by tbdetectcrawler module donate campaign small enhancements Product supplier: new columns name and comment Order Statuses: support for custom email subject Display calculated weight for pack products Category: new field Additional Description Hreflang: ability to override hreflang mappings Support shortcodes in order messages in backoffice Buttons to delete empty/old carts Automatic deletion of old css, js, and log files. Configurable retention Add button to close threads older than 30 days Expose CMS Categories to webservice New hook - displayAdminCartFooter hook Improve search indexation logic Contact form: support custom validation (two new premium modules - ban ip address, filter messages by content) Save maintainance IP addresses globally Import combination: mechanism to delete only combinations for products referenfed in CSV files Pass {invoice_number} placeholders to order status email templates Better Linux and Windows compatibility Information page: use asynchronous test to prevent page timout Cookie serialization: support saving all filter values privacy and security lot of security fixes Stop using google fonts in back office bugxies PHP compatibility fixes Better logging Fix Saving specific price without rules does not refresh specific prices on products Back office lists error handling Back office lists filter values serialization Category alternate url: check enabled flag Fix SpecificPriceRuleCore::getAffectedProducts Fix deleting default attribute Language deletion - fix directory cleaning Proportionate taxes: Fix shipping tax calculation Contact form: verify that order belongs to customer Fix error with cheapest product cart rules Clear op cache after zip extraction, fixing modules update Fixed translation extraction Fix download product link generation Use debug error page during installation Import: set out_of_stock only when provided KPI: fix refresh functionality Fix issue with incorrect tax breakdown Carrier selection issues Fix carrier weight restriction10 points
-
Hi everyone, I just wanted to raise your attention to the fact that cloudflare recently enabled Speculation Rules API for all plans. This functionality is designed to improve browsing speed by aggressively prefetching potential future assets/pages etc. However, these prefetch requests can be quite dangerous sometimes. Example: I'm in back office modules pages, and I click on 'Uninstall module' button. The confirmation dialog is displayed to ask if I'm sure. But the question is irrelevant - because of this new prefetch functionality, your browser already sent a request to your server to prefetch the response for the uninstall action url. The module is already uninstalled You can see the request in network tab. Even though claudflare responded with 503 error code (meaning the prefetch response will be ignored by browser), the request still made it to your server, and action was executed. If you click 'OK', thirty bees will send the actual request, and it will actually fails with error message "This module has already been uninstalled" That's nice, isn't it. The uninstall/install module buttons are not the only one that are impacted. For example, 'delete' or 'approve' or 'send' buttons in lists in back office, etc... It can also impact front office, most likely -- browser can automatically add product to a cart because it believes that user will click on the "Add to cart" button soon, so better be prepared for that... right. It's quite dangerous optimization. It's true that if thirty bees used POST instead of GET requests to implement these kind of actions, this situation could not happen. But we can't really change that. We will look into a way to prevent/mitigate this problem. Fortunately, browser is sending some HTTP headers that we can use to determine if request is a regular or prefetch, so we can use that to prevent this (hopefully) But until a fix is implemented, I advice you to disable this new prefetch optimization in your cloudflare dashboard. And to be sure, maybe even after that 🙂7 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 🙂6 points
-
Hey everyone! I wanted to share my experience with thirty bees. If you’ve been searching for a robust, feature-rich solution for your online store, I think you’ll be pleasantly surprised by what thirty bees has to offer. Here are some of the reasons I’m running it on all my shops since it's fork : Focus on Stability and Performance One of the biggest headaches in e-commerce can be platform instability - nobody wants a store that crashes or slows to a crawl. thirty bees is built with performance in mind, ensuring that page loads remain snappy and your store stays responsive. This means a better experience for your customers and less downtime for you. It supports most modern caching solutions and runs on apache, litespeed and nginx servers. Easy Migration If you’re already running an online shop on PS or a similar platform, moving to thirty bees can be straightforward. The developers have put a lot of effort into making the migration process smooth. That means you don’t have to reinvent your store from scratch or lose your hard-earned data and customizations. Some troubleshooting will be required if you have to migrate from very old php versions (v5) but there are plenty of help here in the forum and people that can do the job if you're not confident with it. Open-Source Community thirty bees is an open-source project, which means you get the benefit of a community of developers, merchants, and enthusiasts who actively contribute to improvements, security patches, and new features. You’re not tied to a single vendor for updates or support—you can tap into a global network of experts. If you need support or you need some of the quality premium modules you can subscribe for a tiny sum per month, but it's strictly your choice. Rich Feature Set Whether you need advanced product attributes, multiple languages, detailed analytics, or a robust checkout process, thirty bees has you covered. It provides a wide range of native modules and integrations, making it easy to tailor the platform to your store’s needs without having to rely on countless add-ons. New features are added on regular basis while trying to keep compatibility with themes and modules from established developers - packs with attributes, list filters for BO and many more! User-Friendly Back Office The admin panel is designed to be accessible and intuitive, so you can spend more time focusing on growing your business rather than wrestling with confusing settings. Tasks like adding products, managing inventory, and processing orders feel straightforward. If you are bored with just one shop, switch Multistore ON and make your second shop in the same installation - save on development time and running expenses. Strong Compatibility Because it’s based on a well-known e-commerce framework, thirty bees supports a lot of existing modules and themes. You can often bring your favorite PS modules over, or tap into the thirty bees - specific extensions developed by the community. Active Development The team behind thirty bees is committed to ongoing improvements and enhancements. That means bugs get fixed quickly, and you can expect new features to roll out regularly. Staying current helps keep your store secure and competitive. If you find any bugs or request new feature you can post here: https://github.com/thirtybees In Conclusion If you’re looking for an e-commerce solution that combines reliability, performance, and an active, helpful community, I highly recommend giving thirty bees a try. It’s been a breath of fresh air for my online stores, and I’m confident it could be the same for you. If you have any questions about migrating or just want to talk shop, let’s discuss it on the forum! And now a personal appeal to the fellow forum members: thirty bees thrives on community support. Whether you subscribe, donate, or contribute your development skills, your help drives innovation and secures the future of our platform. Our because it is made and maintained by fellow dedicated merchants and developers.6 points
-
I am a day zero user of tb. It looks like the best deicision I could have made. While this project had ups and downs, it's still alive. There were so many huge improvements. Things may take longer here, but are done in a high quality way: Core updater (this is fucking awesome) Extraction of dependencies New image support (webp) Bug fixing / php support I am sure @Eolia has his reasons, why he is doing this on his own. But as I can see, his project is not on github. Which very likely means, that he is really doing this his own. For me that would be too risky.5 points
-
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!4 points
-
I did some testing, and... released a new version of paypal module, and I strongly recommend everybody to update 🙂 There was a serious bug in module. When creating an order, paypal module provided current cart value instead of amount that was actually paid. This should be always the same, unless it isn't. For example, if you can do this: clicks on payment button that opens paypal checkout page open your store in different tab, and amend the cart (add/remove products, change carrier,...) switch back to paypal tab, and conclude the payment Normally, the order would be created with Payment Error state. But because of the bug in paypal module, the order would be created in Payment validated state, everything marked as fully paid. Neat.4 points
-
4 points
-
This module allows you to have lists of something -- usually it's list of products, customers, or orders. These lists are meant for employees only, and are usually used as some kind of todo list or trello board. There are few different ways how items can be added to the list (my examples use list of products, but similarly you could work with other entity types) 1) manually -- employee can assign products with lists in back office product page: 2) mass addition -- all products, or all products that matches some criteria can be added in bulk 3) Entry conditions You can set up list entry conditions -- when product is created, or updated, and conditions are satisfied, the product will be added to list. Example use case: Let's say I'm adding new language FR to my store, and I want to have list of all products that needs translation. I create new list named FR translation completed I perform initial load of products -- assign products by condition (english name exists, FR name does not exists) Next, I will create exit conditions (in Set rules > Exist conditionS) -- remove product from this list when product is updated, and FR translation for Name field has changed and is not empty: Now every time I edit the product that is on this list and change Name fields in FR, the product will be removed from the list. I now have a TODO list of products that needs attention of my translator: There are many other use cases. For example, when product price changes, product can be added to 'Review price' list automatically. You can have a list of orders waiting for products on backorder, or whatever. You can also create list without any entry or exit conditions, and use it for intracompany communication. For example, your employees can use lists to flag some orders for managers attention, or manually mark products that are low on stock,...4 points
-
As Smile wrote -- adding new field to db, and implement basic CRUD operation on top of it, is quite simple. Anyone who really need it can can implement this functionality. Hoverer, to add this properly to the core, is more complex. We have to considerer other aspects as well, for example: support this field in CSV import expose this field in Webservice, both read and write access impact on themes -- should this be exposed to theme? Do we need to update community-managed themes? since this is a classification field, maybe we should have a new table with all possible values instead of free-text? If that's the case, we need to populate this table during install AND during store update, and make sure the table values are up-to-date (which means future work is needed) and who knows what else It would take a few hours, maybe even days, to do that. It was not worth the effort at the time - no real demand for this field, and if anyone really needs they can create a limited implementation themselves.4 points
-
4 points
-
Thanks for letting me know. This module checks only existence of .jpg source file. With the image rewrite, we can now upload and store source files in different formats as well (webp, avif, png,...) I will have to update the module to check for those as well4 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
-
We’ve seen similar PayPal-related issues before, especially when customers use privacy tools or open the payment link in another browser or device. Sometimes the order doesn’t register at all, or worse, duplicate payments occur. In our experience, the most effective approach was to implement metadata tagging — similar to what datakick suggested — and ensure PayPal webhooks are tightly synced with the order validation process on the platform. We’re currently running a tailored setup for one of our projects where metadata is saved before redirection and verified post-payment. That’s helped cut down these cases significantly. Happy to share more if someone’s interested.3 points
-
Dear ThirtyBees Community, We hope this message finds you well. This is a heartfelt outreach to you, our valuable community and users. As many of you know, ThirtyBees was born out of a passion for creating a reliable, feature-rich, and accessible eCommerce platform that empowers businesses of all sizes. From the smallest startups to large enterprises, our goal has always been to provide a tool that helps your business thrive. Today, we’re reaching out to our incredible community—people like you who believe in the power of open-source, who have supported us, and who continue to shape the future of ThirtyBees. We’ve come a long way together, but there’s still so much more we can achieve. To continue growing, we need your help. We’re looking to expand our team, improve our platform, and spread the word about ThirtyBees to new users and developers. But we can’t do it alone. This is where our community comes in. How You Can Help: Leave a Review on TrustPilot: If ThirtyBees has helped your business, we’d love for you to share your experience. Positive reviews on TrustPilot not only help us reach more people but also build trust within the community. Support Us with a Donation or become a Supporter: Your contributions will directly help us bring more developers on board, enhance the platform, and support our growing user base. Every little bit counts, and it all goes back into making ThirtyBees even better. Spread the Word: Tell your friends, colleagues, and fellow entrepreneurs about ThirtyBees. Your endorsement is the most powerful tool we have to grow our community. Continue to Engage with Us and other Users in the Forum: Share your ideas and feedback, continue to help others like you always have. ThirtyBees thrives on the input and energy of our community. We love and appreciate that you are here! You are what makes ThirtyBees great! We believe in the potential of ThirtyBees and the strength of the community behind it. Together, we can continue to build something amazing—an eCommerce platform that truly serves its users and grows with them. Thank you for being a part of our journey. Your support means the world to us. Let’s make ThirtyBees the best it can be - together. Warm regards, The ThirtyBees Team3 points
-
Thanks to everyone who continues to support ThirtyBees, with signing up for new memberships, doing reviews, making donations and spreading the word - from all of us at ThirtyBees, a BIG Thank You!! Your support helps TB survive and thrive, and is noticed and appreciated! To those who want to help - now is the time - your support makes a BIG impact! Thank you! How You Can Help: Leave a Review on TrustPilot: If ThirtyBees has helped your business, we’d love for you to share your experience. Positive reviews on TrustPilot not only help us reach more people but also build trust within the community. Support Us with a Donation or become a Supporter: Your contributions will directly help us bring more developers on board, enhance the platform, and support our growing user base. Every little bit counts, and it all goes back into making ThirtyBees even better. Spread the Word: Tell your friends, colleagues, and fellow entrepreneurs about ThirtyBees. Your endorsement is the most powerful tool we have to grow our community. Continue to Engage with Us and other Users in the Forum: Share your ideas and feedback, continue to help others like you always have. ThirtyBees thrives on the input and energy of our community. We love and appreciate that you are here! You are what makes ThirtyBees great!3 points
-
Left a review—really great project. Since version 1.1, I’ve been trying to convince clients to switch to Thirty Bees. Those who did are really happy with it. Just last month, a client called me and said that a year earlier, I had recommended Thirty Bees to them. They gave it a try and now say they’re never going back to PrestaShop. The main reason? It just works. PrestaShop requires constant maintenance—someone always has to keep an eye on it. While it may have a few more features, Thirty Bees is simply more efficient. It supports newer technologies (like PHP, often a year ahead of PrestaShop) and isn’t packed with unnecessary bloat. If someone just wants to focus on selling and running a business without headaches, Thirty Bees is the way to go.3 points
-
There is a vendor dependency psr/cache that some other modules may also rely on. Updating crashes the site if you have modules that also rely on it and that have their own versions. datakick is seeing whether he can remove the dependency from the core.3 points
-
Hi Guys! Are you getting ready to the new EU Law regarding product safety. Here is a short summary about what it requires from store owners. When selling remotely via a website, the product listing must include: Manufacturer's details: the full name or registered name, registered trade name, or registered trademark of the manufacturer, as well as the postal and electronic address where they can be contacted; If the manufacturer does not have a residence or registered office in the EU/EEA: the full name or name, postal address, and electronic address of the responsible person (responsible entity); Information to identify the product, including its image, type, and other product identifiers; Any warnings or safety information. I already have a module that helps stores to comply with it, but in case you have any questions let me know, as I've been studying the subject a bit lately.3 points
-
Nevermind. I opened an Account at Wise and even, if it's a prepaid card as well. This one got accepted 😅 🤦♂️3 points
-
Here is a tiny module that is s till in alpha stage so please test and use with care. You want to offer virtual gift vouchers to your customers? OK then! Virtual Vouchers Generator How to use this module: 1. Create your voucher products - set those as Virtual so they don't incur delivery if ordered alone. The value of those products will be picked as voucher value. If multiple products are ordered at once the value will be combined into one voucher. 2. Specify the Product IDs for those products in Virtual Voucher Product IDs. 3. Specify the proper statuses when the virtual voucher order is considered paid in Paid Order States (IDs). 4. Configure the rest of the options to your liking. 5. Copy the cron URL and run it at proper intervals (recommended 5-10 mins). Configuration page: Email sent after order validated as paid: Check voucher page (in Niara - adjust module css to your liking!): As I'm still learning, so please keep in mind this module could (and most probably will) have some bugs. And still the lookback logic for validating the orders is not so cleared out. If in future somebody want to take over development would be more than happy. Changelog: 0.7.3 alpha (12/1/2024) - Fixed bugs with translation strings, new email template (single column, mobile-friendly), fixed bug with cron link not including https. 0.7.2 alpha - Minor bugfixes with multistore reCAPTCHA settings, voucher check page, and controller name. 0.7.1 alpha - Introduction of 'Check voucher' page where the customer can see how much funds are left into their multi-use voucher. Integrated with Thirty Bees' reCAPTCHA module (if it's installed, enabled, and configured the reCAPTCHA will be shown here too) - the customer has to enter the validity date of the voucher as a safety measure. The page's friendly URL should be configured in SEO & URLs (or if you don't use SEO URLs, access from here: /index.php?fc=module&module=tbvirtualvouchers&controller=vouchercheck). 0.7.0 alpha - Option to limit the voucher country based on where it was ordered (from invoice address), email tweaks and fixes, new logo with attribution. 0.6.0 alpha - New email template, Bulgarian email language. 0.5.0 alpha - Initial release. To do: further voucher settings add T&C section to configuration so those are attached to the email. pass conditional information to email for country restriction (if available). introduce changelog in the module. tbvirtualvouchers-0.7.2.zip tbvirtualvouchers-0.7.3.zip3 points
-
After calming down from the shock to find 97000 htaccess files in your shop and realizing that 1 shop is gone we now have starting to rebuild shop 2 with the content of shop 1, a task that will take a while because it is 1200 products. But at the same time we will now get a shop up to date with latest versions of everything. But it takes a while to realize that your waorst enemies is not on the outside but on the inside. Anyway I jst wanted to mention that in this new shop we have abandoed both Google analytics and gmail. GA because they use the collected info for marketing. Not just your info, but the info from all your customers as well. Google are now involved in more than 200 court cases because of it. Gmail we abandoned for the same reason partly. They scan f.ex order emails for marketing info, but its becoming more and more hopeless to send attachments. F.ex my business partner the other day bought the prestashop importer module, downloaded it and wanted to send it to me for installation. Not possible, gmail blocked the zip-file. So now we have changed smtp provider and also installed Matomo instead of GA. I cant have Matomo installed "inhouse" so we decided to go with a colleuge who runs both email servers and a Matomo server. If anyone is interested their website is https://mediasafe.pro. A mail account for smtp relay is not free but we can live with 1 € per month for 1000 mails. On the other and a "free" gmail account you pay with your privacy We have used TB since version 1.01, it has been ups and downs, but for the moment it seems stable. Hope it will stay that way also in the future. We have learned our lesson the hard way, but life is about learning. Anders Yuran3 points
-
Thanks for your work, guys! Still very happy to use thirty bees. Obviously I support the project with the monthly subscription and with paid support hours. 😉 I hope, I can find some time for some useful PR on github ⏲️ But I am very busy with my own work, so atm the financial support is easier 🤑3 points
-
3 points
-
Here is the fix for Community theme: https://github.com/thirtybees/community-theme-default/commit/b6584976b52d8e6a818fc031b621c554bdf9fdf5 It is recommended to update to at least 1.5.1 as soon as you can because there are other security fixes between 1.4 and 1.5.1, this time in the core.3 points
-
I'm sure most of you know, and are using collectlogs module. If you are in need to update PHP versions of your store, this is very useful tool. It collects and report all deprecation warnings inside core/modules/themes that you need to fix before you can update to next PHP version. Once all warnings are fixed, it is very safe to update. I've very rarely experienced issues with update when all warnings were fixed before. I have recently updated php version for one store, but this time it went badly. The site displayed 500 after the update, and it took some time to get it working. I had to fix a lot of issues that should have been detected by collectlogs module, but weren't. Well, it turned out, that there was one module that was kind enough to turn off error reporting inside its constructor. So every time this module was used, all subsequent warnings were silently ignored. After update of PHP version, those warnings were no longer warnings but regular errors, and nobody can ignore that... I suggest you look into your modules main php files and look for error_reporting(-1); or error_reporting(0); It can looks like this: https://github.com/Hritani/matar/blob/9645ec14a0d8ca9fa2f7644b0b7b28c3f3bf76b4/modules/hooksmanager/hooksmanager.php#L83 points
-
Here is the last archive of TB installed for a new website for a friend.. it might not contain all modified modules likes currency and language.. but I have not much time to pack it again.. the may be to update github or make a new repo, but time goes fast, I'll try to do that this week. Enjoy, and please report bugs or fix them.2 points
-
1.6 is the latest official version which offers the latest bugfixes, security fixes and new features. Running versions prior to the latest on ecommerce sites is like running windows 7 or XP in 2025 - 'it's working' but leaves a bad taste in your mouth. If 1.6 is not 'stable' for somebody they should consider hunting bugs in their theme and 3rd party modules as the system has never been more stable.2 points
-
A stable system that is being maintained. Lots of features. Easy to update. Excellent support. Thank you!2 points
-
As of today it seems: Still thirty bees https://www.kabuk.co.il https://www.rigtigkaffe.dk https://www.ting-shop.dk https://snoir.dk https://sokkeposten.dk https://www.berez.co.il https://ecykelhjelm.dk https://www.quebec-amerique.com https://www.add-one.fr https://www.safetyrestore.com https://store.mindnutrition.com https://www.chesspoint.ch https://www.lens.co.il https://www.x-pens.com https://americanqualityhealthproducts.com https://www.babycompany.be https://www.bountyhuntertoys.com/store https://www.prospeed.dk https://www.led24.ee https://optlasers.com https://twighockeycompany.com https://nani.com.pl https://www.spielezar.ch https://veganline.com https://southerncottagegifts.com Returned to Prestashop https://milmanltd.co.il https://ecowarehouse.nz https://www.minikneet.com Not tb anymore https://www.susenso.nl https://www.123crea.eu https://www.belfas.com https://www.onlinetoys.com.au https://mettepshop.dk https://shop.hhof.com https://rvpartshop.com https://paradisearcadeshop.com https://4kidspoint.pl https://www.levysjewelry.co.il2 points
-
Post the solution here. Most of the time production shops have issues and need a solution fast.2 points
-
Well, it's definitely a blocker. When system tries to generate thumbnails for products (or other entities), it look into db for any image types assigned to image entity. If image entity is missing in DB, no image type will be returned, and no thumbnail will be generated. So, having image entity table populated, and having image types associated with image entities, is a prerequisite.2 points
-
Hello, that's exactly what we're going to do. I'm still doing some tests, as mentioned in another topic. Datakick suggested that it could be done in 1-2 hours of work. That's money well spent. Of course you want to try things out yourself and if you're successful with small changes to the code, that's great. For other things, however, we're at the point where we'll outsource it, which includes the final adaptation for PHP 8.x.2 points
-
Hi everyone, we are happy to announce new premium module: Contact Form IP Address Blocker module First of all - this module only works on thirty bees version 1.6.0 -- if your store is not on this version, you will need to update first. Thirty bees 1.6.0 introduced new hook that allows modules to filter contact form messages. This Contact Form IP Address Blocker module use this hook to block sending messages based on IP address. It collects statistics for every IP address -- how many times it send/attempted to send contact form message. This information is shown to administrator, and they can ban IP addresses of spammers. There is also an option to automatically ban IP addresses after they send N messages in the last H hours (where both N and H can be configured) Note that the ban is for sending contact form messages only. So, if you ban somebody by mistake, they can still use your site, they just can't send you contact form message -- they are asked to send email instead. I hope you will like this new addition to our of premium modules.2 points
-
I've been playing around with this idea for 2 days. Up until now I've always used dropdowns for my size selections but I would like to make them buttons. Of course thirty bees does not offer such thing currently. I tried editing the radio button case in product.tpl to display bootstrap buttons and hide the circle. Some js, some css and it works for Niara: Product.tpl changes: {elseif ($group.group_type == 'radio')} <div id="product-options" class="btn-group" data-toggle="buttons"> {foreach from=$group.attributes key=id_attribute item=group_attribute} <label class="btn btn-outline-primary {if ($group.default == $id_attribute)} active{/if}" for="group_{$id_attribute}"> <input type="radio" id="group_{$id_attribute}" class="d-none" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} autocomplete="off"> {$group_attribute|escape:'html':'UTF-8'} </label> {/foreach} </div> {/if} Additional css in my example to make them 'table-like' (when I have mutliple sizes): /* Ensure buttons behave like inline blocks and center content */ #product-options .btn { display: inline-block; /* Inline block to align buttons horizontally */ padding-left: 10px !important; padding-right: 10px !important;/* Adjust padding as needed */ text-align: center; /* Center text horizontally */ border: 1px solid #ccc; /* Border style */ background-color: white; /* Background color */ color: #333; /* Text color */ border-radius: 3px; /* Rounded corners */ margin: 3px; /* Space between buttons */ min-width: 65px; /* Ensure minimum button width */ white-space: nowrap; /* Prevent text wrapping */ transition: background-color 0.3s ease; /* Smooth background transitions */ outline: none; /* Remove focus outline */ box-shadow: none !important; /* Remove any shadow */ } /* Style for the selected state (checked radio button) */ #product-options .btn.active { background-color: #43b775; /* Green background for active buttons */ color: white; /* White text for active buttons */ border-color: #ccc; /* Keep the border color unchanged */ box-shadow: none !important; /* Remove any box-shadow on active buttons */ } /* Hover effect for inactive buttons */ #product-options .btn:hover { background-color: #d3d3d3; /* Light grey background on hover */ color: #333; /* Keep the original text color on hover */ border-color: #ccc; /* Keep the same border color as unselected buttons */ box-shadow: none !important; /* Remove any box-shadow on hover */ } /* Remove the black frame (focus outline) */ #product-options .btn:focus, #product-options .btn:active { outline: none; /* Remove the black focus/active border */ box-shadow: none !important; /* Remove any shadow effect */ } /* Style the radio button (which is hidden) */ #product-options input[type="radio"] { position: absolute; opacity: 0; } /* Ensure uniform text size */ #product-options .btn .label-text { font-weight: bold; /* Bold text */ display: inline-block; width: 100%; text-align: center; } Additinal js to assign the selected button to the radio buttons and sort the buttons alphabetically (as they appear in the order they are created in BO, unlike with dropdown where it sorts them): document.addEventListener('DOMContentLoaded', function() { const productOptionsContainer = document.querySelector('#product-options'); if (productOptionsContainer) { const buttons = productOptionsContainer.querySelectorAll('.btn'); buttons.forEach(function(button) { button.addEventListener('click', function() { buttons.forEach(function(btn) { btn.classList.remove('active'); }); button.classList.add('active'); const radioInput = button.querySelector('input[type="radio"]'); if (radioInput) { radioInput.checked = true; // Manually trigger the combination update in Thirty Bees if (typeof findCombination === "function") { findCombination(); } } }); }); } }); document.addEventListener('DOMContentLoaded', function() { const productOptionsContainer = document.querySelector('#product-options'); if (productOptionsContainer) { const buttons = Array.from(productOptionsContainer.querySelectorAll('.btn')); // Get all buttons // Extract the text values and sort them numerically or alphabetically buttons.sort((a, b) => { let valueA = a.textContent.trim(); let valueB = b.textContent.trim(); // Convert to numbers if possible, else compare as strings if (!isNaN(valueA) && !isNaN(valueB)) { return parseFloat(valueA) - parseFloat(valueB); } else { return valueA.localeCompare(valueB); } }); // Clear the container and re-append sorted buttons productOptionsContainer.innerHTML = ''; buttons.forEach(button => productOptionsContainer.appendChild(button)); } }); The issue is that this change does not work with Warehouse theme, I'm unable to make the button change the active combination, also the sorting does not work. My questions are: 1. Which functions were changed for detecting the combinations in this section? Currently Warehouse's implementation only adds to the cart the default combination so the js I have here does not work. 2. Can we move the sorting in the core for radio buttons? Currently it's done with a js during the output. 3. Is somebody else interested in such development and migration of the community themes? Are there people that use radio buttons in their pages in 2024? If we implement something similar for FO, the BO should still refer to them as 'radio buttons' as this is interwoven in many many parts of the system. 4. Can this be pulled into a module that replaces this part of the theme so this module could be theme-agnostic? Something similar to https://addons.prestashop.com/it/combinazioni-personalizzazione/49820-product-combination-images-swatch-attributes.html but for the buttons. 5. Shopify has a nice functionality - Swatch King - if we can implement something similar it will be nice - https://apps.shopify.com/variant-swatch-king The PS module and this also implement color swatches for combinations. The color swatches per combination is also a nice feature to have.2 points
-
2 points
-
Normal customers can't call backoffice controller. But it doesn't necessairly mean, that you don't have issues on the FO. If you are using cloudflare, I would just deactivate it for now. I have done it and everything works fine again.2 points
-
Yes, that's the one. Deactivate this It would work nicely on websites that follow REST principles, and don't have side effects on GET requests. But on sites that perform side effects on GET requests, it's very dangerous. It's stupid that in thirty bees you can 'delete' a record by simply writing url into url address tab and hit enter.2 points
-
Thanks. 1) We know about the the first set of warnings -- this is issue with legacy code, that stored transient information into objects during import. It will take a lot of refactoring to fix this, unfortunately. Currently it's not high on priority list, as it's still just a deprecation warning. This will be issue on php9, tough 2) Tools::getDateFromDateFormat - thanks, fixed in bleeding edge 3) consistency check module -- I haven't updated the module to check for all supported extensions -- do not use this module on bleeding edge yet2 points
-
I recently started using prestools... while it does not have all of the functionality of SM, I have found it to be quite useful in facilitating batch edits and various other needs. I currently use it for light category work and daily for products. I have the supplier plugin and plan on getting two more - so far so good.2 points
-
I've created my own theme using community theme as the starting point. I'm on my second round of revisions and while there is still much to do to get it up to the level that Panda used to be (I don't like the new version - too "glitchy" for me), I still use Panda's features and UI design as my foundational vision. I prefer a left column - blocked theme design as that is what I have found to be most appealing to my customers and new visitors. It seems to have some "sticky" to the site once a live person visits - I believe because navigation is easier and you can change left column options very easily, allowing you to experiment with "widgets" aka blocks that your customers find useful. Here is the first UI rendition of my theme: Here is the second theme derivative, based on the first theme effort (for various reasons this site is still in development): A shorter product listing that shows the various "status" details (drawn from keywords in the available_now/later variables): Out Of Stock (deny order), Out of Stock (allow order aka backorder), Available but Discontinued aka Out of Print, Coming Soon - essentially an Out of Stock (deny order) setting but keyed off of the available_later text. I was going to key this off of availability_date and allow_oosp, but opted for the keyword option instead because the available_later text can be overriden within the template file and that keyword can be seen in the back office as an indicator. Product Detail Page: I apply a "wrapper" class in an outer div at the head of the description to achieve this effect based on brand - not really fond of this particular one, but it is easily changeable in the custom.css file that gets loaded last (can't use autoload for this purpose) ensuring the custom theme at least has the chance to override most elements if you cannot get specificity on desired target elements.) I know others disagree with me on this approach, but it works well for me as the majority of what you see is because of the theme's custom.css file. Cart Pulldown: Checkout button turns to a lime racing green when hovered. Built in (but modified) One Page Checkout featuring stock status indicators: It is responsive and mobile "friendly", though there is still a bit of tweaking needed on some elements for mobile optimization, everything is functional on both an iPhone6 (very old phone) and a Motorola G 2024 (recently purchased) at this time. I haven't done a bunch of speed tests yet, but things are pretty snappy on a shared hosting account (used for development). I do plan to add a few other touches, like search results with icon image and some variation of the owl carousel (the homeslider module that ships with TB1.4 is atrocious). Side note: I also do not plan to port this to TB1.5 as that version is going off the rails from the original stated mission/purpose of the project (IMO) and I fear that it will ultimately be another Prestashop scenario for store owners and developers alike. My point in posting the visuals is so that folks can see the potential of the TB1.4 platform. It is substantially better than PS ever was but the same ills that befell PS seem to be creeping into TB - and while that is a sad situation - I cannot find a better open-source solution available at this time. Good Luck - I am open to helping others, provided you have a solid plan of what you want to achieve and at least some idea of how. PS: There is a security vulnerability in the header.tpl file of the 1.1.0 version of community theme - it has to do with the IE polyfill.io library. You can find more info here: polypill.io malware? - Technical help - thirty bees forum2 points
-
I would not mix WP with other websites on the same hosting or subfolder. If they hack your WP they will infect your thirty bees too. Not saying that thirty bees is 100% secure but it's exposure is much much smaller so less bad-actors play with it. Otherwise you can run it in subdomain, subfolder, any way you like. SEO-wise I don't think the juice will flow differently between both cases.2 points
-
I think tariff will be quite a useful addition for shops selling cross-border. And If we don't want it we can simply turn it off by a switch in Preferences. Regarding BBD - yes, this might be quite a niche thing for food/medicine/pet shops, etc.2 points
-
2 points
-
Deleting the deleting cache/class_index.php file worked. Thank you. As soon as I saw that suggestion I remembered I did this a few years ago Wish I remembered that. I did make a note of it now so I can try this again if it ever happens. Thank you!!!2 points
-
2 points
-
Found the reason. Some files was missing. I have no idea why. Just copy via ftp from local machine to server was solution.2 points
-
It would makes sense to update mine from chesspoint.ch to https://www.spielezar.ch 😏2 points