📜 ⬆️ ⬇️

Review System for Online Stores - Cackle Reviews

Hello! Today we will talk about what exactly a good feedback collection system should do in order to guarantee an increase in website conversion using our product as an example - the Cackle Reviews feedback collection system. The first release took place in November 2013. In the year and a half of our existence, we have about 200 customers (of which 150 are online stores) and a clear idea of ​​what features of the feedback system honestly affect the conversion growth:

1. Automatic indexing of reviews to Google with a micromarking of the schema.org/review rating;
2. Import reviews from Ndex.Market;
3. Subscribe follow-up letters after purchase with an invitation to leave a review;
4. Broadcast reviews in social networks;
5. SPAM test ( mail-tester.com ) with a score of at least 9/10 points.

How it all works in Cackle Reviews - under the cut.
')
online store review system

1. Indexing to Google with a micro markup.


The micro markup is a specific data format for Google to understand and display links to your site in the search results along with beautiful orange stars, rating and number of reviews.

Cackle Reviews

In Cackle Reviews it works automatically. When installing on any page of the site, our service will tell Google that this page should be indexed with micromarking . And most importantly, “It's Just JavaScript ™”, that is, no additional settings are needed in the form of synchronization of reviews to a local database or plug-ins for CMS. This works because Google indexes JavaScript.

Check in Google Testing Tool


To ensure that Google will index your site with micromarking, there is a special Google Validator Testing Tool . Since Cackle Reviews works through JavaScript, you need not just to copy the address of the page with reviews, but to open the browser console (for example, in Chrome it is Ctrl + Shift + C), go to the Elements tab and copy the entire code of the page into the window 1 of the validator, click "CHECK". If there are no errors and the result is the rating (values ​​for the example):

 aggregateRating [AggregateRating]: ratingValue: 4.5 reviewCount: 3 

That's all ok!

Living example


In Google, find the text “ Pluses: Excellent watches are worth it. Comment: the model is excellent ” is the first link bestwatch.ru/watch/Frederique_Constant/FC335MC4P5 (our client), on the side “ Rating: 4.5 - 4 reviews ”. We turn to this page, below the system for collecting feedback Cackle Reviews. Next, we will open the page in HTML form and see that there are no reviews in the code, which means that indexing with microdata works through JavaScript and you don’t need to make additional settings: saving reviews to a local database or pulling in third-party HTML.

micro markup rating


More examples of indexing with microdata on js (search in Google):
site: kinderus.ru based on reviews
site: unizoo.ru based on review
site: mirgeeka.ru based on review
site: afilot.ru based on review
site: yarcom.ru based on review
site: shveiburg.ru based on review

Implementation details


Google indexes javascript with micromaps schema.org/review. Therefore, in the widget, when rendering HTML, it is enough just to support this format .

Briefly about what should be minimum in HTML for correct understanding of micromarking in Google

1. Product Information


 <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="category" content="Mobile"> <meta itemprop="brand" content="Apple"> <meta itemprop="name" content="iPhone 6 Plus 128GB"> <meta itemprop="image" content="http://mdata.yandex.net/i?path=b0912201810_img_id7453707806759058271.jpeg"> </div> 


2. Rating Information


 <span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span itemprop="ratingValue">4.5</span> <!--  --> <span itemprop="reviewCount">7</span> <!--   --> </span> 


3. Rating information for each review


 ... <li itemprop="review" itemscope="" itemtype="http://schema.org/Review"> <span itemprop="reviewRating" itemscope="" itemtype="http://schema.org/Rating"> <meta itemprop="ratingValue" content="5"> <!--  --> </span> ... <a href="..." itemprop="author"> </a> <!--  --> ... <meta itemprop="datePublished" content="2015-04-10T12:06:17"> <!--    --> ... </li> ... 

PS: Values ​​are given for example.


2. Collect feedback from Yandex.Market


Reviews - a proven and inexpensive solution to increase site conversion. Declining the user to write a review is difficult, so it's best to take ready-made, for example from Yandex.Market. Benefits for you:


Reviews from Yandex.Market

Gather feedback from Yandex.Market at Cackle Reviews


First you need to get the Yandex.Market key to access the feedback loading API, indicating it in the form of Cackle Reviews and the IP address of our server (cackle.me). Save the key in the Cackle admin panel (Testimonials tab, Settings menu).

To collect feedback, upload products from your online store to Cackle using the API:
HTTP methodEndpointRestriction
POSTcackle.me/api/3.0/review/productym.json2 times a minute
ParameterDescription
idID of your widget
siteApiKeyThe secret key of the widget.
accountApiKeyAccount secret key
productsList of goods in JSON format
Each item must have a special parameter, ymId , that takes the modelId value from Yandex.Market.


Product example (products parameter):

 [{ "prodId": "12345", "ymId": "11031822", "chan": "/product/12345/", "url": "http://myexamplestore.ru/product/12345/", "name": " Apple iPhone 6 Plus 128Gb", "photo": "http://mdata.yandex.net/i?path=b0912201833_img_id3857037135783998090.jpeg", "price": "65500" }] 

prodId - product id from your database
chan - channel for link reviews from the site ( more )
url - pages where there will be reviews

Demonstration on client sites: delonghi.club , shveiburg.ru , mrklimat.ru .

Developers: implementation details


The functionality is written in Java, Spring and Hibernate. Operates with 4 main database tables, in more detail - in the spoiler.

On the technical implementation of collecting feedback from Yandex.Market at Cackle Reviews
 review_ym_cursor –    (modelId),        ("") review_ym –    . review_product –   +       review_ym  review review –    Cackle 

Works consistently:

1. Add product


The client calls the add product API with the filled ymId. The product is added to the review_product table, a new entry is created in review_ym_cursor with the identifier of this site, product and model in Yandex.Market.

2. Feedback loader in Yandex.Market format


A function is launched that calls the Market API and receives the first 10 reviews, saving them into an intermediate review_ym table in Yandex.Market format. The review_ym_cursor table stores the total number of downloaded reviews (recd field) for this model and website + how many reviews total (total field).


3. Convert feedback to Cackle format


A function is launched that takes the Market reviews from the review_ym table and saves them in reviews in the Cackle Reviews format to the review table. The review_product table records the total number of converted reviews (the conv field) to start from the right place the next time.

4. The following reviews


At night, two processes automatically call:

The first performs clause 2 for all records from review_ym_cursor, for which recd <total.
The second performs clause 3 for all the reviews from review_product that have conv <review_ym_cursor.recd.

As a result, new 10 Market reviews are downloaded, and then converted to Cackle-format. This continues until review_ym_cursor.recd <review_ym_cursor.total and review_product.conv <review_ym_cursor.recd respectively.

There is a third process. It checks for models with review_ym_cursor.recd == review_ym_cursor.total (all downloaded), whether new Yandex.Market-reviews have appeared, and if they have, they will update the total.

The main idea of ​​this implementation is the independent performance of two functions: uploading Market reviews (item 2) and converting to Cackle reviews (item 3). Less cabling - less problems.


3. Follow-up letters after purchase with an invitation to leave feedback.


You need to collect reviews not only from Yandex.Market, but also from real buyers. Suppose a user purchased a product from an online store. A few days later, he receives an email to his email asking for feedback on a previously purchased product. These letters are called follow-up and Cackle Reviews can send them automatically.

The uniqueness of Cackle Reviews is that the link “Leave feedback” in the follow-up letter leads exactly to the page of the purchased product of the online store (and not to the site of the feedback collection system, as in all other similar systems) and upon transition, the form for writing a review opens automatically with already authorized user.



Integration of follow-up mailing with online store


Loading orders


To send follow-up emails to customers, you must upload orders from your online store to Cackle. This is done using the API:
HTTP methodEndpointRestriction
POSTcackle.me/api/3.0/review/order.jsonOnce every 5 seconds
Parameters are similar to the API loading of goods, except for the products parameter, instead of orders.

Order example (orders parameter):

 [{ "orderId": "123", "created": 1426330626814, "modified": null, "notify": 1426330626814, "paid": true, "deliver": true, "notified": false, "user": { "id": "775", "name": " ", "email": "dmivanov@mailforspam.com" }, "products": [{ "prodId": "12345", "ymId": "11031822", "chan": "/product/12345/", "url": "http://myexamplestore.ru/product/12345/", "name": " Apple iPhone 6 Plus 128Gb", "photo": "http://mdata.yandex.net/i?path=b0912201833_img_id3857037135783998090.jpeg", "price": "65500" }]}] 

// notify - parameter for unconditional sending of follow-up letters on the specified date (milliseconds);
// received - if true, then a follow-up letter has already been sent for this order, if false, no;
// user is a user registered on your site ( single authorization, SSO ), or instead there can be two parameters (email and name) for an anonymous user.

Create a newsletter


When orders are loaded, you need to create a newsletter with the terms of dispatch and the letter template. This can be done in the Cackle administration panel (“Feedback” tab, “Newsletter” menu).





Follow-up letter


The letter consists of several parts. Editable - sender, subject, logo, letter body (body), signature (footer). Non-editable — a product or product list with a name, photo, and a “Leave Feedback” link.

The link “Leave feedback” leads to the page of the purchased product of the online store. All service parameters, for opening a form for writing a review and automatic authorization of a user, are transmitted in a link after the hash (#) in a coded format (MD5).

follow-up invitation letter to leave feedback

If a user follows the link “Leave feedback” and publishes it, then he will be marked with the “Verified Buyer” icon, which indicates that the customer has actually bought the product.

Review System Cackle Reviews Verified Buyer

Testing, debugging


The created mailings have a “Test” button, on click on which instantaneous processing of the found orders and sending of follow-up letters occurs. For example, you can download several test orders from email @mailforspam.com or @mailinator.com , and then test sending emails.

Automatic execution of activated mailings occurs at night from 01:00 to 06:00 Moscow time.

CMS Plugins


The follow-up mailing list works automatically in 1C-Bitrix and OpenCart plugins. In the near future we plan to connect this functionality for Joomla (VirtueMart, K2, Zoo) , PrestaShop and InSales.

4. Broadcast reviews in social networks


Cackle Reviews supports three types of authorization: anonymous, social and one with the site. If the user selects social authorization and logs in via VKontakte / My World / Facebook / Twitter, then his review will automatically fall on the wall of the social network with a link to the site. Benefits for the online store:


The functionality is available for testing on the solution demonstration page .

Implementation


Each social network has its own API for posting posts on the wall. We include this API in the implementation of the OAuth authorization libraries. In Cackle, Spring Social is used for such libraries, only with its implementation for each social network. This is very convenient, as much Spring Social does for you, for example, support for OAuth 1.0 and 2.0 standards, saving and updating access, refresh-tokens and expired.

5. SPAM test


Perhaps someone does not know, but there is a service for checking letters on SPAM, like mail-tester.com . The result of its verification is the number of points from 1 to 10. For a feedback collection system with follow-up mailing, a low score means that buyers simply will not receive letters inviting them to leave feedback.

In the next topic, we’ll tell you about our experience in setting up an SMTP server and how we achieved this result for Cackle Reviews:


If you want to try Cackle Reviews on your site - welcome ! Installation takes less than 1 minute.

Thanks for attention. Successes to all!

Source: https://habr.com/ru/post/255477/


All Articles