public function drawMainMenu() { if ($this->hasData('mainMenu')) { return $this->getData('mainMenu'); } $desktopHtml = []; $mobileHtml = []; $rootCategory = $this->getRootCategory(); $storeId = $this->_storeManager->getStore()->getId(); $categories = $this->getTreeMenu($storeId, $rootCategory->getId()); $contentCatTop = $this->getContentCatTop(); foreach ($contentCatTop as $ext) { $this->extData[$ext->getCatId()] = $ext->getData(); } // --- Safe handling for dropdown IDs --- $dropdownValue = $this->_sysCfg->general['dropdown'] ?? ''; $dropdownValue = is_string($dropdownValue) ? $dropdownValue : ''; $dropdownIds = $dropdownValue !== '' ? explode(',', $dropdownValue) : []; $counter = 1; $this->removeChildrenWithoutActiveParent($categories, 0); foreach ($categories as $catTop) { $itemPositionClassPrefix = 'nav-' . $counter; $idTop = $catTop->getEntityId(); $urlTop = '' . $this->getThumbnail($catTop) . '' . $catTop->getName() . $this->getCatLabel($catTop) . '' . ''; $classTop = $itemPositionClassPrefix . ' ' . $this->_getActiveClasses($idTop); $isDropdown = in_array($idTop, $dropdownIds) ? ' dropdown' : ''; $options = ''; if ($isDropdown) { $classTop .= $isDropdown; $catChild = $catTop->getChildren(); $childHtml = $this->getTreeCategories($catChild, $itemPositionClassPrefix); $menu = ['desktop' => $childHtml, 'mobile' => $childHtml]; } else { $data = $this->extData[$idTop] ?? []; $blocks = ['top' => '', 'left' => '', 'right' => '', 'bottom' => '']; if (!empty($data)) { foreach ($blocks as $key => $value) { $html = $this->getStaticBlock($data[$key] ?? ''); if ($html) $blocks[$key] = "
" . $html . '
'; } foreach (['top','left','right','bottom','cat_id'] as $key) unset($data[$key]); try { $opt = $this->serializer->serialize($data); } catch (\Throwable $e) { $opt = ''; } $options = $opt ? " data-options='$opt'" : ''; } $menu = $this->getMegamenu($catTop, $blocks, $itemPositionClassPrefix); } if (!empty($menu['desktop'])) { $classTop .= ' hasChild parent'; } $desktopHtml[$idTop] = '
  • ' . $urlTop . $menu['desktop'] . '
  • '; $mobileHtml[$idTop] = '
  • ' . $urlTop . $menu['mobile'] . '
  • '; $counter++; } $menu['desktop'] = $desktopHtml; $menu['mobile'] = implode("\n", $mobileHtml); $this->setData('mainMenu', $menu); return $menu; } public function drawMainMenu() { if ($this->hasData('mainMenu')) { return $this->getData('mainMenu'); } $desktopHtml = []; $mobileHtml = []; $rootCategory = $this->getRootCategory(); $storeId = $this->_storeManager->getStore()->getId(); $categories = $this->getTreeMenu($storeId, $rootCategory->getId()); $contentCatTop = $this->getContentCatTop(); foreach ($contentCatTop as $ext) { $this->extData[$ext->getCatId()] = $ext->getData(); } // --- Safe handling for dropdown IDs --- $dropdownValue = $this->_sysCfg->general['dropdown'] ?? ''; $dropdownValue = is_string($dropdownValue) ? $dropdownValue : ''; $dropdownIds = $dropdownValue !== '' ? explode(',', $dropdownValue) : []; $counter = 1; $this->removeChildrenWithoutActiveParent($categories, 0); foreach ($categories as $catTop) { $itemPositionClassPrefix = 'nav-' . $counter; $idTop = $catTop->getEntityId(); $urlTop = '' . $this->getThumbnail($catTop) . '' . $catTop->getName() . $this->getCatLabel($catTop) . '' . ''; $classTop = $itemPositionClassPrefix . ' ' . $this->_getActiveClasses($idTop); $isDropdown = in_array($idTop, $dropdownIds) ? ' dropdown' : ''; $options = ''; if ($isDropdown) { $classTop .= $isDropdown; $catChild = $catTop->getChildren(); $childHtml = $this->getTreeCategories($catChild, $itemPositionClassPrefix); $menu = ['desktop' => $childHtml, 'mobile' => $childHtml]; } else { $data = $this->extData[$idTop] ?? []; $blocks = ['top' => '', 'left' => '', 'right' => '', 'bottom' => '']; if (!empty($data)) { foreach ($blocks as $key => $value) { $html = $this->getStaticBlock($data[$key] ?? ''); if ($html) $blocks[$key] = "
    " . $html . '
    '; } foreach (['top','left','right','bottom','cat_id'] as $key) unset($data[$key]); try { $opt = $this->serializer->serialize($data); } catch (\Throwable $e) { $opt = ''; } $options = $opt ? " data-options='$opt'" : ''; } $menu = $this->getMegamenu($catTop, $blocks, $itemPositionClassPrefix); } if (!empty($menu['desktop'])) { $classTop .= ' hasChild parent'; } $desktopHtml[$idTop] = '
  • ' . $urlTop . $menu['desktop'] . '
  • '; $mobileHtml[$idTop] = '
  • ' . $urlTop . $menu['mobile'] . '
  • '; $counter++; } $menu['desktop'] = $desktopHtml; $menu['mobile'] = implode("\n", $mobileHtml); $this->setData('mainMenu', $menu); return $menu; } public function drawMainMenu() { if ($this->hasData('mainMenu')) { return $this->getData('mainMenu'); } $desktopHtml = []; $mobileHtml = []; $rootCategory = $this->getRootCategory(); $storeId = $this->_storeManager->getStore()->getId(); $categories = $this->getTreeMenu($storeId, $rootCategory->getId()); $contentCatTop = $this->getContentCatTop(); foreach ($contentCatTop as $ext) { $this->extData[$ext->getCatId()] = $ext->getData(); } // --- Safe handling for dropdown IDs --- $dropdownValue = $this->_sysCfg->general['dropdown'] ?? ''; $dropdownValue = is_string($dropdownValue) ? $dropdownValue : ''; $dropdownIds = $dropdownValue !== '' ? explode(',', $dropdownValue) : []; $counter = 1; $this->removeChildrenWithoutActiveParent($categories, 0); foreach ($categories as $catTop) { $itemPositionClassPrefix = 'nav-' . $counter; $idTop = $catTop->getEntityId(); $urlTop = '' . $this->getThumbnail($catTop) . '' . $catTop->getName() . $this->getCatLabel($catTop) . '' . ''; $classTop = $itemPositionClassPrefix . ' ' . $this->_getActiveClasses($idTop); $isDropdown = in_array($idTop, $dropdownIds) ? ' dropdown' : ''; $options = ''; if ($isDropdown) { $classTop .= $isDropdown; $catChild = $catTop->getChildren(); $childHtml = $this->getTreeCategories($catChild, $itemPositionClassPrefix); $menu = ['desktop' => $childHtml, 'mobile' => $childHtml]; } else { $data = $this->extData[$idTop] ?? []; $blocks = ['top' => '', 'left' => '', 'right' => '', 'bottom' => '']; if (!empty($data)) { foreach ($blocks as $key => $value) { $html = $this->getStaticBlock($data[$key] ?? ''); if ($html) $blocks[$key] = "
    " . $html . '
    '; } foreach (['top','left','right','bottom','cat_id'] as $key) unset($data[$key]); try { $opt = $this->serializer->serialize($data); } catch (\Throwable $e) { $opt = ''; } $options = $opt ? " data-options='$opt'" : ''; } $menu = $this->getMegamenu($catTop, $blocks, $itemPositionClassPrefix); } if (!empty($menu['desktop'])) { $classTop .= ' hasChild parent'; } $desktopHtml[$idTop] = '
  • ' . $urlTop . $menu['desktop'] . '
  • '; $mobileHtml[$idTop] = '
  • ' . $urlTop . $menu['mobile'] . '
  • '; $counter++; } $menu['desktop'] = $desktopHtml; $menu['mobile'] = implode("\n", $mobileHtml); $this->setData('mainMenu', $menu); return $menu; } Singer Jamaica | Track your order
    Track your Order
    To track your order please enter your Order ID in the box below and press the "Track" button. This was given to you on your receipt and in the confirmation email you should have received.
    Order ID
    Billing email

    Brands

    Samsung
    Frigidaire
    LG
    Whirlpool
    Dell
    HP
    Lasko
    Panasonic
    Sertapedic
    • Sale Products
    We can't find products matching the selection.
    • Best Seller
    Close