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>