Antidot Training AFS@Store AFS@Store Introduction 2 Antidot - - PowerPoint PPT Presentation

antidot training
SMART_READER_LITE
LIVE PREVIEW

Antidot Training AFS@Store AFS@Store Introduction 2 Antidot - - PowerPoint PPT Presentation

Antidot Training AFS@Store AFS@Store Introduction 2 Antidot solution for E-Commerce 3 What is AFS@Store ? Search engine + merchandising Searchandising solution 4 What is AFS@Store ? Find Lead In fl uence


slide-1
SLIDE 1

Antidot Training

AFS@Store

slide-2
SLIDE 2

2

Introduction

AFS@Store

slide-3
SLIDE 3

3

Antidot solution for E-Commerce

slide-4
SLIDE 4

4

What is AFS@Store ?

  • Search engine

+

  • merchandising

à Searchandising solution

slide-5
SLIDE 5

5

What is AFS@Store ?

  • Find
  • Lead
  • Influence
  • Analyze
slide-6
SLIDE 6

6

What is AFS@Store ?

  • Find
  • Lead
  • Influence
  • Analyze
slide-7
SLIDE 7

7

Find

  • 4 key-features
  • Relevance
  • Tolerance
  • Semantic search
  • Multi source
slide-8
SLIDE 8

8

Find - Relevance

slide-9
SLIDE 9

9

Find - Relevance

slide-10
SLIDE 10

10

Find – Tolerance - Automatism

slide-11
SLIDE 11

11

Find – Tolerance - Automatism

slide-12
SLIDE 12

12

Find – Tolerance - Automatism

slide-13
SLIDE 13

13

Find – Tolerance - Automatism

slide-14
SLIDE 14

14

Find – Semantic search

slide-15
SLIDE 15

15

Find – Semantic search

Generic ¡terms ¡ Synonyms ¡ Specific ¡terms ¡

Synonyms and thesaurus : quickly managed from Back-Office

slide-16
SLIDE 16

16

Find – Multi source

  • Search into the whole website content
  • Catalog
  • Editorial

content

  • Stores list
  • Blog
  • Forum
slide-17
SLIDE 17

17

Find – Multi source

  • Search into the whole website content
  • Catalog
  • Editorial

content

  • Stores list
  • Blog
  • Forum
slide-18
SLIDE 18

18

What is AFS@Store ?

  • Find
  • Lead
  • Influence
  • Analyze
slide-19
SLIDE 19

19

Lead

  • Lead customers asap
  • Expose queries: list, tags
  • Autocomplete / suggestions
  • Navigate into search replies
  • Geographic tools and Web To Shop
slide-20
SLIDE 20

20

Lead – Expose queries

slide-21
SLIDE 21

21

Lead – Autocomplete

slide-22
SLIDE 22

22

Lead – Autocomplete

Autocomplete from product, categories, or any other business-

  • riented data
slide-23
SLIDE 23

23

Lead – Autocomplete

Autocomplete from products, blog entries, with choosen vocabulary

slide-24
SLIDE 24

24

Lead – Autocomplete

Spelling tolerance

slide-25
SLIDE 25

25

Lead – Navigate

slide-26
SLIDE 26

26

Lead – Navigate

slide-27
SLIDE 27

27

Lead – Web To Shop

slide-28
SLIDE 28

28

Lead – Geographic search

slide-29
SLIDE 29

29

What is AFS@Store ?

  • Find
  • Lead
  • Influence
  • Analyze
slide-30
SLIDE 30

30

Influence

  • Influence customer to its choice
  • Automatic merchandising
  • Back-Office application allowing to organize

replies

  • Promotional campaigns from keywords
slide-31
SLIDE 31

31

Influence – Automatic merchandising

Sales and news in front of the list

slide-32
SLIDE 32

32

Influence – Replies organization

Example: Availability Relevance Ante-chronological

slide-33
SLIDE 33

33

Influence – Promote

Promote from keywords

Internal ¡Adwords-­‑like ¡

slide-34
SLIDE 34

34

What is AFS@Store ?

  • Find
  • Lead
  • Influence
  • Analyze
slide-35
SLIDE 35

35

Analyze

  • Figure out the behavior of customers
  • Most frequent queries
  • Queries without replies
  • Queries distribution
slide-36
SLIDE 36

36

Analyze – Figure out

slide-37
SLIDE 37

37

Analyze – Management

slide-38
SLIDE 38

38

Overview architecture

AFS@Store

slide-39
SLIDE 39

39

Industrial and full customizable

  • Open to many platforms
  • From 1000 to X million articles
  • Live indexing if needed
  • Free layout finalization
  • Multi-stores, multi-lingual, multi-currencies, …
slide-40
SLIDE 40

Back-­‑office ¡ Search ¡and ¡ Autocomple5on ¡(ACP) ¡Engine ¡ Indexa5on ¡Engine ¡ Administration Interface

Web ¡Front-­‑End ¡ E-­‑Commerce ¡Pla3orm ¡

CMS

Unstructured ¡ Content ¡ Structured ¡Content ¡

Product Catalog

+Multilingual +Multi-site +Multi-brands +Multi-categories +Blog entries +Tip sheets

ACP & Search Queries ACP & Search Results

+Tolerance +Phonetic

  • Reference matching
  • Fuzzy

+Spellcheck +Semantics

  • Flexions
  • Synonyms

+Merchandizing +Logs-Service Monitoring +Analytics +Campaign Management +Thesaurus Management

¡ ¡ ¡ACP ¡& ¡Search ¡Results ¡FormaDng ¡ XML ¡Pivot ¡Format ¡Conversion ¡

+Autogenerated facets +Banners +Catalog entries HTML REST Webservice XML REST Webservice Export Export

1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡

slide-41
SLIDE 41

41

Features

AFS@Store

slide-42
SLIDE 42

42

AFS@Store Features

  • Indexation
  • On-demand
  • Several modes: full, incremental (only for Catalog)
  • Natively multilingual
  • Input data validation
  • Many kind of catalogs
  • Linguistic resources (business-oriented thesauri):
  • apparel.csv
  • colors.rdf
  • electronics.csv
  • home_improvement.csv
  • materials.csv
  • office.csv
  • sports.csv
slide-43
SLIDE 43

43

AFS@Store Features

  • Tolerance
  • Dictionaries for most of the occidental languages
  • Business-oriented vocabularies
  • References
  • Fuzzy autocompletion
slide-44
SLIDE 44

44

AFS@Store Features

  • User helps
  • Facets, sorts, filters
  • Spellcheck
  • Categories and brands suggestions
slide-45
SLIDE 45

45

AFS@Store Features

  • Monitoring (Back-Office)
  • Create view per sites
  • Hit-Parade, Metrics,
  • Vocabularies edition (synonyms)
  • Monitoring of specific autocompletion
slide-46
SLIDE 46

46

AFS@Store Features

  • Pivot format as entry point
  • Follow that format allows to benefit from presets
  • New fields can be dynamically added :
  • Descriptions:

plain text fields

  • Properties:

facets

  • Identifiers:

products references

  • Marketing operations: standard and custom flag
  • Misc:

non-indexed fields but returned within the output

  • Settings computed at each indexation, no Antidot intervention
  • Input validation
  • Already known output format
slide-47
SLIDE 47

47

AFS@Store project steps

  • Step #0: Technical training (optional)
  • Step #1: Business requirements, functional specifications
  • Step #2: Transmit the data
  • Step #3: Antidot provides your AFS@Store instance
  • Step #4: Technical integration
  • Step #5: Customer validation
  • Spellcheck integrated
  • Sort : relevance, + searchandizing, stock,
  • Facets
  • Promotes
  • Step #6: Go live
slide-48
SLIDE 48

48

Business requirements

AFS@Store

slide-49
SLIDE 49

49

Business requirements

  • Features selection:
  • Cf. AFS@Store User Experience document
  • Autocomplete
  • Portal
  • Mobile (coming soon)
slide-50
SLIDE 50

50

Data selection

  • 5 data feeds available:
  • Catalog (mandatory)
  • Only export products you need to see in search
  • Use variants or not
  • Define context (websites, store)
  • Articles
  • Blog or CMS entries
  • Stores
  • Physical stores
  • Categories
  • Categories landing pages, if any
  • Brands
  • Brands landing pages, if any
slide-51
SLIDE 51

51

Transmitting the data

AFS@Store

slide-52
SLIDE 52

52

Data creation: the archives

  • One zip per feed, and must be named as:
  • yyyymmdd_full_[projectName]_[feedName].zip

20121008_full_antidot_catalog.zip

  • Basically an archive contains one file per

language, named:

  • [feed]-[website-name]-[ISO language code - 2 minimal

characters].xml categories-antidot-fr.xml catalog-antidot-nl.xml

slide-53
SLIDE 53

53

Data creation: the archives

  • If multiple website for a single language, you can use

several files:

categories-website1-fr.xml catalog-website2-fr.xml

  • Incremental update support for catalog

Rename the archive by:

  • using a more precise timestamp (second is ok)
  • replace 'full' by 'inc’

20121107033047_inc_antidot_catalog.zip

slide-54
SLIDE 54

54

Data creation: the xml

  • Only one language per file
  • UTF-8 mandatory
  • Ids must be unique within a file
  • xml:lang must use only ISO 639-1 (Alpha2)
  • Must be xml valid
slide-55
SLIDE 55

55

Data quality: offline

  • AFS@Store provides XSD
  • http://ref.antidot.net/store/latest
  • Choose the right XSD for the right feed
  • Skeletons validate the main structure of the xml file
  • catalogSkeleton.xsd for catalog feed
  • Main XSD validates the whole content of a feed:
  • catalog.xsd for catalog feed
  • Unit XSD validates one document
  • product.xsd for product within a catalog
slide-56
SLIDE 56

56

Data quality: using the Back-Office

  • When sending a data feed, you can check it runs

well from Antidot Back-Office

  • A run can fail if
  • not XML valid
  • not conform to the XSD
  • too many documents (e.g products) fail validation
  • If only few documents failed, indexation will

proceed

slide-57
SLIDE 57

57

Data quality: using the Back-Office

  • Antidot Back-Office gives you details about XSD failures when it

comes to specific products:

  • You can even check input data by clicking product link from

Dataflow logs.

  • You will access a Document Inspector containing xml data of the

document

slide-58
SLIDE 58

58

Sending data

  • SFTP
  • Account required on Antidot Datacenter
  • Push the data with appropriate script (PHP, Shell,…)
  • Automate the script for upload, by choosing:
  • Frequencies
  • Schedules
  • Based on project requirements

(prices, stock, product updates)

  • HTTPS upload
  • Incoming
slide-59
SLIDE 59

59

Sending data

  • SFTP
  • HTTP upload
  • Account required on Antidot Back-Office
  • Push the data with appropriate web service: upload
  • Automate upload, by choosing:
  • Frequencies
  • Schedules
  • Based on project requirements

(prices, stock, product updates)

slide-60
SLIDE 60

60

Sending data : upload from BO

slide-61
SLIDE 61

61

Sending data: upload from WS

  • Example with shell script

export HOST=bo-store.afs-antidot.net export FILE=20151016_full_foobar_catalog.zip export SERVICE_ID=42 export STATUS=rc export PAF_NAME=Catalog export LOGIN=login://user:password@BOWS export UPLOAD_TYPE=full

curl 


  • H Expect: 

  • -form file1="@${FILE}" 

  • "https://${HOST}/bo-ws/service/${SERVICE_ID}/instance/${STATUS}/

paf/${PAF_NAME}/upload?afs:login=${LOGIN}%26afs:type=${UPLOAD_TYPE}" 


  • X POST

slide-62
SLIDE 62

62

Sending data: upload from WS

  • Example with shell script

export HOST=bo-store.afs-antidot.net export FILE=20151016_full_foobar_catalog.zip export SERVICE_ID=42 export STATUS=rc export PAF_NAME=Catalog export LOGIN=login://user:password@BOWS export UPLOAD_TYPE=full

curl 


  • H Expect: 


  • -form file1="@${FILE}" 



 "https://${HOST}/bo-ws/service/${SERVICE_ID}/instance/${STATUS}/ paf/${PAF_NAME}/upload?afs:login=${LOGIN}&afs:type=${UPLOAD_TYPE}" 
 


  • X POST

slide-63
SLIDE 63

63

Sending data: upload from WS

  • Can also be used in php, python, etc.
  • Example at Antidot
  • Python WS API
  • Upload data
  • Run processing pipelines
  • Wait for pipeline to end
slide-64
SLIDE 64

64

Data model in details

AFS@Store

slide-65
SLIDE 65

65

AFS@Store data model

  • AFS@Store relies on a specific vocabulary defined by

Antidot and expressed as XML Schemas

  • Each xml file (a.k.a feed) sent as input must conform

to these schemas.

  • Failed documents won’t be indexed. That condition

ensures the search engine quality.

  • It’s also a check to avoid the update of an index with

less than 95% of input products valids.

slide-66
SLIDE 66

66

Data feed header

  • Common to all the AFS@Store feeds.
  • Xml fragment defining minimum details about

data file.

<header> <owner>Antisearch</owner> <feed>parapharmacy</feed> <generated_at>2011-07-19T15:37:41+02:00</generated_at> </header>

slide-67
SLIDE 67

67

Catalog data format

  • 5 feeds availables
  • Catalog (mandatory)
  • Categories
  • Brands
  • Articles
  • Stores
slide-68
SLIDE 68

68

Catalog: what are variants ?

  • Variants are SKU which share common
  • characteristics. These define a main product.
  • Tshirt

Tshirt A A is the product; white one in S and L, red one and green ones are its variants.

S ¡

S ¡ L ¡ M ¡ M ¡

Tshirt ¡A ¡

slide-69
SLIDE 69

69

Catalog: what are variants ?

  • Variants may be specific for prices, colors,

sizes, stock, custom attributes (properties)

  • Only matching variants will be returned by

search

  • Facets will list the values for the matching

variant, while showing the product model.

  • Example: TshirtA is available on colors white, red,

green, and on sizes S, M, L

slide-70
SLIDE 70

70

Catalog context

  • Language is an atomic context, sufficient if you have
  • nly one website per language
  • Use website

tes for a simple filter for search and acp

  • Use sto

tores when price, availability or marketing depends of physical or virtual stores

  • Examples
  • Drives support: use one store per physical shop, plus one for web

shop

  • Multiple countries context: use stores (one per country)
  • Store is available at product

product or va variant level

slide-71
SLIDE 71

71

Catalog fields

  • Autocompletion must be explicitely enabled
  • <product id="70551" xml:lang="fr" autocomplete="on">
  • Identifiers
  • Extendable products codes
  • Classification
  • See further section
  • Properties
  • See further section
  • Descriptions
  • Extendable plain text descriptions
  • Marketing operations
  • See further section
  • Price model
  • See further section
  • Misc
  • Free fields, not indexed, only for display purposes
slide-72
SLIDE 72

72

Catalog – classification

  • Hierarchy and multiple values supported
  • Use img, url and keywords attributes for ACP
  • Autocompletion enabled by default
  • It can use a specific setting that will enable match on

brand which contains these categories

  • Example:

<classification autocomplete="cross">

  • ACP feed will be named:
  • categories_[websiteId]_[lang]
slide-73
SLIDE 73

73

Catalog – properties

  • Allows to create facets
  • name and label
  • string, date, numeric
  • tree or interval (numeric only)
  • A property can become an acp feed with

custom meta data (cf. examples from AFS@Store integration guide)

  • ACP feed will be named:
  • property_[propertyName]_[websiteId]_[lang]
slide-74
SLIDE 74

74

Catalog – marketing operations

  • Very important to get merchandizing into search

and acp

  • Search: filters and sort criteria, marketing facet
  • ACP: automatic boost
  • Available operations:
  • is_promotional
  • is_new
  • Is_best_sale
  • is_featured
  • operation (custom)
slide-75
SLIDE 75

75

Catalog – price model

  • Price final
  • Price cut only for promotional items
  • Several attributes:
  • currency (mandatory): automatic facet per currency
  • off: discount percentage, will create automatic facet

(price_off), meta data for product acp and use in acp scoring

  • Quantities
  • Price ranges per quantity
slide-76
SLIDE 76

76

Categories data format

  • 5 feeds availables
  • Catalog (mandatory)
  • Categories
  • Brands
  • Articles
  • Stores
slide-77
SLIDE 77

77

Categories data format

  • Use broader to link categories
  • Use websites to contextualize (url, products count, …)
  • Add keywords for broader matching
  • Autocompletion must be explicitely enabled if needed:

<category id="99998" xml:lang="fr" autocomplete=”on">

  • ACP feed will be named:
  • categories_pages_[websiteId]_[lang]
  • ACP differences versus categories feed from Catalog
  • Contains all landing pages, products count
  • Can not be crossed with brands
slide-78
SLIDE 78

78

AFS@Store Features

  • 5 feeds availables
  • Catalog (mandatory)
  • Categories
  • Brands
  • Articles
  • Stores
slide-79
SLIDE 79

79

Brands data format

  • Same as Categories, but:
  • No broader element
  • Autocomplete not yet supported
slide-80
SLIDE 80

80

AFS@Store data format

  • 5 feeds availables
  • Catalog (mandatory)
  • Categories
  • Brands
  • Articles
  • Stores
slide-81
SLIDE 81

81

Articles data format

  • Autocompletion enabled by default on title
  • Support ACP on classification node
  • ACP feed will be named:
  • articles_[websiteId]_[lang]
  • articles_classification_[websiteId]_[lang]
  • Important fields
  • text:

main raw article content

  • type:

allows search clustering and acp flag

  • websites:

filter for search and acp

  • classification:

same features as Catalog

  • interaction_counts: extendable sort criteria
  • dates:

sort criteria

slide-82
SLIDE 82

82

AFS@Store data format

  • 5 feeds availables
  • Catalog (mandatory)
  • Categories
  • Brands
  • Articles
  • Stores
slide-83
SLIDE 83

83

AFS@Store data format

  • Autocompletion enabled by default
  • ACP feed will be named:
  • stores_[websiteId]_[lang]
  • Support for geo:dist enabled with longitude and latitude

fields

  • Support for websites as a filter (no contextualization)
  • Others filters:
  • is_shipping_target
  • country
  • Allows free fields within misc element
slide-84
SLIDE 84

84

Tutorial

AFS@Store

slide-85
SLIDE 85

85

AFS@Store features

  • Tutorial

1) From e-commerce website, create

te an AFS@Store sample for the Cata talog feed

2) 2) Validate

te the sample with provided xsd

3) 3) Add

Add more elements to the sample : facets, misc, …

4) According to the filename policy : rename xml, zip it,

rename zip and upload upload to the given directory

slide-86
SLIDE 86

86

Ready to use !

AFS@Store

slide-87
SLIDE 87

87

AFS@Store output

  • Live example
slide-88
SLIDE 88

88

AFS@Store output

  • Raw XML or XSL skin
slide-89
SLIDE 89

89

Search API

AFS@Store

slide-90
SLIDE 90

90

Search

  • Parameters list
  • afs:query
  • afs:sort
  • afs:filter
  • afs:cluster
  • afs:tag
  • cf. AFS@Store online integration guide:

Search Service > Query Syntax

slide-91
SLIDE 91

91

Tutorial – Search parameters

AFS@Store

slide-92
SLIDE 92

92

Search

  • Go to the given URL (http://eval.partners.antidot.net/search?afs:service=7006)
  • Launch the query “fleur".
  • Sort the results by ascending price (predicate name : ”price_eur”)

Query : ......................................................................................................

  • From the previous request, filter results via the classification filter with the “10006"

value. Query : ......................................................................................................

  • Launch a new query : “croquettes".
  • Cluster results by brand with 2 replies by clusters, and add a tag ”Bargain price" when

the price value is less than 4. Query : ......................................................................................................

slide-93
SLIDE 93

93

Search

  • Tutorial (2/2)
  • Launch the query “Tuteurs Bambou" in strict ftsMatch mode,
  • Keep only facets values in french

Query : ......................................................................................................

  • Launch a query on “sachets pour chats”,
  • Filter on items which are between 6 and 20 €, which brand value is “FELIX” or

“SCIENCE PLAN”

  • Hide all the facets

Query : ......................................................................................................

  • Search "boite", keep only the brand and classification facets, display classification

facet before brand, reorder the values of brand facets by reversed alphabetical

  • rder, and get the result of the query in JSON.

Query : ......................................................................................................

slide-94
SLIDE 94

94

Search

  • Correction (1/2)
  • Launch the query “fleur".
  • Sort the results by ascending price (predicate name : ”price_eur”)

Query : http://<IP>/search?afs:service=7006&afs:query=fleur&afs:sort afs:sort=price_eur,ASC price_eur,ASC

  • From the previous request, filter results via the classification filter with the “10006"

value. Query : http://<IP>/search? afs:service=7006&afs:query=fleur&afs:sort=price_eur,ASC&afs:filter=classifi ficati tion="1 "10 006" "

  • Launch a new query : “croquettes".
  • Cluster results by brand with 2 replies by clusters, and add a tag ”Bargain price" when

the price value is less than 4. Query : http://<IP>/search?afs:service=7006&afs:query=croquettes&afs:cluste ter=brand, =brand, 2&afs:ta tag="Ba Bargain price price": ":price_eur price_eur<4 <4

slide-95
SLIDE 95

95

Search

  • Correction (2/2)
  • Launch the query “Tuteurs Bambou" in strict ftsMatch mode,
  • Keep only facets values in french

Query : http://<IP>/search?afs:service=7006&afs:query=Tuteurs Bambou&afs:fts tsMatc tch=str trict&afs:lang afs:lang=fr fr

  • Launch a query on “sachets pour chats”,
  • Filter on items which are between 6 and 20 €, which brand value is “FELIX” or “SCIENCE

PLAN”

  • Hide all the facets

Query : http://<IP>/search?afs:service=7006&afs:query=sachets pour chats&afs:fi filte ter=price_eur price_eur=[6 .. 20] =[6 .. 20]&afs:fi filte ter=(b (brand="FE "FELIX IX" " or brand="S "SCIE IENCE PL PLAN") ")&afs:facetD tDefault=replies=0 =replies=0

  • Search "boite", keep only the brand and classification facets, display classification facet

before brand, reorder the values of brand facets by reversed alphabetical order, and get the result of the query in JSON. Query : http://<IP>/search? afs:service=7006&afs:query=boite&afs:facetO tOrder=classifi ficati tion,brand&afs:facet afs:facet=brand =brand , , order

  • rder=DESC

DESC&afs:outp tput=json json

slide-96
SLIDE 96

96

Search integration

AFS@Store

slide-97
SLIDE 97

97

PHP API

AFS@Store

slide-98
SLIDE 98

98

PHP API

  • PHP library used to interact with AFS search engine
  • Open source:

https://github.com/antidot/PHP_API

  • Documentation:

http://antidot.github.io/PHP_API/doc/html/

  • Release notes:

http://doc-store.antidot.net/ > "Publications" Tab > API PHP Release Notes

slide-99
SLIDE 99

99

PHP API

  • Common packages (required)
  • php5
  • php5-cgi
  • php5-curl
  • Load the library
slide-100
SLIDE 100

100

PHP API – Principle

  • Relies on two main objects (Query and Reply)

designed like this:

API search.php

query reply

AFS

afs_lib.php

slide-101
SLIDE 101

101

vide ¡ Helpers ¡ ¡Get ¡data ¡ ¡Set ¡parameter ¡ ¡ vide ¡ IniCalize ¡ Configure ¡ Execute ¡

PHP API – Principle

API search.php

query reply

slide-102
SLIDE 102

102

PHP API – Examples

  • Initialize a new search connection

$search = new AfsSearch('serveur.afs.com', 7000);

slide-103
SLIDE 103

103

PHP API – Examples

  • Build a new query

$query = $search->build_query_from_url_parameters();

slide-104
SLIDE 104

104

PHP API – Examples

  • Configure a new query
  • Set facet order

$query = $query->set_facet_order('price_eur',rating','brand’);

  • Set facets values sort order

$query = $query->set_facet_values_sort_order('classification', AfsFacetValuesSortMode::ALPHA, AfsSortOrder::ASC);

slide-105
SLIDE 105

105

PHP API – Examples

  • Configure a new query
  • Get active filters
  • $active_filters = array();

$sortedReplysets = array('Catalog', 'Articles'); foreach ($sortedReplySets as $feed) { foreach ($query->get_filters($feed) as $facet_id) {

  • $active_filters[$facet_id] =
  • $query->get_filter_values($facet_id, $feed);
  • }

}

slide-106
SLIDE 106

106

PHP API – Examples

  • Run the query

$search->execute($query)

slide-107
SLIDE 107

107

PHP API – Helpers

<?php (…) $replyset = $helper->get_replyset() (…) ?> <?php foreach ($replyset->facets->facet as $facet) ?> (…) <?php $item = null; if ($facet->{'afs:t'} == 'FacetTree') {

  • $item = 'node';

} elif ($facet->{'afs:t'} == 'FacetInterval') {

  • $item = 'interval;

} else {

  • throw new Exception('Unknown facet layout: ' . $facet->{'afs:t'});

} foreach ($facet->$item as $value) { … ?>

slide-108
SLIDE 108

108

<?php $helper = $search->execute(AfsHelperFormat::HELPERS); $replyset = $helper->get_replyset() (…) ?>

  • <?php

foreach ($replyset->get_facets() as $facet) { ?> (…) <?php foreach ($facet->get_elements() as $value) {

?>

PHP API – Helpers

slide-109
SLIDE 109

109

PHP API – must know

  • Custo

tom user and session ids ids

  • Default

t behavi vior: :

  • The API

PI generate tes its ts own

  • wn user and session

user and session Id Ids. .

  • It

It will will be be not t possible to to link link BO BO analyti ytics with th custo tomer website te user's user's sessions. sessions.

  • To use custo

tom user and session ID IDs, , cookies cookies used used by y th the website te must t be be speci specifi fied ed: :

$user_session_manager = new AfsUserSessionManager('MyUserId', 'MySessionId');

  • $search->get_helpers_configuration()
  • >set_user_sessionmanager($user_session_manager);
  • $helper = $search->execute();
slide-110
SLIDE 110

110

PHP API – must know

  • Helpers

Helpers auto to generate te links (p (pages, facets ts, etc tc.) )

  • Generate

ted links links doesn't doesn't referring referring directl tly to to AFS FS query query engine engine

  • Default

t link link ta target is is th the current current page page

  • This

This ta target is is con confi figurable gurable vi via :

$search->set_query_coder(new AfsQueryCoder('MyTarget.php'));

  • Get

Get th this link link and and send send th the request request to to AFS FS query query engine engine

slide-111
SLIDE 111

111

PHP API – must know

  • On

On link link ta target page, page, build build query query from from url url paramete ters $search->build_query_from_url_parameters();

  • Then

Then seve veral process process can can be be applied applied: :

  • facet

facet order

  • rder,

,

  • add

add of

  • f paramete

ters, ,

  • releva

vance tu tuning, ,

  • sort,

t,

  • etc

tc.

  • And

And send send request request

$helper = $search->execute();

slide-112
SLIDE 112

112

PHP API – must know

  • Helpers

Helpers generate ted links links

  • Warning:
  • Note that each new query parameters that impact

direcly the response (new filter, new query, etc.) reset pagers !

slide-113
SLIDE 113

113

PHP API – must know

  • Pr

Promote tes

foreach ($helper->get_promotes() as $promote) { if ($promote->get_type() === "default") $custom_data = $promote->get_custom_data();

  • elseif ($promote->get_type() === "banner") {

$url = $promote->get_url(); $image_url = $promote->get_image_url();

  • elseif ($promote->get_type() === "redirect") {

$url = $promote->get_url(); }

  • else { /* unknown promote */ }

}

slide-114
SLIDE 114

114

PHP API

slide-115
SLIDE 115

115

Tutorial – search integration

AFS@Store

slide-116
SLIDE 116

116

Search

  • Tutorial : PH

PHP P

  • Thanks to the online documentation1
  • 1. Con

Confi figure gure an example for the given search service

  • 2. Modify

Modify your own template to display facets and results

  • f the search service
  • 3. Custo

tom the result

1 ¡: ¡hKp://anCdot.github.io/PHP_API/doc/html/index.html ¡

slide-117
SLIDE 117

117

Autocompletion (ACP)

AFS@Store

slide-118
SLIDE 118

118

ACP

  • Many meta data
  • Context as feed pattern
  • Select feed to contextualize suggestions
  • XML or JSON
  • Automatic scoring
slide-119
SLIDE 119

119

ACP

  • Cf. AFS@Store online integration guide
  • Autocompletion service
  • Several ways to integrate:
  • ACP kit
  • JQuery Autocompleter
  • PHP Api
  • Other server languages to render HTML
slide-120
SLIDE 120

120

ACP

SuggesCons ¡from ¡mulCple ¡feeds ¡ It’s ¡an ¡object ¡: ¡noCce ¡the ¡ ¡"{" ¡character ¡ SuggesCons ¡from ¡the ¡feed ¡« ¡brands_fr ¡» ¡ ¡ SuggesCons ¡from ¡the ¡feed ¡« ¡categories_fr ¡» ¡ ¡

slide-121
SLIDE 121

121

ACP

  • Integration
  • Mono/multi list and mono/multi feed and custom
slide-122
SLIDE 122

122

AFS@Store ACP

  • Parameters list
  • acp parameters are quite similar to the search

web service.

slide-123
SLIDE 123

123

Tutorial – using ACP

AFS@Store

slide-124
SLIDE 124

124

AFS@Store ACP

  • Tutorial
  • Go to the given url.
  • Use
  • Launch the query “fel" on the appropriate service id, and get the

generated acp Query : .........................................................................................

  • Launch the query “fel" on the appropriate service id, using the

“brands_fr” feed, and get the acp. What’s the difference with the previous one ? Query : .........................................................................................

  • From the previous request, limit the number of replies to 1 .

Query : .........................................................................................

slide-125
SLIDE 125

125

Analytics

AFS@Store

slide-126
SLIDE 126

126

Visitor Qualification

  • Search sessions and unique visitor
  • When a visitor launches a query, it’s necessary to try to

recognize him by reading:

  • a user id from a cookie or database -> afs:userId
  • a session id from a cookie
  • > afs:sessionId
  • Then, launch a query with this information transmitted
  • In result page, retrieve session and user id to create

cookie/record if it doesn’t exist

slide-127
SLIDE 127

127

Visitor Qualification

  • User agent and IP addresses
  • Propagate these informations for each search

query

  • afs:ip
  • afs:userAgent
  • Allows bot detection as well as IP restrictions.
slide-128
SLIDE 128

128

Visitor Behavior

  • Origin of a query
  • afs:from
  • Useful values include: SEARCHBOX, ACP, FACET,

SPELLCHECK, PAGER, SORT, PROMOTE…

  • Selected items
  • Collecting tools named click (web service)
  • Logging utility which feeds Analytics visitor data
  • Has to be fully integrated
slide-129
SLIDE 129

129

Visitor qualification

http://www.project.com http://project.afs-antidot.net

query ¡ query ¡ AFS ¡query ¡ + ¡HTTP ¡Header ¡(IP, ¡User-­‑Agent) ¡ + ¡Cookies ¡(UserId, ¡SessionId) ¡

slide-130
SLIDE 130

130

Hit Parade retrieval

  • Most basic task when integrating eCommerce

search engine: Display most frequent expressions.

  • Web service for this: analytics
slide-131
SLIDE 131

131

Hit Parade retrieval

  • A basic query to this web service looks like this:

https://bo-store.afs-antidot.net/ bo-ws/service/7000/instance/beta/ analytics/type/TOP_EXPR_WREPLY/ scale/MONTH? afsLog=USER&afs:login=login:// [account email]:[password]@BOWS

slide-132
SLIDE 132

132

Hit Parade retrieval

  • A basic query to this web service looks like this:

https://bo-store.afs-antidot.net/ bo-ws/service/7000/instance/beta/ analytics/type/TOP_EXPR_WREPLY/ scale/MONTH? afsLog=USER&afs:login=login:// [account email]:[password]@BOWS &afs:ouput=json

slide-133
SLIDE 133

133

Support

  • Ticketing
  • mantis.antidot.net
  • Contact
  • Support mail : support@antidot.net
  • Phone : 04 42 63 67 90
  • Documentation
  • http://doc-store.antidot.net/
slide-134
SLIDE 134

134

Questions

AFS@Store