Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Offer engine API in Adobe Campaign Classic

somasundaramhal
Level 5
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
Jyoti_Y
Correct answer by
Community Advisor
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
somasundaramhal
Level 5
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

Raj_bounteous
Community Advisor
Community Advisor

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>

somasundaramhal
Level 5
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:(

Jyoti_Y
Correct answer by
Community Advisor
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