ShoppingCartOrder Check Customization

We have identified that products can only be checked in the shopping cart if they are standard products with AccProduct.

If we want to check multi-request resources (QERReuse), such as for duplicate checks or compliance checks, we cannot use the standard libraries of One Identity because the logic is embedded deeply within the Customizer DLL.

Currently, we have a script library that we can call as a customization in the shop, but we are unable to make any changes to it.

Our goal is to provide an alternative item to be checked instead of objectkeyorderd, as objectkeyorderd and AccProduct are always the same.

The code we have so far looks like this:

#If Not SCRIPTDEBUGGER Then
References NLog.Dll
#End If

''' <summary>
''' _CCC_ShoppingCartOrder_Check
''' </summary>
''' <param name="UID_ShoppingCartOrder"></param>
''' <param name="configJson"></param>
''' <returns></returns>
Public Function _CCC_ShoppingCartOrder_Check(ByVal UID_ShoppingCartOrder As String, ByVal configJson As String) As String

	' Variablen
	Dim counterror As Integer = 0
	Dim countwarning As Integer = 0
	Dim culLang As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("de-DE")
	VI.Base.LanguageManager.SetSystemCulture(culLang)
	Dim log As NLog.LogSession = New NLog.LogSession(NameOf(_CCC_ShoppingCartOrder_Check),"")
	
	' Erste Variante mit Submit
	Dim check = New QER.CompositionApi.ITShop.ShoppingCartSubmit(UID_ShoppingCartOrder)
	Dim ConfigJsonParm As String = check.GetConfigJson
	
	check.Check.Config.CheckMode = QER.CompositionApi.ITShop.CheckMode.CheckOnly
	Dim tCartItemCheckResult As QER.CompositionApi.ITShop.CartItemCheckResult
	
	log.Info("Shopping Cart: " & UID_ShoppingCartOrder & " will be checked...")
	
	Dim checkResult = check.CheckAsync(Session).Result
	
	log.Info("Check Config: ")
	log.Info(ConfigJsonParm )
	
	' Für alle Bestellpositionen
	
	Dim items = checkResult.Items()
	For Each tCartItemCheckResult In items
		
		' Bestellpositionen Prüfungen durchführen
		
		log.Info("  > Cart Item " & tCartItemCheckResult.ToString & " check result...")
		Dim itemsChecks = tCartItemCheckResult.checks()

		' Für alle gefundenen Prüfungsresultate
		
		For Each checks In itemsChecks
			
			' Resulatat ausgeben
			
			log.Info("    > ID : " + checks.id + ", Status :" + checks.Status.toString + ", Title :" + checks.title)
			
			Select Case checks.Status.toString
			    Case "Warning"
					countwarning += 1
			    Case "Error"
					counterror += 1
			    Case Else
			End Select
			
		Next
	Next

	Return " In " & CStr(items.count) & " Cart Items, there are " & CStr(countwarning) & " warnings and " & CStr(counterror) & " errors."

End Function

Any help would be appreciated!

Top Replies