Project

General

Profile

Actions

Feature #905

closed

Feature #947: BazaarVoice launch

BazaarVoice Integration

Added by Yevgen Voronetskyy almost 7 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
Start date:
30 Sep 2019
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Spent time:

Description

Optimal integration with BazaarVoice using the existing web-catalogue-status

WikeoMetrics --> 1. product.csv <-- Business Analytics | |
2. enriched_product.csv <-- BazaarVoiceXmlSerializator --> 3. product_feed.xml

Technical points

  • XML serialization (BO or Max ?)
  • final xml sending to bazaarVoice (SFTP ?)

Files


Subtasks 1 (0 open1 closed)

Support #1110: BV feed change file nameClosedAlexander Shklyarenko30 Sep 2019

Actions
Actions #1

Updated by Yevgen Voronetskyy almost 7 years ago

Missing fields available in OPUS:

  • CategoryPageUrl
  • ExternalId
  • ProductPageUrl
  • ImageUrl

Brands

For now, the brands processing is not clear for us. @Olena, please, formalize it for us in this ticket.

Actions #2

Updated by Anonymous almost 7 years ago

After yesterday call with @Yurii, I will add familyURL and @Yurii will add product name on Russian.

Actions #3

Updated by Mykola Romanov almost 7 years ago

one of these characteristics should be used as an attribute "Brand"
in case if more than one attribute will be found for the product, we should take in consideration only the first one.

W10356
W12741
W11830
W10352
W12885
W10356
W12819
W11299
W10308
W12314
W12315
W13377
W13414
W10103
W11198
W11489
W11831
W10736
W12263
W12668
W12244
W12250
W12325

Actions #5

Updated by Mykola Romanov almost 7 years ago

steps in project dataflow:

1. Extract WikeoMetrics2 - text.csv, image.csv (by WikeoMetrics2 app)
2. Integrate Wikeometrics2 to BO (by BO)
3. In BO add EAN etc (by BO)
4. Export Bazaarvoice_Status.csv (by BO)
5. Convert CSV to XML to get Bazaarvoice_Status.xml (by XML4BZV converter)

Actions #6

Updated by Mykola Romanov almost 7 years ago

by the way, the existing WebCatalogueStatus file remains intact.
it keeps all the same data on the output, by ignoring all 8 new incoming fields added for this project

Actions #7

Updated by Anonymous almost 7 years ago

  • Assignee changed from Anonymous to Anonymous

1. Need to add to xml file only unique categories(families). externalId is unique field
2. Need to add to xml file only unique brands. externalId is unique field
3. Need to run program with jar
4. Need to add to xml file only unique products. externalId is unique field. If we have two or more products with same externalId, we will add to xml file only one product which has earlier family alphabetical name

Actions #8

Updated by Anonymous almost 7 years ago

5. Need to check data in the test.xml file. Choose three different objects of each model(product, brand, category) and compare these objects in .csv and .xml files. After that write the results in this ticket with externalID for each object.

Actions #9

Updated by Anonymous almost 7 years ago

  • Assignee changed from Anonymous to Anonymous

Report (take random rows to validate them)
model Product :
row 7, Product Id = 10010546
Product Page Url has not valid url ( example: http://www.leroymerlin.ua/p/10010546_PimStd_Produc)
model Brand:
row 124:
absence value in fields Brand name, Brand External ID
model Category :
row 7, Family Name Ua Піни
Family URL UA table tab, the column is empty

Actions #10

Updated by Anonymous almost 7 years ago

  • Assignee changed from Anonymous to Anonymous

6. Need to implements cron in program. Program must run once. Every day at 15 o'clock program must read file baazarvoice.csv and convert this file to baazarvoice.xml
7. After converting program must delete file baazarvoice.csv

Actions #11

Updated by Anonymous almost 7 years ago

8. In the xml file change name="LeroyMerlinUkraine_feed" to name="leroymerlin-ua"
9. In the xml file date must in the format 2019-02-21T08:15:01.516
10. In the xml file delete line <!DOCTYPE Feed SYSTEM "yes">
11. In the xml file line with feed must be in the format "<Feed extractDate="2018-12-12T08:15:01.516" name="leroymerlin-it" incremental="false" xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.6&quot;&gt;"

Actions #12

Updated by Mykola Romanov almost 7 years ago

  • Assignee changed from Anonymous to Yevgen Voronetskyy

we confirm 1 day support until production release

Actions #13

Updated by Mykola Romanov almost 7 years ago

Screenshot_135.png

the p.6 of the https://redmine.devatlant.com/issues/905#note-11 is not needed to be implemented internally in the converter.

it will be done by the Windows Task Scheduler.
As said previously, we will execute all operations in one virtual machine, and the problem off access to virtually mapped discs will not be block us anymore.

Currently we are waiting for Sasha Shklyarenko to enable this step.

Actions #14

Updated by Anonymous almost 7 years ago

  • Status changed from New to In Progress
  • Assignee changed from Yevgen Voronetskyy to Anonymous
  • % Done changed from 0 to 80

I implemented the notes #905#11. Except for the attribute ordering.

Actions #15

Updated by Mykola Romanov over 6 years ago

bazaarvoice architecture.png

The integration widget-style is finished.
All we have left is to evolve the brand ID. The aim is to have the "brand ID" = 106783 = "Bosch" = "brand name". Today, last to units do exist in Phenix, we just couldn`t export them yet.
With some help from Stephane Loones and some proper BI job or even manual actions we could do that.
As of today, we have it like this: "brand ID" = 106783 = "Bosch" = "brand name"

the project architecture is attached.
legend:
- wikeometrics2 = application which extracts data for both BI integrations
- BO = integrates files from wikeometrics2, matches it with data from Phenix universe, and produces two reports at 11:00 and 12:00 daily (Web Catalog Status) and (Bazaarvoice.csv)
- bzv2xml converter = application which is taking Bazaarvoice.csv file, and converts it to Bazaarvoice.xml

Actions #16

Updated by Mykola Romanov over 6 years ago

Basecamp

https://3.basecamp.com/4056726/projects/12935458

Hi all,

Thanks for your attention during the call yesterday. You'll find attached the deck presented yesterday.

I'm pleased to annouce that your instance is provisionned and that Ricardas our technical consultant has been assigned to the project. We can therefore organize the technical engagement next week. As discussed yesterday, could you please:
• Get back to us with some availability next week so we organize the technical engagement call?
• Provide us here with your product feed so we can check immediatly if it's correct?
• Regarding the business tasks, you're well advanced due to the benefits of previous Adeo business units, but we need to discuss about the config hub and get your questions translated (unfortunately they're not available by default in Ukrainian and Russian). Could you give me a couple of slots next week to do this business catch up (no need for technical team to participate to this point)?

You'll find here the details on how to implement Bazaarvoice so you can start having a look at how things work in details.

If you have any question, please feel free to reach out!
Thomas

https://storage.3.basecamp.com/4056726/buckets/12935458/recordings/1935487336/email/download/BAh7CEkiCGdpZAY6BkVUSSIoZ2lkOi8vYmMzL0Jsb2IvMTUxODE5OTI1P2V4cGlyZXNfaW4GOwBUSSIMcHVycG9zZQY7AFRbB0kiCmVtYWlsBjsAVGwrB2gxXXNJIg9leHBpcmVzX2F0BjsAVDA=--ee842a982102a681ddfd0b50fc8106da3243f5ed/Platform_kick-off (1).pptx

Actions #17

Updated by Mykola Romanov over 6 years ago

Bazaarvoice Credentials.pdf

please, submit the link here

doc attached

Actions #18

Updated by Mykola Romanov over 6 years ago

Information for the front widget implementation

Simple Submission URL (SSURL):
http://display.ugc.bazaarvoice.com/static/leroymerlin-ua/main_site/uk_UA/container.htm?bvaction=rr_submit_review&bvproductId=ID1

Your Configuration Hub
Leroymerlin-ua

Integrate javascript provided on the product & category pages
Place <div> to create containers for review summary and main display
Code integration identical for staging and production*
Reviews functionality and design managed in the Bazaarvoice Configuration Hub

For more info see the document attached.

Actions #20

Updated by Mykola Romanov over 6 years ago

points to integrate

1. Widget product sheet
2. Customize widget
3. BV pixel

Actions #21

Updated by Mykola Romanov over 6 years ago

  • Status changed from Resolved to In Progress
  • Assignee changed from Mykola Romanov to Yevgen Voronetskyy
Actions #22

Updated by Yevgen Voronetskyy over 6 years ago

  • Assignee changed from Yevgen Voronetskyy to Mykola Romanov

What is BV Pixel ? What is exact task about this?
What do you mean by customize widget? As far as I understand you have an access to BV Configuration Hub and you can modify all widget UI yourself.

Actions #23

Updated by Mykola Romanov over 6 years ago

i think we do.
The BV pixel is a tool like GA to track something

Actions #24

Updated by Yevgen Voronetskyy over 6 years ago

Do we need to disable the existing comments and rating system ?

Actions #25

Updated by Denys Bezuhlyi over 6 years ago

I have an error like this when i'm trying to load container on localhost:
Bazaarvoice is not configured for this domain: localhost:8443

I use this url to load script:
<script type="text/javascript" src="https://display.ugc.bazaarvoice.com/bvstaging/static/leroymerlin-ua/uk_UA/bvapi.js"> </script>

Actions #26

Updated by Anonymous over 6 years ago

Project git repo link : https://gitlab.devatlant.com/wikeo/bazaarVoiceXmlConverter
Branch mivanov/905_bazaarvoice_integration
Acceptances tests by business were done in production (xml files were validated by ADEO)
Conversation with ADEO: https://3.basecamp.com/4056726/buckets/12935458/messages/1935487336#__recording_1984426340
File bazaarvoice.xml has been uploaded to remote sftp. Waiting for approval from BazaarVoice team

new features list:
  • feat brand
  • etc
Problems:
  • In fact, file *.bat (for copy *.csv to directory where *.jar will convert this file to *.xml) didn't work today.
  • Also we have problem with encoding. I ran all tasks manually and after that *.xml file copied to remote sftp. I downloaded file from remote sftp and this file had data with wrong encoding. But file which we copied had correct encoding.
Actions #27

Updated by Mykola Romanov over 6 years ago

  • Due date changed from 11 Mar 2019 to 02 Sep 2019
Actions #28

Updated by Mykola Romanov over 6 years ago

  • Assignee changed from Mykola Romanov to Yevgen Voronetskyy
Actions #29

Updated by Yevgen Voronetskyy over 6 years ago

  • Assignee changed from Yevgen Voronetskyy to Mykola Romanov

Denys started the integration already. He had some tech questions.
We need 1 day to complete it.

Actions #30

Updated by Yevgen Voronetskyy over 6 years ago

Code review results

Architectural notes

  • Project is not configured properly - so it's not recognized by Idea automatically as a Java project
  • Bad error handling
  • Manu violation of OOP basic principle in models code
  • Any valid unit tests

Code style

  • many minor improvements can be done

Stabilization estimate

  • In order to normalize the project tech health and guarantee the RUN phase in prod we need 5 days
Actions #31

Updated by Mykola Romanov over 6 years ago

we approve

Actions #32

Updated by Denys Bezuhlyi over 6 years ago

@Yevgen Voronetskyy I integrated the 1,2,3 and partially the 5th point from this instruction: https://3.basecamp.com/4056726/buckets/12935458/documents/2017514121
I tried to show questions from 4th point, but it doesn't work, maybe we should activate it in your preferences (for the moment nothing is showing while integrating this part). I think that we shouldn't add google markup, because we already have it in JSON.

Actions #33

Updated by Denys Bezuhlyi over 6 years ago

@o.skrypek what about design? You will configure it in your account?

Actions #34

Updated by Anonymous over 6 years ago

Please, add anchor here http://prntscr.com/ozkc7a

Actions #35

Updated by Anonymous over 6 years ago

Could we do something with this?
http://prntscr.com/p4qwft

Or it is from our side?

Actions #36

Updated by Anonymous over 6 years ago

  • Assignee changed from Mykola Romanov to Denys Bezuhlyi

Please, add RU version of the widget

Actions #37

Updated by Denys Bezuhlyi about 6 years ago

  • Assignee changed from Denys Bezuhlyi to Yevgen Voronetskyy
Actions #38

Updated by Anonymous about 6 years ago

Actions #39

Updated by Yevgen Voronetskyy about 6 years ago

  • Assignee changed from Yevgen Voronetskyy to Mykola Romanov

Finally, we spent 2 days (and not 1 as stated in note 29)
Please, approve.

Actions #40

Updated by Anonymous about 6 years ago

  • Assignee changed from Mykola Romanov to Denys Bezuhlyi

Bug:
11616094 - the reviews from other BUs exist only in RU context
11895226 - our review exist only in UKR context

Actions #41

Updated by Mykola Romanov about 6 years ago

widget and section not displayed - http://prntscr.com/p7qfbv

Actions #42

Updated by Mykola Romanov about 6 years ago

we approve the additional day

Actions #43

Updated by Anonymous about 6 years ago

We get some comment from Netpeak in the topic of SEO. Can we do something?
Текущая проблема с микроразмектой продуктов:

1. Разметка отзывов внедрена само по себе. А должна быть вложена в продукт, иначе отображаться не будет. Это совсем новое обновление Гугла, как раз по отзывам.

Вот так вот у нас - http://img.netpeak.ua/vinnie/156889617498_kiss_13kb.png
Вот так должно быть: http://img.netpeak.ua/vinnie/156889631763_kiss_38kb.png
Так как звезды крепили к всему, что можно, Google ужесточил правила.

2. Помимо п.1 в разметке есть ошибки http://img.netpeak.ua/vinnie/156889639903_kiss_10kb.png, что изначально исключает отображение расширенных сниппетов.
Какие есть решения:

1. Убрать разметку с отзывов. Она внедрена в формате Microdata, т.е непосредственно атрибутами в теги http://img.netpeak.ua/vinnie/156889657696_kiss_6kb.png
Далее обновить текущую разметку в формате JSON-LD. Тут надо понимать сможете ли вы убрать атрибуты разметки

2. Если есть доступ к модулю отзывов, тогда можно исправить ошибки, а потом подстроиться под эту разметку, наложив на него еще Product в таком же формате Microdata. Но это будет очень долго и тяжело + возможно с изменением верстки + не факт ,что ошибки исправят быстро или вообще исправят.

Actions #45

Updated by Anonymous about 6 years ago

Please fix it http://prntscr.com/p8lk0y - fixed

Actions #46

Updated by Yevgen Voronetskyy about 6 years ago

@o.skrypek, about your SEO note 43, we will need 1 additional day (as this topic was not estimated) to analyse the proposed solutions ans collaborate with ADEO/BV team. Waiting for your approval.

Actions #47

Updated by Anonymous about 6 years ago

Comment from BV - http://prntscr.com/p9vgzd

Actions #48

Updated by Mykola Romanov about 6 years ago

Yevgen Voronetskyy wrote:

@o.skrypek, about your SEO note 43, we will need 1 additional day (as this topic was not estimated) to analyse the proposed solutions ans collaborate with ADEO/BV team. Waiting for your approval.

we approve

Actions #49

Updated by Denys Bezuhlyi about 6 years ago

I changed SKU in our json+ld, now they are the same. We will see how it works in the next deploy in production.

Actions #50

Updated by Anonymous about 6 years ago

Olena Skrypek wrote:

Bug:
11616094 - the reviews from other BUs exist only in RU context
11895226 - our review exist only in UKR context

We fixed it in BV portal

Actions #51

Updated by Denys Bezuhlyi about 6 years ago

Sometimes the header doesn't appear for reviews, it happens because there is no reviews object in BV object, i asked BV team how to fix this problem, for the moment i keep the name Отзывы, but i remove the number of reviews.
https://3.basecamp.com/4056726/buckets/12935458/messages/2088120728 here is our discussion

Actions #52

Updated by Denys Bezuhlyi about 6 years ago

Клеюча_суміш_SILTEK_T-80_25_купити_в_інтернет-магазині_Леруа_Мерлен___Київ__Одеса__доставка_по_Україні.png

There is an other problem: if we open many products in different tabs, sometimes the bottom block with reviews doesn't appear. It comes from their part, because they have a timeout in their bv script, we cannot change it. See the attached screenshot.

Actions #53

Updated by Anonymous about 6 years ago

  • Assignee changed from Denys Bezuhlyi to Yevgen Voronetskyy

@Yevgen Voronetskyy , please, estimate the changing of micro markup of the product according to the micro markup of the reviews. Micro markup for Google.

Actions #54

Updated by Anonymous almost 6 years ago

@Yevgen Voronetskyy, please close the ticket

Actions #55

Updated by Mykola Romanov almost 6 years ago

  • Status changed from In Progress to Closed

all done and confirmed

Actions

Also available in: Atom PDF