Dependendo do catálogo de produtos é possível que ao cliente queira ordenar os produtos por avaliação, preço, etc. Para isso podemos utilizar a ordenação da retail search.
Exemplo de código:
import google.auth
from google.cloud.retail import SearchRequest, SearchServiceClient
project_id = google.auth.default()[1]
# get search service request:
def get_search_request(query: str, order: str):
default_search_placement = (
"projects/"
+ project_id
+ "/locations/global/catalogs/default_catalog/placements/default_search"
)
search_request = SearchRequest()
search_request.placement = default_search_placement
search_request.query = query
search_request.order_by = order
search_request.visitor_id = "999999" # A unique identifier to track visitors
search_request.page_size = 10
print("---search request---")
print(search_request)
return search_request
# call the Retail Search:
def search():
# TRY DIFFERENT ORDERING EXPRESSIONS HERE:
order = "price desc"
search_request = get_search_request("Blusa", order)
search_response = SearchServiceClient().search(search_request)
print("---search response---")
print(search_response)
return search_response
search()
# [END retail_search_for_products_with_ordering]
Também é possível filtrar itens com base em algumas condições, como cor ou modelo disponível.
Exemplo de código:
import google.auth
from google.cloud.retail import SearchRequest, SearchServiceClient
project_id = google.auth.default()[1]
# get search service request:
def get_search_request(query: str, _filter: str):
default_search_placement = (
"projects/"
+ project_id
+ "/locations/global/catalogs/default_catalog/placements/default_search"
)
search_request = SearchRequest()
search_request.placement = default_search_placement # Placement is used to identify the Serving Config name.
search_request.query = query
search_request.filter = _filter
search_request.page_size = 15
search_request.visitor_id = "8989879" # A unique identifier to track visitors
search_request.page_size = 15
print("---search request:---")
print(search_request)
return search_request
# call the Retail Search:
def search():
# TRY DIFFERENT FILTER EXPRESSIONS HERE:
filter_ = '(colorFamilies: ANY("Preto"))'
search_request = get_search_request("Casaco", filter_)
search_response = SearchServiceClient().search(search_request)
print("---search response---")
print(search_response)
return search_response
search()
Referências:
https://cloud.google.com/retail/docs/search-basic?hl=pt-br#querying_tutorial