Pour diverses raisons, vous pouvez souhaiter de ne pas modifier un produit s'il existe déjà. Dans ce cas il faut placer dans la balise racine de l'entité le champ « mode ». Ce dernier peut prendre les valeurs suivantes :
- create : pour la création seulement
- update : pour la mise à jour seulement
- both : pour la création et la modification
Ne pas modifier un produit existant :
<advancedimporter>
<product mode="create" supplier-reference="demo-1">
<name>Name</name>
<price>0</price>
</product>
</advancedimporter>
Ne pas créer le produit s'il n'existe pas :
<advancedimporter>
<product mode="update" supplier-reference="demo-1">
<name>Name</name>
<price>0</price>
</product>
</advancedimporter>
Ces deux cas créent ou modifient le produit :
<advancedimporter>
<product mode="both" supplier-reference="demo-1">
<name>Name</name>
<price>0</price>
</product>
</advancedimporter>
<advancedimporter>
<product supplier-reference="demo-1">
<name>Name</name>
<price>0</price>
</product>
</advancedimporter>
Si vous souhaitez ne pas modifier un champ lors de la mise à jour du produit, alors il faut préciser le mode dans la balise du champ :
<advancedimporter>
<product supplier-reference="demo-1">
<name mode="create">Name</name>
<price>0</price>
</product>
</advancedimporter>
L'inverse est aussi possible :
<advancedimporter>
<product supplier-reference="demo-1">
<name mode="update">Name</name>
<price>0</price>
</product>
</advancedimporter>
Vous pouve aussi souhaiter de ne pas ajouter/modifier une entité en fonction de si l'entité parente existe ou non.
Dans cet exemple, l'image n'est pas ajoutée ou modifiée si le produit existe :
<advancedimporter>
<product supplier-reference="demo-2">
<name>Name</name>
<price>10</price>
<image mode="createparent">
<url>http://prestashopxmlimporter.madef.fr/fr/numbers/number-1.jpg</url>
<legend>My image</legend>
</image>
</product>
</advancedimporter>
Dans cet exemple, l'image est ajoutée ou modifiée seulement si le produit existe :
<advancedimporter>
<product supplier-reference="demo-3">
<name>Name</name>
<price>10</price>
<image mode="updateparent">
<url>http://prestashopxmlimporter.madef.fr/fr/numbers/number-1.jpg</url>
<legend>My image</legend>
</image>
</product>
</advancedimporter>