protected function generateViewId()
    {
        $config = \OxidEsales\Eshop\Core\Registry::getConfig();
        $viewId = $this->generateViewIdBase();

        $viewId .= "|" . ((int) $this->_blForceNoIndex) . '|' . ((int) $this->isRootCatChanged());

        // #0004798: SSL should be included in viewId
        if ($config->isSsl()) {
            $viewId .= "|ssl";
        }

        // #0002866: external global viewID addition
        if (function_exists('customGetViewId')) {
            $externalViewId = customGetViewId();

            if ($externalViewId !== null) {
                $viewId .= '|' . md5(serialize($externalViewId));
            }
        }

        return $viewId;
    }