Copernica SOAP API functie Profile_updateSubprofiles

De Copernica SOAP API biedt programmeurs de mogelijkheid om (eigen) systemen te koppelen aan Coperinca. Dit kan op basis van profiel beheer zijn, maar ook database, templates en formulieren kunnen via de SOAP API aangeroepen worden.

Een van de functies waar ik veel vuldig meewerk en steeds vaker problemen mee ondervind is de Porfile_updateSubprofiles functie. De functienaam zegt het al, subprofielen aanpassen. Er zijn meerdere toepassingen voor deze functie, bijvoorbeeld ordergeschiedenis van webshops aanpassen, deelnames van relaties aan evenementen etc.

De vele parameters maken deze functie erg divers, waarbij het ook mogelijk is om profielen die niet gevonden worden om te updaten aan te maken.

Overzicht van de paramters:

  • collection : de collectie om binnen te zoeken
  • requirements : waar moet het profiel aan voldoen die wordt aangepast
  • fields : velden die moeten worden aangepast
  • create : true = maak het profiel aan als deze niet wordt gevonden

De parameter ‘create’ in combinatie met ‘requirements’ biedt vaak korte oplossingen, je hoeft niet niet eerst te zoeken naar subprofielen die voldoen, deze daarna aan te passen en als ze niet gevonden worden alsnog aan te maken. Zo bespaar je vele API aanroepen en vele regels code.

Zijn de ‘requirements’ een AND of een OR?

Er is alleen een kleine maar… de ‘requirements’ mag een array van criteria zijn waaraan een profiel moet voldoen. Dus een subprofiel met het product ‘HEADSET-1’ en aantal ‘4’ behorende tot order ‘123456’ updaten door 2 criteria mee te sturen namelijk (order = 123456, product = ‘HEADSET-1’) om daarvan aantal aan te passen naar 6 gaat niet lukken.

Dit omdat de ‘requirements’ niet als een AND maar als een OR werken. Dus alle subprofielen van order 123456 krijgt het aantal 6, en alle bestellingen met HEADSET-1 krijgen een aantal 6.

Reactions