French Consumer Code
This section covers France’s new regulatory requirement to show the "Date of User Experience" on reviews.
To comply with the French Consumer Code (Code de la consommation), Bazaarvoice requires the collection and display of the Date of User Experience for all reviews displayed in the French locales (*_FR). This field provides consumers a clear timeline of the product experience.
Bazaarvoice implemented the following mandatory updates to comply with the new French regulatory standards:
- CS/SI moderation alignment: The reviews on French-facing sites can no longer be rejected as "irrelevant" if they focus on Customer Service (CS) or Shipping/Delivery (SI). To learn more about CS/SI moderation, refer to Moderation.
- Date of User Experience field: All reviews displayed to French consumers must include the specific Date of User Experience.
Implementation requirements
- Configuration check: If your site uses a French locale (e.g., fr_FR, en_FR, de_FR, and es_FR) but the Date of User Experience question does not appear in your submission form: Contact Bazaarvoice Support to enable the feature for your account.
- API integration: Once the feature is enabled, the Conversations API will automatically include
DateofUserExperiencein the API responses with the Required attribute set to true. - Update your review submission form: Ensure
Question ID: DateofUserExperienceis added to your review submission form. If not added, contact Bazaarvoice Support to enable the feature for your account.
To learn more about configuring questions in the Submission Form Editor, refer to the Bazaarvoice Knowledge Base. - Validation: Your application logic must validate this field. If a user submits a review without a date, your UI must display a validation error and prevent submission until the field is populated.
1. Full Submission
For clients using Full submission workflow, when the submitreview.json request is made for French locales, the system determines the requirement based on the displaycode. If displaycode is missing from the request, the system defaults to the main site locale. If that locale is French (*_FR), the DateofUserExperience field remains mandatory in the response. For detailed information on the full submission workflow, refer to Full Submission.
Sample submitreview request
curl --location 'https://qa.api.bazaarvoice.com/data/submitreview.json?ApiVersion=5.4&ProductId=product1&PassKey=[PASSKEY]&displaycode=[DISPLAYCODE]-fr_FR'
Sample submitreview response
...
"additionalfield_DateOfUserExperience": {
"Options": [],
"Type": "TextInput",
"Required": true,
"Label": "DateOfUserExperience",
"Value": null,
"MinLength": 0,
"Id": "additionalfield_DateOfUserExperience",
"MaxLength": null,
"Default": null
},
...
2. Progressive Submission
For clients using the Progressive Submission workflow, when a initiateSubmit request is made, Bazaarvoice detects the locale. If the locale is *_FR, the initiateSubmitresponse will include DateOfUserExperience in the fields object with "required": true. For detailed information on the progressive submission workflow, refer to Progressive Submission.
Sample initiateSubmit request
curl -X POST \
'http://stg.api.bazaarvoice.com/data/initiateSubmit.json?passkey=[PASSKEY}&apiVersion=5.4&action=submit&hostedauth' \
-H 'Content-Type: application/json' \
...
{
"locale": "de_FR",
"productIds": [
"Product1"
]
}
Sample initiateSubmit response
{
"hasErrors": false,
"response": {
"productFormData": {
"product1": {
"review": {
"duplicateReview": false,
"submissionID": "r111526_55_177373769e53HBzRif",
"productExternalID": "product1",
"submissionTime": "2026-03-17@08:54:08"
},
"fieldsOrder": [
"rating",
"reviewtext",
"title",
"usernickname",
"authenticationemail",
"DateOfUserExperience",
"photourl_1",
"photocaption_1",
"photourl_2",
"photocaption_2",
"photourl_3",
"photocaption_3",
"photourl_4",
"photocaption_4",
"photourl_5",
"photocaption_5",
"photourl_6",
"photocaption_6",
"videourl_1",
"videocaption_1",
"isrecommended",
"userlocation",
"Age",
"Gender",
"Quality",
"Value",
"IncentivizedReview"
],
"fields": {
"photourl_6": {
"id": "photourl_6",
"type": "url",
"class": "photourl"
},
"videourl_1": {
"id": "videourl_1",
"type": "url",
"class": "videourl"
},
"photourl_2": {
"id": "photourl_2",
"type": "url",
"class": "photourl"
},
"photourl_3": {
"id": "photourl_3",
"type": "url",
"class": "photourl"
},
"photourl_4": {
"id": "photourl_4",
"type": "url",
"class": "photourl"
},
"photourl_5": {
"id": "photourl_5",
"type": "url",
"class": "photourl"
},
"rating": {
"id": "rating",
"type": "integer",
"class": "rating"
},
"Gender": {
"valuesLabels": {
"Male": "Männlich",
"Female": "Weiblich"
},
"autoPopulate": true,
"label": "Geschlecht:",
"id": "contextdatavalue_Gender",
"type": "choice",
"class": "cdv",
"required": false
},
"title": {
"required": true,
"hidden": false,
"id": "title",
"maxLength": 50,
"type": "text",
"class": "title"
},
"reviewtext": {
"required": true,
"hidden": false,
"id": "reviewtext",
"minLength": 50,
"type": "text",
"class": "reviewtext"
},
"isrecommended": {
"id": "isRecommended",
"type": "boolean",
"class": "isrecommended"
},
"photocaption_2": {
"id": "photocaption_2",
"type": "text",
"class": "photocaption"
},
"photocaption_1": {
"id": "photocaption_1",
"type": "text",
"class": "photocaption"
},
"Quality": {
"autoPopulate": false,
"label": "Wie würden Sie die Qualität dieses Produkts beurteilen?",
"id": "rating_Quality",
"type": "integer",
"class": "rating",
"required": false
},
"photocaption_6": {
"id": "photocaption_6",
"type": "text",
"class": "photocaption"
},
"authenticationemail": {
"required": true,
"hidden": false,
"id": "hostedauthentication_authenticationemail",
"type": "text",
"class": "hostedauthentication_authenticationemail"
},
"photocaption_5": {
"id": "photocaption_5",
"type": "text",
"class": "photocaption"
},
"photocaption_4": {
"id": "photocaption_4",
"type": "text",
"class": "photocaption"
},
"IncentivizedReview": {
"valuesLabels": {
"True": "Ja"
},
"autoPopulate": false,
"label": "Haben Sie einen Anreiz zum Verfassen dieser Bewertung?",
"id": "contextdatavalue_IncentivizedReview",
"type": "choice",
"class": "cdv",
"required": false
},
"photourl_1": {
"id": "photourl_1",
"type": "url",
"class": "photourl"
},
"photocaption_3": {
"id": "photocaption_3",
"type": "text",
"class": "photocaption"
},
"videocaption_1": {
"id": "videocaption_1",
"type": "text",
"class": "videocaption"
},
"Age": {
"valuesLabels": {
"17orUnder": "17 oder jünger",
"18to24": "18 bis 24",
"25to34": "25 bis 34",
"35to44": "35 bis 44",
"45to54": "45 bis 54",
"55to64": "55 bis 64",
"65orOver": "65 oder älter"
},
"autoPopulate": true,
"label": "Wie alt sind Sie?",
"id": "contextdatavalue_Age",
"type": "choice",
"class": "cdv",
"required": false
},
"usernickname": {
"required": true,
"hidden": false,
"id": "usernickname",
"minLength": 4,
"type": "text",
"class": "usernickname"
},
"Value": {
"autoPopulate": false,
"label": "Wie wertvoll ist dieses Produkt?",
"id": "rating_Value",
"type": "integer",
"class": "rating",
"required": false
},
"DateOfUserExperience": {
"autoPopulate": false,
"label": "Wann haben Sie dieses Produkt benutzt?",
"id": "additionalfield_DateOfUserExperience",
"type": "date",
"class": "additionalField",
"required": true
},
"_Location": {
"required": false,
"hidden": false,
"id": "userlocation",
"type": "text",
"class": "userlocation"
},
"useremail": {
"required": true,
"hidden": false,
"id": "useremail",
"type": "text",
"class": "useremail"
}
},
"submissionSessionToken": "3EwI4GXLit5LrIsSoow2yY2PyQxA2B8PAtKBSs+U3wQrztlas1Vfk3I1admtj+OmvO40iPImcw/r0miqhShQNKa6sM564dhJxIT8RKCWWq9QqXGuKnYacrYva+GUcv1X"
}
},
"userId": "zq4oruitsaerww3sr4abk40778"
}
}
When a progressiveSubmit request is made and the DateofUserExperiencefield' has a valid value in it, the submission will be successful.
Sample progressiveSubmit request
curl -X POST \
'http://stg.api.bazaarvoice.com/data/progressiveSubmit.json?passkey=[PASSKEY]&apiVersion=5.4&Action=submit' \
-H 'Content-Type: application/json' \
-d '{
"locale":"en_US",
"userId": "tom",
"submissionSessionToken": "{some_Token_Value}",
"productId":"1000001",
"useremail":"[email protected]",
"submissionFields":{
"rating":"5",
"agreedtotermsandconditions":"true",
"title": "This is some title",
"reviewtext": "This is some review text. This is some review text. This is some review text. This is some review text. This is some review text. This is some review text. This is some review text.",
"usernickname": "largeMouthBass",
"DateOfUserExperience": "2026-05-31"
}
}'
Sample progressiveSubmit response
{
"hasErrors": false,
"response": {
"review": {
"SendEmailAlertWhenCommented": false,
"Rating": 5,
"SubmissionTime": "2019-08-07T21:45:12.051+00:00",
"ReviewText": "this is some title this is some title this is some title this is some title this is some title this is some title this is some title",
"Title": "this is some title",
"SendEmailAlertWhenPublished": false,
"DateOfUserExperience": "2026-05-31"
},
"submissionId": "h7jcqg70gil5ggqcfqs3ru7bt",
"isFormComplete": true,
"submissionSessionToken": "h3fh0cbwjgyoud7ncqtgb6nd8_eebf6f276a745e1d0323bab2e143ecf14e92f8103ea9509c3e40ebef88de1380_laoXsLeVBDQ=_v"
}
}
Tip:
For more details on the Hosted Display updates, check the Bazaarvoice Knowledge Base
Updated about 3 hours ago
