protected function validateShopEdition($shopEdition)
    {
        $expectedShopEditions = [static::COMMUNITY_EDITION, static::PROFESSIONAL_EDITION, static::ENTERPRISE_EDITION];
        if (!in_array($this->shopEdition, $expectedShopEditions)) {
            throw new \InvalidArgumentException(
                'Parameter $shopEdition has an unexpected value: "' . $shopEdition . '". ' .
                'Expected values are: "' . implode(',', $expectedShopEditions) . '". ',
                static::ERROR_CODE_INVALID_SHOP_EDITION
            );
        }
    }