public static function loadMarketplacesConfigWithPreset($preset)
    {
        if (self::$cache == NULL)
            self::$cache = new Maestrano_Util_Cache();
        self::$cache->cache_path = dirname(__FILE__) . '/';
        self::$cache->cache_time = 43200; // 12h

        if(!$data = self::$cache->get_cache('dev-platform')) {
            $apiKey = self::$config[$preset]['environment.api_key'];
            $apiSecret = self::$config[$preset]['environment.api_secret'];
            $host = self::$config[$preset]['dev-platform.host'];
            $api_path = self::$config[$preset]['dev-platform.api_path'];

            try {
                // Call to the dev-platform
                $response = \Httpful\Request::get($host . $api_path . "marketplaces")
                    ->authenticateWith($apiKey, $apiSecret)
                    ->send();
                $data = $response->raw_body;

                if ($response->code >= 400) {
                    throw new Maestrano_Config_Error("HTTP Error, code: $response->code", $response->code);
                }
            } catch (Exception $e) {
                error_log("maestrano-php: An error occurred while retrieving the marketplaces. Error: $e");
                error_log("maestrano-php: Re-using existing cached configuration, if any.");
                if (!$data = self::$cache->get_cached_file('dev-platform'))
                    throw new Maestrano_Config_Error("No cached configuration found.");
            }

            self::$cache->set_cache('dev-platform', $data);
        }

        // Transform json as an associative array
        $json_body = json_decode($data, true);

        // Dev-platform error management
        if (array_key_exists('error', $json_body))
            throw new Maestrano_Config_Error("An error occurred while retrieving the marketplaces. Body content: " . print_r($json_body, true));

        self::loadMultipleMarketplaces($json_body['marketplaces']);
    }