public function IsInCategory($aCategoryList)
    {
        $bIsInCategory = false;
        if (in_array($this->fieldShopCategoryId, $aCategoryList)) {
            $bIsInCategory = true;
        } else {
            $aArticleCategories = $this->GetMLTIdList('shop_category_mlt');
            $aIntersec = array_intersect($aArticleCategories, $aCategoryList);
            if (0 == count($aIntersec) && 0 == count($aArticleCategories) && $this->IsVariant()) {
                $oParent = &$this->GetFieldVariantParent();
                if ($oParent) {
                    $bIsInCategory = $oParent->IsInCategory($aCategoryList);
                }
            } else {
                $bIsInCategory = (count($aIntersec) > 0);
            }
        }

        return $bIsInCategory;
    }