Jump to content
thirty bees forum

the.rampage.rado

Silver member
  • Posts

    1,223
  • Joined

  • Last visited

  • Days Won

    111

Posts posted by the.rampage.rado

  1. Can you describe more detailed repro steps for this bug?

    I'm unable to replicate it for now.



    EDIT: Never mind, I replicated it. We should move the category on the same level and we should not have a category with the same position in the new place.

    Can you try this if it's working for you so I can make a PR?

    Category::update

    public function update($nullValues = false)
        {
            if ($this->id_parent == $this->id) {
                throw new PrestaShopException('a category cannot be its own parent');
            }
    
            if (PageCache::isEnabled()) {
                PageCache::invalidateEntity('category', $this->id);
            }
    
            // Read current persisted parent (and level) before we write anything
            $row = Db::readOnly()->getRow(
                (new DbQuery())
                    ->select('`id_parent`, `level_depth`')
                    ->from('category')
                    ->where('`id_category` = ' . (int) $this->id)
            );
            $oldParentId   = $row ? (int) $row['id_parent'] : 0;
            $oldLevelDepth = $row ? (int) $row['level_depth'] : null;
    
            if ($this->is_root_category && $this->id_parent != (int) Configuration::get('PS_ROOT_CATEGORY')) {
                $this->is_root_category = 0;
            }
    
            // Update group selection, if provided
            if (is_array($this->groupBox)) {
                $this->updateGroup($this->groupBox);
            }
    
            // Compute target depth from the new parent
            $calculatedLevelDepth = $this->calcLevelDepth(); // throws if parent invalid
            $parentChanged        = ($oldParentId !== (int) $this->id_parent);
            $levelChanged         = ($oldLevelDepth === null) ? true : ($oldLevelDepth !== (int) $calculatedLevelDepth);
            $this->level_depth    = $calculatedLevelDepth;
    
            // If parent changed we must reseat position; otherwise do it only if duplicate exists
            $needReposition = $parentChanged || (bool) $this->getDuplicatePosition();
            if ($needReposition) {
                if (Tools::isSubmit('checkBoxShopAsso_category')) {
                    foreach (Tools::getArrayValue('checkBoxShopAsso_category') as $idShop => $value) {
                        $this->addPosition((int) Category::getLastPosition((int) $this->id_parent, (int) $idShop), (int) $idShop);
                    }
                } else {
                    foreach (Shop::getShops(true) as $shop) {
                        $this->addPosition((int) Category::getLastPosition((int) $this->id_parent, $shop['id_shop']), $shop['id_shop']);
                    }
                }
            }
    
            $ret = parent::update($nullValues);
    
            if ($ret) {
                // Clean positions in both branches when moved; always clean in the new parent when we reseated
                if ($needReposition) {
                    Category::cleanPositions((int) $this->id_parent);
                    if ($parentChanged && $oldParentId) {
                        Category::cleanPositions((int) $oldParentId);
                    }
                }
    
                // Any parent change or depth change requires a full ntree rebuild
                if ((!isset($this->doNotRegenerateNTree) || !$this->doNotRegenerateNTree) && ($parentChanged || $levelChanged || $needReposition)) {
                    Category::regenerateEntireNtree();
                    $this->recalculateLevelDepth($this->id); // fix depths of descendants
                }
    
                Hook::triggerEvent('actionCategoryUpdate', ['category' => $this]);
            }
    
            return $ret;
        }

     

  2. Regarding the modules - I mean that I think there could be modules that change the shipping status via API. Regarding the statistics - I'm sure there is none. 🙂

    Those KPIs are internal parameters and every large organization is tracking them.

    I'm working on a module that could track such data and I'm thinking if we can modify the delivery date-time when we set the Delivered status. 

    image.thumb.png.f873b111a5deff8eb14035d3e74a5439.png

  3. Hi there,

    I'm curious if any of us is tracking those two vital KPIs for their shops?

    Handling time (TTS - time to ship) - the time between receiving an order and shipping it.

    Shipping time - the time between shipping from your warehouse and delivery to the customer.

    Delivery time - sum of both.

    So are any of us using modules or internal tools to measure those KPIs? This is useful for inner workings optimizations and, of course, for comparing carriers serving the same delivery zones.

    I'm curious if editing the delivery timestamp in the table during marking it as Delivered or at a later point is a viable option for making those stats more accurate. I, as a small merchant, do this in bulk when I have free time to clear the 'Shipped' orders from my list. I imagine there are shipping modules that also track delivery and will mark the orders as Delivered or Returned, etc, but I've never worked with similar.

  4. How do you hide your 'weight' courier when the price goes over $60? The customer should see your 'free' courier with FREE and under it same courier with some cost for the weight bracket the order falls into.

    For me this is very confusing both from customer UI perspective and from administration side.

  5. 7 hours ago, beetea2 said:

    I just installed a brand new TB installation on a sub directory of my main site to test the currency conversion and free shipping. Free shipping does not work as expected when converting from one currency to another.

    Am I doing something wrong?

    __________________________

    US$ - no free shipping:

     

    Screenshot_20250831_231037.jpeg

    _____________________________________________________

    CAD dollars - same product and quantity - gets free shipping:

    Screenshot_20250831_231127.jpeg

    _____________________________________________________________

    My Settings for the free shipping carrier:

    Screenshot_20250831_231802.jpeg

    __________________________________________

    Screenshot_20250831_231830.jpeg

    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:

    image.thumb.png.035a7c80a388528bb8a73df805ca245b.png

    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):image.png.5a78ecfbc9c911a9ff38521a406d2d01.png

    And in Euro:
    image.png.5b4be7f368e67700c53dc3819cf6fbf7.png

    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.

    • Thanks 1
  6. 1 hour ago, led24ee said:

    What is the point of forum when everything must be in github ?

    The point of github is to optimize the work of the developers supporting the platform. If you want your problem to be fixed quicker you'll take the 'extra effort' to register a github profile and submit your issue there.

    Otherwise we should have separate person gathering issues here (some of which can't be replicated on third party installations due to module conflicts) and you can imagine this will be far from optimal.

  7. As there is an update that there is work being done behind the scenes I don't find any reason for this thread to be pulled up.

    Of course it will remain open but if you have some issues with your installations - bugs, etc - you should file them in github so when work commences on bugs again they get resolved quickly. If you have found a solution for your bugs - even better - put it again on github.

  8. Did you really do so?

    You get a warning for spamming. The post will be edited. The next time I will have to ban your profile (and every separate profile you make). If you edit the post and add the link I will ban you.

  9. Great to know you no longer experience this issue!

    Look around the forum in the Announcements section and you will find very good news regarding the image system in thirty bees if you're using older version of it. The newer versions of the system offer native support for webp and avif files with very little changes needed to the theme and modules.

    Cheers!

  10. The module itself is very old and proven. And separately it has nothing to do with calculations.

    There were lots of changes in the rounding in thirty bees.

    In the most current version (1.6) it has no differences so what I can advise is to research gradual update to 1.3, then 1.4, 1.5 and 1.6.

    During those updates you will notice lot's more improvements, bugfixes, security fixes and new features.

    In order to do the updates you will have to install Collect logs module and update your Core updater module.

    Look for each version release thread here https://forum.thirtybees.com/forum/2-announcements-about-thirty-bees/ and follow the update instructions to each version.

    Generally no or very little modifications are needed to the theme (if you are using 3rd party one) and the majority of modules continue to work.

    Running more than 5 years old software is not recommended.

  11. What version of thirty bees are you using? What theme?

    Describe your problem in more details - you see all images as blanks or only few?

    Post your configuration of image entities here.

    • Like 1
  12. I use the free version of Google Tag Manager Consent Mode Banner Free v1.1.2 - by Tag Conciergе.

    Works OK, with one language but has no option to translate in more in the free version. Works flawlessly with Google's privacy requirements (not only a banner).

    • Thanks 1
×
×
  • Create New...