Expand my Community achievements bar.

SOLVED

Offer engine API in Adobe Campaign Classic

Avatar

Level 5

Team,

We're trying to use Adobe Offer API which is mentioned here in the document Integration via SOAP (server side) .

We tried to fetch all available offers using 'Propose' method and that works fine. UpdateStatus is also working fine.

My question is:

We are able to update the status in the 'Update status'. However, only one field is getting updated. I want to update multiple fields using the same API call. Is there any options to add custom parameter in the method? Or is there any custom methods can be added to the offer engine API?

Thanks,

Somasundaram

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

You need to change it in interaction.js javascript present at location: Administration --> Configuration --> Javascript --> interaction.js

Search for below block of code:

else if( "UpdateStatus" == strCommand )

      {

        var ctx = <ctx/>;

        var iStatus = undefined;

      

You need to write your logic for custom field update. Currently it is doing only for status update.

Thanks,

Jyoti

View solution in original post

4 Replies

Avatar

Level 5

To be more clear on this:

There are two main clarification in Offer management API:

1. Need to know if there are additional parameter can be passed through the offer 'UpdateStatus' API call.

Eg:

Working code:

<?xml version='1.0'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>

<SOAP-ENV:Body>

<UpdateStatus> <proposition>564032</proposition> <status>1</status></UpdateStatus>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Requirement:

<?xml version='1.0'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>

<SOAP-ENV:Body>

<UpdateStatus> <proposition>564032</proposition> <status>1</status><offerCode>Offer Code value</offerCode><customField1>Input 1</customField1><customField2>Input 2</customField2></UpdateStatus>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

where <offerCode>, <customField1>, <customField2> are fields of "nms:propositionRcp" table.

2. Need to know how to restrict eligibility rule at Offer level.

Current setup: Eligibility rule applies to recipient table. We can filter recipient for particular offer. And we can provide limited offers using <maxCount> xml value in API call.

Requirement: If there are 1000 recipients eligible with eligibility criteria, and if 100 recipients availed a particular offer, the offer should be disabled.

Thanks,

Somasundaram

Avatar

Level 6

1. for that you can follow the below syntax.

<urn:UpdateStatus>

<urn:sessiontoken></urn:sessiontoken>

<urn:proposition>434242</urn:proposition>

<urn:status>1</urn:status>

<urn:context>xxxxxxxx</urn:context>

</urn:UpdateStatus>

Avatar

Level 5

Thanks for your reply. But we're not using session token for offer api. If we use session token, that will be regular API calls. If I use the above code with/without session token, it's not working:(

Avatar

Correct answer by
Community Advisor

Hi,

You need to change it in interaction.js javascript present at location: Administration --> Configuration --> Javascript --> interaction.js

Search for below block of code:

else if( "UpdateStatus" == strCommand )

      {

        var ctx = <ctx/>;

        var iStatus = undefined;

      

You need to write your logic for custom field update. Currently it is doing only for status update.

Thanks,

Jyoti