Jump to content
thirty bees forum

the.rampage.rado

Silver member
  • Posts

    1,224
  • Joined

  • Last visited

  • Days Won

    111

the.rampage.rado last won the day on September 2

the.rampage.rado had the most liked content!

3 Followers

About the.rampage.rado

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

the.rampage.rado's Achievements

  1. Sometimes it happens so 🙂 If you experience any other issues, please ask so we can try and help or if you think you've found a bug in the core or any native module you can directly create an issue report at github. Cheeers!
  2. 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(); // === Multistore-safe shop list to touch === $shopIdsToTouch = []; if ($needReposition) { if (Tools::isSubmit('checkBoxShopAsso_category')) { // Admin form posted: only the explicitly associated shops $assoc = Tools::getArrayValue('checkBoxShopAsso_category'); $shopIdsToTouch = array_map('intval', array_keys((array) $assoc)); } elseif (Shop::getContext() == Shop::CONTEXT_SHOP) { // Single shop context $shopIdsToTouch = [ (int) Context::getContext()->shop->id ]; } else { // Fallback: only shops already associated with the category $rows = static::getShopsByCategory((int) $this->id); foreach ($rows as $r) { $shopIdsToTouch[] = (int) $r['id_shop']; } if (!$shopIdsToTouch) { // If somehow none, at least touch default shop to keep data consistent $shopIdsToTouch = [ (int) Configuration::get('PS_SHOP_DEFAULT') ]; } } // Reseat position per associated shop foreach ($shopIdsToTouch as $idShop) { $this->addPosition((int) static::getLastPosition((int) $this->id_parent, (int) $idShop), (int) $idShop); } } $ret = parent::update($nullValues); if ($ret) { // Clean positions in both branches when moved; always clean in the new parent when we reseated if ($needReposition) { static::cleanPositions((int) $this->id_parent); if ($parentChanged && $oldParentId) { static::cleanPositions((int) $oldParentId); } } // Any parent change or depth change requires a full ntree rebuild if ((!isset($this->doNotRegenerateNTree) || !$this->doNotRegenerateNTree) && ($parentChanged || $levelChanged || $needReposition)) { static::regenerateEntireNtree(); $this->recalculateLevelDepth($this->id); // fix depths of descendants } Hook::triggerEvent('actionCategoryUpdate', ['category' => $this]); } return $ret; }
  3. You know our module is completely different from theirs, right? The version we have is long archived and not used in PS.
  4. 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.
  5. 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.
  6. @beetea2, thank you for reporting this bug. You can test the fix from here: https://github.com/thirtybees/thirtybees/pull/2068 But keep in mind that it might be changed during merging so if it's critical and you don't update to edge regularly keep an eye on github so if there are changes in the final fix you can apply them manually. Cheers!
  7. You should not use the global Free shipping if you set it per carrier.
  8. I replicated the bug with my test setup. It does not take into account the conversion rate at this step "Minimum order value".
  9. Can you describe me the exact settings for both carriers in your initial setup to try and replicate this issue with the minimal order value on my test@
  10. 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.
  11. 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.
  12. I've deleted around 50 spam accounts of yours, but let's hear what your offer is today. 🙂
  13. Sorry, I was confused by the previous topic. No, currently the client can have only one email. Multiple addresses, yes, but not multiple emails. Moved your question to a new thread.
  14. Go to the user you want to merge and (REMOVED SCREENSHOT) EDIT: Not looking at the last post. Question was split in new thread.
×
×
  • Create New...