public function updateSettings()
    {
        // Load the configuration from Paymorrow

        /** @var OxpsPaymorrowRequestControllerProxy $oRequestControllerProxy */
        $oRequestControllerProxy = oxNew( 'OxpsPaymorrowRequestControllerProxy' );
        $aConfigurationResponse  = $oRequestControllerProxy->getConfiguration();

        /** @var OxpsPaymorrowResponseHandler $oResponseHandler */
        $oResponseHandler   = oxNew( 'OxpsPaymorrowResponseHandler' );
        $aConfigurationData = $oResponseHandler->parseGetConfigurationResponse( $aConfigurationResponse );

        $oConfig = oxRegistry::getConfig();

        if ( oxRegistry::get( 'OxpsPaymorrowSettings' )->isSandboxMode() ) {
            $aSettingsMap = array(
                'api_endpoint'         => 'paymorrowEndpointUrlTest',
                'api_resource_handler' => 'paymorrowResourcePathTest',
                'api_operation_mode'   => 'paymorrowOperationModeTest',
            );
        } else {
            $aSettingsMap = array(
                'api_endpoint'         => 'paymorrowEndpointUrlProd',
                'api_resource_handler' => 'paymorrowResourcePath',
                'api_operation_mode'   => 'paymorrowOperationMode',
            );
        }

        // Apply the configuration for module settings
        foreach ( $aSettingsMap as $sPaymorrowKey => $sSettingsKey ) {
            if ( !empty( $aConfigurationData[$sPaymorrowKey] ) ) {
                $sValue = trim( (string) $aConfigurationData[$sPaymorrowKey] );

                $oConfig->setConfigParam( $sSettingsKey, $sValue );
                $oConfig->saveShopConfVar(
                    'str', $sSettingsKey, $sValue, null, sprintf( 'module:%s', $this->getId() )
                );
            }
        }

        // Reset resource cache
        /** @var OxpsPaymorrowResourceCache $oResourceCache */
        $oResourceCache = oxNew( 'OxpsPaymorrowResourceCache' );
        $oResourceCache->cleanCache();
    }