Leaderboard
Popular Content
Showing content with the highest reputation since 08/12/2025 in all areas
-
The thread in prestashop forum is quite interesting. I am now with 50k of products and notice here and there some performance issues. But these are almost always issues on my own code. With 3.4 million products you will find even much more such stuff. But these issues are often not relevant, if you have only 1k products. In my expierence the perfomance issues came to 90% from modules and maybe 10% from bad hardware or missconfiguration. What is the name of the corresponding thirtybees module?2 points
-
I managed to achieve a similar result with CSS and a slight modification of the theme tpl file. product.tpl ~451 {elseif ($group.group_type == 'radio')} <ul> {foreach from=$group.attributes key=id_attribute item=group_attribute} <li><label class="radio-btn"> <input type="radio" class="attribute_radio" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if}> <span>{$group_attribute|escape:'html':'UTF-8'}</span> </label></li> {/foreach} </ul> {/if} The following label was added inside the list-item element: <label class="radio-btn"> Then the CSS to get the button display that I wanted: /* applies button style to all radio elements */ /* default as configured is a block presenting a vertical stack of options */ label.radio-btn { cursor: pointer; display: block; } label.radio-btn input { position: absolute; top: 0; left: 0; visibility: hidden; pointer-events: none; } label.radio-btn span { padding: 7px 14px; border: 2px solid rgb(var(--color-dark-gray-rgb)/var(--color-opacity-03));/*replaced #EEE;*/ display: inline-block; color:var(--color-dark-gray-rgb);/*replaced #333; */ border-radius: 0.3rem; text-transform: uppercase; width:100%; } label.radio-btn span:hover { background-color:#002b45;color:#ffffff; border-color: #3498db; } label.radio-btn input:checked + span { border-color: #009BA2; color: white; background: #3498db; background-image: -webkit-linear-gradient(top, #3498db, #2980b9); background-image: -moz-linear-gradient(top, #3498db, #2980b9); background-image: -ms-linear-gradient(top, #3498db, #2980b9); background-image: -o-linear-gradient(top, #3498db, #2980b9); background-image: linear-gradient(to bottom, #3498db, #2980b9); } /*adjust fieldset styles on the radio button attributes*/ fieldset.attribute_fieldset .attribute_list ul li { float:unset; text-align:center; margin:0.5rem; } The theme is based on the Community Theme. Hopefully those who want to take an approach not requiring additional javascript will find this information helpful.2 points
-
@the.rampage.rado I'm now using this on my live site and all is well. Thanks again!1 point
-
Thanks! Github search sucks. I search there for "view" it doesn't show the "blockviewd" repository... I looked only 5 minutes in the code, but it looks sensible. I see, that tb is reading the cookie and afterwards loading the needed products.1 point
-
https://github.com/thirtybees/blockviewed It also collects product data from cookies. After all, this module has no value for customers, so why install it in the store?1 point
-
1 point
-
Wow! Thanks very much for the speedy work! However I am reluctant to redo my shipping once again. The setup I have now is working as expected. But I'll try this patch on my test site.1 point
-
This one has some inline styling to hide it. Just for future reference (knowledge is power sort of thing) you can simply add the word "hide" to the class descriptors since all themes I'm aware of that are available for Thirty Bees use bootstrap 3 or higher(?) I believe this is a much better approach than using an inline style declaration to accomplish this code change. <button class="btn btn-lg btn-success" name="saveCustomization" style="display:none;"> Instead Use: <button class="hide btn btn-lg btn-success" name="saveCustomization"> IF you want to do same within a tpl file, you should insert an "*" (asterisk character) after the first brace "{" and before the last brace "}" - this method also removes the commented text from the template output. It does get slightly more complicated if you have a line with multiple smarty directives in the code you want to comment, but the big plus, besides cleaner code, is that whatever you comment does not affect the rendering of your html in any way as it simply does not exist in the output. <!-- {l s='After saving your customized product, remember to add it to your cart.'}--> Instead use: {* l s='After saving your customized product, remember to add it to your cart.' *} (Note the space between the asterisk characters and the code content itself.) Hopefully folks find these two tips useful in some way.1 point
-
You're misusing the settings. You should have only one carrier for every single carrier you work with and assign free shipping according to weight/price in it as follows: In my case - I offer free shipping over 100 BGN, as you can see you have to add second range (upwards of 100 BGN) and assign 0.00 as cost. Then in FO in BGN (ignore the double currency, this is a local requirement currently as we are addopting the Euro from Januar 1st): And in Euro: In general don't make 'paid' courier up to your free delivery and then second courier for free deliveries for over XXX. This will skew your statistics for courier usage later on.1 point
-
1 point
-
Hey everyone, I’ve been using ThirtyBees for a while now and really value what it offers us as merchants. But keeping this project strong takes all of us pitching in. If TB has helped your business, please consider leaving a TrustPilot review, making a donation, or becoming a supporter. Even small contributions add up and make a big difference. Let’s help keep ThirtyBees growing! 🚀1 point
-
Post the solution here. Most of the time production shops have issues and need a solution fast.1 point
-
Something that I think is working, of course not perfect as some things are done in js and not at backend but... Warehouse's product.tpl {elseif ($group.group_type == 'radio')} <div id="product-options"> {foreach from=$group.attributes key=id_attribute item=group_attribute} <input type="radio" id="attribute_{$id_attribute}" class="attribute_radio" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} hidden /> <label for="attribute_{$id_attribute}" class="btn {if $group.default == $id_attribute}active{/if}"> <span class="label-text">{$group_attribute|escape:'html':'UTF-8'}</span> </label> {/foreach} </div> {/if} css: /* Warehouse buttons css START */ /* Ensure buttons behave like inline blocks and center content */ #product-options .btn { display: inline-block; padding-left: 10px !important; padding-right: 10px !important; text-align: center; border: 1px solid #ccc; border-color: #ccc; background-color: white; color: #333; font-weight: normal; margin: 3px; min-width: 65px; white-space: nowrap; transition: background-color 0.3s ease; outline: none; box-shadow: none !important; } /* Style for the selected state (checked radio button) */ #product-options .btn.active { background-color: #55c65e; color: white; } /* Hover effect for inactive buttons */ #product-options .btn:hover { background-color: #d3d3d3; } /* 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 { display: inline-block; width: 100%; text-align: center; } /* Warehouse buttons css END */ js: $(document).ready(function () { // Handling click events for selecting attributes $('#product-options .btn').on('click', function () { $(this).siblings('.btn').removeClass('active'); $(this).addClass('active'); $(this).prev('input[type="radio"]').prop('checked', true).trigger('change'); // Trigger PrestaShop's findCombination to update the combination details findCombination(); }); }); I would like to move the sorting to BO but for now it is what it is. EDIT: Corrected code as there was no need to reorder using js.1 point