Migration Guide from SOAP to REST or JSON

As you might have gleaned from the integration documentation, the SOAP/Webservice-API will no longer be updated or upgraded. If you are currently using the SOAP interface, you can continue to do so. We do however recommend switching the integration interface, to profit from the other interfaces' advantages.

To facilitate the switch from SOAP, here is a list of all existing SOAP methods and there replacements for REST- and JSON-API. You can generate a client using the Swagger documentation for REST-API or the JSON-Schema-Definitions, to generate a client for calling these methods.

 SOAP MethodREST-API (http-method URL)JSON-API
Campaign.getProductCampaigns(...)GET ../rest/{apiversion}/campaign/{channel}/product../ProductCampaign.ff?do=getProductCampaigns&format=json&..
Campaign.getShoppingCartCampaigns(...)GET ../rest/{apiversion}/campaign/{channel}/shoppingcart../ProductCampaign.ff?do=getShoppingCartCampaigns&format=json&..
Campaign.getPageCampaigns(...)GET ../rest/{apiversion}/campaign/{channel}/page../ProductCampaign.ff?do=getPageCampaigns&format=json&..
ChannelManagement.createChannel(...)



We have no record of these methods being used, so they can be deleted without replacement. If you are actually using any of them, please contact Support to coordinate further steps. These acions can, generally, be performed via the user interface.

ChannelManagement.applyLocaleDefaults(...)
ChannelManagement.applyInitTemplate(...)
ChannelManagement.deleteChannel(...)
ChannelManagement.getAllChannels(...)
Import.deleteRecord(...)DELETE ../rest/{apiversion}/records/{channel}?recordId=x

../Delete.ff

Import.deleteRecords(...)DELETE ../rest/{apiversion}/records/{channel}?recordId=x&recordId=ySadly, there is no JSON-API replacement for this method.
Import.insertRecord(...)POST ../rest/{apiversion}/records/{channel}

../Insert.ff

Import.insertRecords(...)POST ../rest/{apiversion}/records/{channel}Sadly, there is no JSON-API replacement for this method.
Import.downloadProductExport(...)We have no record of this method being used, so they can be deleted without replacement. If you are actually using it, please contact Support to coordinate further steps. These acions can, generally, be performed via the user interface.
Import.startImport(...)POST ../rest/{apiversion}/import/search?channel=de

../Import.ff?format=json&channel=A

Import.startImports(...)POST ../rest/{apiversion}/import/search?channel=de&channel=at

Sadly, there is no JSON-API replacement for this method.

Import.startSuggestImport(...)POST ../rest/{apiversion}/import/suggest?channel=de

../Import.ff?format=json&type=suggest&channel=A

Import.updateRecord(...)PUT ../rest/{apiversion}/records/{channel}

../Update.ff

Import.getErrors(...)

Error messages during import are part of the respective return. Additionally, you can receive import errors per mail at set intervals or review them via the interface, so there is no replacement for this method. If you are actually using it, please contact Support to coordinate further steps. These acions can, generally, be performed via the user interface.

ProductComparison.compareRecords(...)GET ../rest/{apiversion}/compareproducts/{channel}../Compare.ff?format=json&..
Recommender.importData(...)POST ../rest/{apiversion}/import/recommendation?channel=de../Recommender.ff?do=importData&format=json&..
Recommender.getRecommendation(...)GET ../rest/{apiversion}/recommendation/{channel}../Recommender.ff?do=getRecommendation&format=json&..
RefreshDatabases.refreshAllDatabases(...)POST ../rest/{apiversion}/refreshdatabases/all

../RefreshDatabases.ff?do=refreshAllDatabases&..

RefreshDatabases.refreshDatabase(...)POST ../rest/{apiversion}/refreshdatabases/search?channel=a../RefreshDatabases.ff?do=refreshDatabases&channel=A
RefreshDatabases.refreshDatabases(...)POST ../rest/{apiversion}/refreshdatabases/search?channel=a&channel=b../RefreshDatabases.ff?do=refreshDatabases&channel=A,B
RefreshDatabases.refreshDatabasesOnNextRequest(...)We have no record of this method being used, so they can be deleted without replacement. If you are actually using it, please contact Support to coordinate further steps. These acions can, generally, be performed via the user interface.../RefreshDatabases.ff?do=refreshDatabasesOnNextRequest&..
RefreshDatabases.refreshSuggestDatabase(...)POST ../rest/{apiversion}/refreshdatabases/suggest?channel=a../RefreshDatabases.ff?do=refreshSuggestDatabases&channel=A
RefreshDatabases.refreshSuggestDatabases(...)POST ../rest/{apiversion}/refreshdatabases/suggest?channel=a&channel=b../RefreshDatabases.ff?do=refreshSuggestDatabases&channel=A,B
RefreshDatabases.refreshRecommenderDatabase(...)POST ../rest/{apiversion}/refreshdatabases/recommendation?channel=a../RefreshDatabases.ff?do=refreshRecommenderDatabases&channel=A
RefreshDatabases.refreshRecommenderDatabases(...)POST ../rest/{apiversion}/refreshdatabases/recommendation?channel=a&channel=b../RefreshDatabases.ff?do=refreshRecommenderDatabases&channel=A,B
Search.getResult(...)GET ../rest/{apiversion}/search/{channel} oder POST ./rest/{apiversion}/search../Search.ff?format=json&..
Search.getSuggestions(...)GET ../rest/{apiversion}/suggest/{channel}

../Suggest.ff?format=json&..

SimilarProducts.getSimilarProducts(...)GET ../rest/{apiversion}/similarproducts/{channel}

../SimilarRecords.ff?format=json&..

TagCloud.getTagCloudEntries(...)GET ../rest/{apiversion}/tagcloud/{channel}

../TagCloud.ff?do=getTagCloud&format=json&..

Tracking.logInformation(...)POST ../rest/{apiversion}/track/{channel}/{[cart, checkout, click, feedback, log, login, recommendationClick]}../Tracking.ff?..
Tracking.logMultipleInformation(...)POST ../rest/{apiversion}/track/{channel}/{[cart, checkout, click, feedback, log, login, recommendationClick]}../Tracking.ff?..
UserManagement.createGroup(...)







We have no record of these methods being used, so they can be deleted without replacement. If you are actually using any of them, please contact Support to coordinate further steps. These acions can, generally, be performed via the user interface.

UserManagement.deleteGroup(...)
UserManagement.deleteUser(...)
UserManagement.getAllUsers(...)
UserManagement.getAllGroups(...)
UserManagement.getAllRoles(...)
UserManagement.getGroup(...)
UserManagement.getUser(...)
UserManagement.isAdmin(...)
UserManagement.updateGroup(...)
UserManagement.updateUser(...)
UserManagement.createUser(...)