public function loadByShopNumber($shopNumber)
    {
        if (empty($shopNumber) || !preg_match($this->coreValidations['shop_number'], $shopNumber)) {
            throw new ShopgateLibraryException(
                ShopgateLibraryException::CONFIG_READ_WRITE_ERROR,
                'configuration file cannot be found without shop number'
            );
        }

        // find all config files
        $configFile = null;
        $files      = scandir(dirname($this->buildConfigFilePath()));
        ob_start();
        foreach ($files as $file) {
            if (!is_file($this->buildConfigFilePath($file))) {
                continue;
            }

            $shopgate_config = null;
            /** @noinspection PhpIncludeInspection */
            include($this->buildConfigFilePath($file));
            if (isset($shopgate_config) && isset($shopgate_config['shop_number'])
                && ($shopgate_config['shop_number'] == $shopNumber)) {
                $configFile = $this->buildConfigFilePath($file);
                break;
            }
        }
        ob_end_clean();
        if (empty($configFile)) {
            throw new ShopgateLibraryException(
                ShopgateLibraryException::CONFIG_READ_WRITE_ERROR,
                'no configuration file found for shop number "' . $shopNumber . '"',
                true,
                false
            );
        }

        $this->loadFile($configFile);
        $this->initFileNames();
    }