UpdateProducts

In order to synchronize data with an ECommerceSystem you would need to store data back in Perfion. A good example of this is Shopify that, despite you have your own unique product id, insists of having its own ids. In order to update a product in Shopify you have to present the original ID shopify gave it. So you need to store it in Perfion.

For synchronization purposes like this, the UpdateProducts-method is available.

UpdateProducts

Parameters

Name

Mandatory

Description

Channel

Yes

The channel you want sites from must be supplied.

Keys

No

The list of KeyField values for the products you want update.

Update

Yes

The list of fields or features you want updated associated with their new values.

CategoryKeys

No

Allows you to update products only in the specified categories.

ModifiedFrom

No

Allows you to update only those products that are modified after supplied date time.

ModifiedTo

No

Allows you to update only those products that are modified before supplied date time.

Sample request

<Execute method="UpdateProducts">   <Parameter id="Channel" value="Channel A" />   <Parameter id="Keys">     <Value>DFGR1181</Value>     <Value>DFGR1280</Value>     <Value>DFGR1686</Value>   </Parameter>    <Parameter id="Update">     <Value fieldname="ForeignKey">123456</Value>     <Value fieldname="LastUpdated">2017-12-31T23:59:59.123</Value>   </Parameter> </Execute>

Sample result

<Response>   <Result>     <Success />   </Result> </Response>

Table 1: The UpdateProducts-method.

Limitation: You can only update explicit features of type Number, String and Date. For selectables, you can only update string-features.

For the Keys-, CategoryKeys-, ModifiedFrom- and ModifiedTo-parameters please see section describing GetProducts.

You can, as the example in Table 33 does, specify what fields you need updated. This requires you to have a Field (or KeyField-mapping) for each of these. You can also choose to specify the featurename-attribute instead, allowing you to update a feature directly without having defined a mapping.

Note: In order to delete a value, you specify a blank or empty value, like the following:

<Parameter id="Update">     <Value fieldname="ForeignKey" />   </Parameter>