Product Reviews Approval – SCA

The Product Reviews feature lets users review and rate items on the website, and they can also view ratings and reviews submitted by other users.

After customers submit product reviews, they must be approved before they appear on the website by default. Users can moderate submitted reviews using the Product Reviews record type.

We can change the default functionality of product review approval by setting the status of the review as approved at the time of custom record creation.

_.extend(ProductReviewsModel, {
			create: function (data) {
				if (this.loginRequired && !ModelsInit.session.isLoggedIn2()) {
					throw unauthorizedError;
				}

				const review = nlapiCreateRecord('customrecord_ns_pr_review');

				if (ModelsInit.session.isLoggedIn2()) {
					review.setFieldValue('custrecord_ns_prr_writer', nlapiGetUser() + '');
				}
				review.setFieldValue('custrecord_ns_prr_status', Configuration.get('productReviews.approvedStatus'));

				if (data.writer) {
					data.writer.name &&
						review.setFieldValue(
							'custrecord_ns_prr_writer_name',
							Utils.sanitizeString(data.writer.name)
						);
					data.writer.id && review.setFieldValue('custrecord_ns_prr_writer', data.writer.id);
				}
				data.rating && review.setFieldValue('custrecord_ns_prr_rating', data.rating);
				data.title && review.setFieldValue('name', Utils.sanitizeString(data.title));

				if (data.text) {
					const sanitized_text = Utils.sanitizeString(data.text);

					review.setFieldValue('custrecord_ns_prr_text', sanitized_text);
					data.text = sanitized_text.replace(/\n/g, '<br>');
				}

				data.itemid && review.setFieldValue('custrecord_ns_prr_item_id', data.itemid);

				const review_id = nlapiSubmitRecord(review);
				data.review_id = review_id;

				_.each(data.rating_per_attribute, function (rating, name) {
					const review_attribute = nlapiCreateRecord('customrecord_ns_pr_attribute_rating');

					review_attribute.setFieldValue('custrecord_ns_prar_item', data.itemid);
					review_attribute.setFieldValue('custrecord_ns_prar_review', review_id);
					review_attribute.setFieldValue('custrecord_ns_prar_rating', rating);
					review_attribute.setFieldText('custrecord_ns_prar_attribute', name);

					nlapiSubmitRecord(review_attribute);
				});

				return data;
			},
		})

Leave a comment

Your email address will not be published. Required fields are marked *