Jump to content

Welcome, Guest!

By registering with us, you'll be able to discuss, share and private message with other members of our community.


Popular Content

Showing content with the highest reputation since 11/08/2019 in Posts

  1. 7 points
    Hi everyone, I'm presenting you today a new module I always wanted to create: Consistency checks. Some of you probably know that I offer paid support services for thirtybees (and prestashop as well). In my line of work I have regularly encountered issues that were caused by inconsistencies between expected and actual environment. Thirtybees core, and modules as well, often expects that some preconditions are met. And if they are not, things can go awry pretty fast. Let me show some examples or issues I've seen: Extra file in /classes directory My customer accidentally copied php file /classes/Tools.php to /classes/db/Tools.php. That's not a big deal, right? Some extra file shouldn't have any affect on the system, right? Well, it does. When thirtybees generates class_index.php (index file for class autoloader) it includes all files from the /classes/* directory into it. In this case, the result was that thirtybees core used Tools class declared in file /classes/db/Tools.php instead of /classes/Tools.php. At the time this accidental copy happened, it wasn't a problem yet. Because both files were the same. But when my customer decided to upgrade to new version, it started to matter. And it bring down the entire server. That's because new version of thirtybees was used with old version of Tools class... It took me 4 hours (and my customer 200 EUR) to figure out the root cause of this problem. The fix was simple -- just delete the extra file. Module were deleted from filesystem without being properly uninstalled We all are guilty of doing this. Sometimes you install some module, and it crashes your shop. HTTP 500 error code. So you login via your ftp and delete the module. And the shop works ok again... But, there's a problem. There are remnants of the module in the system. Entry in modules table, registered hooks, possible overrides,... these all can cause weird stuff and bugs. For example, core updater will not allow you to perform update if it detects that some incompatible module is installed -- but what if you already deleted this module from /modules directory? Sorry, you can't upgrade. Not without going to your database and delete the module information from there... Also, these deleted modules slow down your system a bit. If there are hooks registered by delete module, thirtybees core have to evaluate this situation over and over again, every time the registered hook is executed. That's waste of resources. Images aren't displayed, because the image file is not on filesystem This is classic problem associated with migration. You copied your /img/p directory from old server, and then you import your data into database. It's very easy to make a mistake, and the data in tb_image tables can have different IDs. If that's a case, your images won't show... because the image ID does not correspond with id used to store file on filesystem... Consistency checks module All these issues can't be reproduced on vanilla installation. That's because the inconsistencies does not exists (yet). There are no extra files in classes directory, no modules were force-deleted, and all images are present,... But these inconsistencies will appear eventually, simply by using the system. So I decided to create a module that runs a bunch of tests against your system in order to find these problems. And, if possible, offers a fix. By using this module, you can get your system into the state that matches the vanilla installation as much as possible. And that can help you reduce the chance of bad things happening. At the moment, the module does not really contain a lot of tests, there are only 6 of them. But I plan to implement new along the way -- every time I will work on some problem that is caused by some inconsistency. So you can expect a lot of updates in the future. Also, if you have idea for some checks, let me know. Bug detection This module can also help detect bugs in the core or modules. If you fix some inconsistency, and it re-appears, it's likely there is some bug that wants to be fixed. Don't be shy and report this. Help thirtybees be better and more stable. Download I decided to release this module for free in order to help this project to grow. You can download the latest version of the module here: https://store.getdatakick.com/en/modules/consistency
  2. 3 points
    Hello everyone, it's been a while since the release 1.1.0, and it's time for another one. Version 1.1.1 should be released by the end of November. This new version is all about code quality -- there aren't many new enhancement or dazzling features. Instead, a lot of bugs and errors were fixed. For more information about this release, you can read here. Right now, I would like to ask you all for cooperation with pre-release testing and bug huntint. If you can, please use core updater to forward your store to latest bleeding edge 1.1.x, and test your store properly. If you find any bug, please report it to github. If the bug is an newly introduced problem, or if it's a seriousone, we'll try to fix it before the official release. Other bugs will be tracked and fixed in the next version(s). Thanks in advance for helping this project!
  3. 3 points
    I am, I have just been busy on some projects around thirty bees that don't require coding.
  4. 3 points
    I think you are over complicating the task at hand. What you really want is to force your customers to choose attributes. You don't need to create any special attributes values, or create dedicated default combinations for your products. That's just crazy. And a lot of work for something that should be pretty simple to do by modifying your template. Also, this *virtual* combination would make other tasks in your store a lot more complicated (data import, export to google merchant center,... ) Here's something to get you started: Edit file product.tpl in niara theme, find this code {if ($group.group_type == 'select')} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print"> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} and replace it with this {if ($group.group_type == 'select')} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print"> <option value="0" selected="selected" title="{l s='Choose'}">{l s='Choose'}</option> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}" title="{$group_attribute|escape:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} This code changes the dropdown attribute selector: adds new item named 'Choose' with value 0 -- non-existing attribute value id make this item pre-selected by default using selected="selected" attribute remove selected="selected" attribute from default attribute -- inside {foreach} cycle I've tested it, and it works quite nice. If you are using other types of attributes (color / radio) you will need to modify these as well, in similar manner.
  5. 2 points
    Hi, Another forum where a person arrives with his problem, asks for help, finds the solution on his own, deletes his question and asks to delete his Topic. Yet, this person comes to the forum to find answers to his questions, but if everyone asked to delete his Topic, what would become of a forum? 😢
  6. 2 points
    Not necessarily. SQL injection, for example, can do the trick as well.
  7. 2 points
    Hi, I seem to figure it out! The name on the carrier was to long(about 38 letters), I shored this down and everything work perfectly! Thank you for this wonderful shop and forum! /Daniel
  8. 2 points
    @x97wehner please file an issue for this on github. Otherwise it will be forgotten again. Forum is really not the best place to report bugs. Edit: I have created the issue myself: https://github.com/thirtybees/thirtybees/issues/1115. The fix will be in bleeding edge shortly
  9. 2 points
    Mark please do not insist about this, do you remember the time when you gave me an access and canceled it just before I can try to help you ? About Images to fix. You did not say sorry at all.. you were allways right and I loose so much time with this story. I gave you my help like I always do, others accepted without conditions for free and where really happy about that, but you are too boring by giving conditions and making it difficult and frustrating to help you like this. Usually for payed service I NEED credentials otherwise there is no way I am gonna work for any customers... even if they want to spend 5 hours on skype or screen sharing and pay for that, it will not happen, it's not efficient! Now, I wish you good luck for your bugs to fix, sincerely, and I hope you'll understand my point.. maybe it will help you not to have the same encounter with others dev willing to help in a normal way, remember that without trust you'll not go very far and surely alone !
  10. 2 points
    Depends on what you want. You can make multishop as complicated as you want. The same applies to ASM. There is no limit to complexity of the needs of some customers. For some even Magento needs to be heavily customized. My motto would be: pick your fights. Make a deliberate choice what you want to include and what not. And don't include something just because one customer asked for it. If you don't want to support features you can always choose to leave them in the database but to make them inaccessible in the software interface.
  11. 2 points
    no problem for Module Installation and geo database download and update. The Module seems working fine with my first tests. Nice JOB ! 🙂
  12. 1 point
    That's sad. But I am not totally suprised, tbh. A few years ago we started also to use ASM and had multiple issues. Some were fixed. We use the supply order almost daily now and it saves us a lot time. In general you sould report all bugs you find on github. These days bugs are fixed in quite a short time compared to two years ago. But if the devs, don't know the bug, they can never fix something like ASM...
  13. 1 point
    Thanks. I never looked at it that way. 🙂 My original question was about finding an easy way to integrate Klaviyo (I'm not a fan of MailChimp). I'm a shop owner migrating from Shopify and had been using Klaviyo for my marketing emails. I was advised to check out PrestaShop add-ons (outside this post) for any similar services and found that Carts Guru matched up nicely. So, I have successfully integrated it on my TB store and will be using it for my abandoned cart and other marketing emails going forward. So those of you who might be interested in a MailChimp alternative and don't need landing pages can check out Carts Guru. They even have a freemium plan (which was a major plus for me).
  14. 1 point
    Any merchant that wants to process, store or transmit credit card data is required to be PCI compliant. The solution is simple - don't do that. You can choose a payment provider which complies with the PCI, and which can process, store or transmit card data, so you can avoid the whole struggle with PCI. This means that the payment company you work with processes the payments itself, so your website doesn't touch customer's cards details. They take all the PCI burden themselves. Now, if some payment provider have requirements on stores they integrate with is a completely different topic. It's not PCI, it's a vendor-specific requirement. Braintree, of course, can have any criteria for their partners. But that doesn't mean you are in breach of PCI.
  15. 1 point
    I saw that Prestashop is planning for 1.7.7 to "upgrading all the outdated jQuery versions to the latest version in all stacks without introducing breaking changes, thanks to jQuery migrate". Could that be an idea for Thirty Bees too?
  16. 1 point
    Have you enabled debug mode to see if there is a error
  17. 1 point
    Better, but still not a perfect solution. Because the tax totals are displayed even for items that were not refunded. E.g. you refund the shipping costs and not the products, then both tax details are displayed istead of only the tax details of the shipping costs. And vice versa, I suppose. To avoid this you can use the fix I already posted on Septembre, 6. I removed this fix after severe critics by moderator @wakabayashi. Here is the zip for download again: Fix Bug Order Slip.zip And according to my logical understanding, the minus signs are superfluous, because this is always a positive amount that the customer gets refunded. For vouchers it would even be absurd. Negative amounts would only make sense if the positive amounts were also displayed and a difference would be calculated. Therefor I had included adapted tpl files to generate correct pdfs in this zip, too.
  18. 1 point
    The problem is that this presenter does not display (all) data from an existing order. It wants to display only data related to refunded products. In order to do so, it loads the original order, remove all non-refunded products from it, and adjust shipping costs. Then, of course, the totals must be recalculated as well. Because you removed this final step, the order object has become inconsistent - it now contains refunded products, while the totals still represent original/ordered products.
  19. 1 point
    I am using a theme from Template Monsters that I modified for my needs. The Litespeed PS cache works perfectly for me. You can check if it works by looking at the header of your site. You should see something like ls-cache: hit if it works. You should also notice a significant improvement in the speed of page loading. I am not sure what would be the major differences with the Warehouse or Panda themes that would make it not work. The only issue I encountered that was causing caching issues was modules with full page caches that compete with the LS-Cache. The versions of TB I used the cache on was TB 1.1.0 and 1.1.x (Bleeding Edge) and there was no issues with either versions. A quick Google search yielded this contribution from one of the forum members here: http://nemops.com/litespeed-module-prestashop-thirty-bees/#.XdlDYJNKiF0
  20. 1 point
    Hi There, I'm the Project Manager of Studio 116 Design, we develop a module for PrestaShop 1.6.x called Hyper Attribute we want to migrate the module on ThirtyBees but we have no one developer with the necessary expertise in ThirtyBees to do this job. We like to share our code as open source for the community but we need someone capable to make the necessary adjustments as the module is not working. Would anyone interested in joining on this project? Best Regards Luca
  21. 1 point
    @30bees you thank the wrong person. you have to thank @wakabayashi i have nothing to do with the module
  22. 1 point
    @vincentdenkspelv2 sounds amazing. Thank you! 100h is an immense amount of time and truly exceptional dedication and generosity. I was one of the people asking for expiration of points. I apologise for not being active here sooner. My 'real job' is keeping me super busy and all I do for my shop right now is restocking when needed and answering customer emails. I'll hopefully have time to test the last two weeks the year and I will definitely try to test sooner. I will report here, even if community support has ended. Again, thank you so very much.
  23. 1 point
  24. 1 point
    It would. There's actually a bughancement request for this https://github.com/thirtybees/thirtybees/issues/1024 already
  25. 1 point
    try to apply this fix, hopefully it will solve the issue: https://github.com/thirtybees/thirtybees/commit/70f02721bc8ffae1e82c34a1b160ac3aee856cf8
  26. 1 point
    Google analytics module is for tracking - it adds google tracking code to your pages. Google Analytics API is for retrieving collected infromation from google servers back to your store. Without this module, the dashboard will still show zero
  27. 1 point
    Hi I've reached out to the creator of the Advanced Features Values module (multiple values for a feature), Jérôme Danthinne, to see if he'd like to donate this module to the ThirtyBees project. He has come back to me and said he is willing! 🙂 🙂 His module has great features and is compatible with ThirtyBees! - Initially written for PS 1.5 / 1.6 Please may I ask the ThirtyBees Project Owners to take it from here? Link to module: https://github.com/jdanthinne/advancedfeaturesvalues Link to donation request: https://github.com/jdanthinne/advancedfeaturesvalues/issues/31 Link to thread about Advanced Features Module on Thirty Bees: https://forum.thirtybees.com/topic/3456-multiplefeatures/?tab=comments#comment-30387
  28. 1 point
    The thing about multistore configuration is that there exists multiple layers of configuration. for specific shop for shop group for all shops When some configuration key is not found for specific shop, it will fall-back to more generic settings. In your case, you have configuration on All Shops level set up the same as for your shop B, and (some) configuration key for specific shop A weren't set up correctly. So, thirtybees merged these settings, and resulting mix was not valid stmp configuration. The same probably happens with logo
  29. 1 point
    No need to run the for_a4.php file. Just add a piece of code to the \modules\pm_advancedsearch4\views\js\as4_plugin.js to trigger the lazy loading feature after applying a filter.
  30. 1 point
    Are you asking when the next release will be? Probably by the end of this month
  31. 1 point
  32. 1 point
    There was a price rounding overhaul as part of 1.1.0 release. It's very likely your issue was solved as part of this overhaul. Upgrade. https://thirtybees.com/blog/prices-done-right/
  33. 1 point
    @oliiiix Have you tried to set your rounding rule to "per article" instead of "per line"? If it is set to per line, it will round each position after adding the amounts per article, that is useful for shops selling, for example, ropes in feet or something. If you only set articles by piece instead of per foot or per lbs, then you should set the rounding rule to "per article".
  34. 1 point
    Da https://github.com/thirtybees/bankwire/commit/914010b77f152f7fc487c5bb116a314eb7597f83
  35. 1 point
    Das wäre mir jetzt neu, denn das lässt sich doch über die Status-Einstellungen regeln. Du kannst doch die Rechnungsgenerierung an die Auftragsbestätigung koppeln, indem du den automatischen Versand unterbindest und mit einem selbst erstellten Status "Auftragbestätigung" verknüpfst. Dann kannst du welbst entscheiden, wann der Kunde eine Rechnung sieht. Wenn du darüber hinaus die Bestellung auf Rechnung einer Kundengruppe "Stammkunden" zuweist, die Neukunden nicht angezeigt wird, dürfte der Anteil derjenigen, für die eine Rechnung ausgedruckt, aber dann doch nicht verschickt wird, denkbar gering sein. Den Status "Bezahlt" bekommt die Bestellung natürlich erst nach Eingang des Rechnungsbetrages aut dem Konto. Im Übrigen gilt: Wenn der Kunde es sich anders überlegt, dann erfolgt eine Storno-Buchung, egal ob er gar nicht bestellt oder eine retournierte Lieferung ganz oder teilweise vergütet wird. In einem Fakturierungsprogramm würde man auch nicht anders verfahren. Andernfalls würdest du auch gar nicht deinen Dokumentationspflichten gerecht werden.
  36. 1 point
    I have already changed the code to replace name with reference code. That is fine. It is the current stock level that we need (and in stock out of stock availability notices ) that we need. Especially stock quantity because we allow purchase of out of stock products this is essential. We show it on product page but in the cart is the main place where Customers would actually take note
  37. 1 point
    You could try the German agency Silbersaiten. I remember they had such a module in the past but do not expect best service or modern gui style of modules.
  38. 1 point
    I take it back. This commit is not a fix, it is a brand new bug 🙂 The proper fix would be if ((int)$this->id && !Currency::checkPaymentCurrencies($this->id)) { ... }
  39. 1 point
    Regarding cheque module -- there's obviously error in the module itself. It - instructs system that the module instance needs to be created, for example when rendering module list -- need_instance attribute in config.xml - in constructor, it uses module ID to perform check. This id exists only when module is installed Put these two thing together, add strict php 7.3 warning, and you know the root cause of the issue. The simple solution is remove this module from the filesystem, if you don't use it. Of course, we could modify the Currency::checkPaymentCurrencies method so it always returns array. Unfortunately, this is compatibility issue itself -- there can be some code that do strict comparison on return value, ie: if (Currency::checkPaymentCurrencies($this->id) === false) And such code would stop working. Following checks would still work, though: if (! Currency::checkPaymentCurrencies($this->id)) if ((bool)Currency::checkPaymentCurrencies($this->id) === false) With second problem I can't help you, because I can't reproduce it, and you haven't provided any actionable details.
  40. 1 point
    Installed and ran today. I only do business in two countries, US and CAN. Used geoscreenshot.com to test in in both countries and in both, it set the correct currency based on location so I'd say it works.
  41. 1 point
    Problem solved by removing and reinstall the block new products module.
  42. 1 point
    Thanks @zen for your testing, really appreciated. Anyone else tried this, or has some input? Remember, once it's integrated and released, it's too late to complain... 🙂
  43. 1 point
    Nice to hear that 🙂 ==> I just added a Google font selector with the 15 more popular fonts, just a beta version but it works... just that if is gonna be used in production it is better to look into the Niara theme and remove the call to the Ralway font if not needed anymore. The google font file used is easy to upgrade, it is coming from Gfont API https://developers.google.com/fonts/docs/developer_api?apix_params={"sort"%3A"popularity"} and I just kept the first 15 listed fonts. Next version will show visual renders of the fonts in real time, I hope 🙂 and taking care of font weights as well as italic or others variants.
  44. 1 point
    I don't think TB can handle all scenarios that a e-commerce requires. But it would be good to get a guide how its supposed to work and then find all scenarios that doesn't work and try to solve them. Rather have a solution for that than a new backoffice theme for example.
  45. 1 point
    Patching core files is not the best idea. While this indeed works, it can bring other problems down the road: you can't update your store without loosing this modification (no more coreupdater for you) if you decide to switch to different theme in the future, this will cause you troubles, as other themes actually expect jquery.jqzoom.js plugin to contain original content I would suggest you to do this instead go to your modules find Community Theme Configuration module reset it if it's disabled, enable it
  46. 1 point
    The problem is that there is some module with long controller name. Controller name is used to compose page key in form: module-<module_name>-<controller_name> for example module-paypal-plussubmit Thirtybees has limit 64 characters for these meta page entries. If (( module name lenth + controller name length + 8 ) > 64) then this error is thrown, because the resulting page key can't fit database column. This limit is obviously too small, we should increase it for the next version of tb. I've created github issue to increase this limit. Meanwhile, you can do this to fix the situation: Edit file classes/Meta.php and change size of the page property to 128: 'page' => ['type' => self::TYPE_STRING, 'validate' => 'isFileName', 'required' => true, 'size' => 64], to 'page' => ['type' => self::TYPE_STRING, 'validate' => 'isFileName', 'required' => true, 'size' => 128], You will also have to connect to your phpadmin and modify table schema (you might need to change table name tb_meta according to your database prefix): ALTER TABLE `tb_meta` MODIFY `page` varchar(128) NOT NULL;
  47. 1 point
    you need to go there, and turn on (green check) the left column on Index
  48. 1 point
    hmmm...what do you mean by that ? Can you do a Screenshot ? If it is about the total showing before product list, it's normal. To change that it will require some more JS code or to modify shopping-cart.tpl file, because <tbody> is actually after <tfoot> .
  49. 1 point
    Here is some modifications you can do for Niara theme modify the "../themes/niara/css/global.css" file starting at line 1848 and replace all the content of the @media for mobiles by this @media screen and (max-width: 767px) { .table-responsive { width: 100%; margin-bottom: 15px; overflow-y: hidden; -ms-overflow-style: -ms-autohiding-scrollbar; } .table-responsive > .table { margin-bottom: 0; } .table-responsive table, .table-responsive thead, .table-responsive tbody, .table-responsive th, .table-responsive td, .table-responsive tr { display: block; } .table-responsive tfoot { display: inline; } .table-responsive > .table > thead > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > tfoot > tr > td { white-space: nowrap; border-bottom: 0; } .table-responsive > .table-bordered { border: 0; } .table-responsive .unvisible, .table-responsive thead tr, .table-responsive #cart_summary .cart_total_price #cart_voucher { display: none; } .table-responsive .cart_total_price > td#total_product, .table-responsive .cart_total_price > td#total_price_container, .table-responsive .cart_total_delivery > td#total_shipping { border-top: 0; } .table-responsive #cart_summary > tbody > tr.cart_item > td.cart_quantity { width: 50%; float: left; border-left: 0; border-right: 0; padding: 0; line-height: 34px; } .table-responsive #cart_summary > tbody > tr.cart_item > td.cart_quantity > .cart_quantity_input { float: left; width: 55px; border: 0; } .table-responsive #cart_summary > tbody > tr.cart_item > td.cart_quantity::before { content: "x"; float: left; left: 13px; line-height: 34px; position: relative; } .table-responsive .cart_quantity_button a.btn { border: 0; background-color: #eee; margin-top: 1px; } .table-responsive .cart_quantity_button a.button-minus { margin-right: 10px; } .table-responsive #cart_summary > tbody > tr.cart_item > td.cart_unit { float: left; border-right: 0; } .table-responsive #cart_summary > tbody > tr.cart_item > td.cart_delete { position: relative; bottom: 109px; border: 0; float: right; margin-right: 15px; } .table-responsive #cart_summary > tbody > tr.cart_item:last-of-type { border-bottom: 1px solid #ddd; } } It will do the trick....
  50. 1 point
    "Blutige Liebe". That's how it got translated to German 🙂
  • Create New...