public function &GetRootCategory()
    {
        $oRootCategory = &$this->GetFromInternalCache('oRootCategory');
        if (is_null($oRootCategory)) {
            $oRootCategory = clone $this;
            while (!empty($oRootCategory->fieldShopCategoryId)) {
                $oRootCategory = &$oRootCategory->GetParent();
            }
            $this->SetInternalCache('oRootCategory', $oRootCategory);
        }

        return $oRootCategory;
    }