

A referência de API do AWS Marketplace foi reestruturada. Para obter mais informações sobre as operações de API suportadas, consulte a Referência de API do [ AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie interfaces com dados do catálogo
<a name="build-interfaces-with-catalog-data"></a>

Você pode usar a API AWS Marketplace Discovery para acessar programaticamente o catálogo e exibir informações sobre produtos e preços em suas próprias plataformas. Esta seção descreve como criar interfaces personalizadas, como vitrines, portais de parceiros e experiências de vendas integradas para seus clientes navegarem, usando a API Discovery.

## Visão geral da arquitetura
<a name="discovery-seller-architecture"></a>

Uma integração típica segue esse padrão:

1. **Experiência de navegação** — Ligue `SearchListings` para recuperar resumos de anúncios com base no texto e nos filtros de pesquisa e `SearchFacets` para preencher as opções de navegação e filtro por categorias com contagens.

1. **Páginas de detalhes do produto** — Ligue `GetListing` ou `GetProduct` exiba detalhes completos do produto, mídia e avaliações.

1. **Exibição de preços** — Ligue para `ListPurchaseOptions``GetOffer`, e `GetOfferTerms` para mostrar as opções de preços.

## Crie uma experiência de navegação
<a name="discovery-seller-browse"></a>

Use `SearchListings` para recuperar resumos de listagens com base no texto e nos filtros de pesquisa e `SearchFacets` para criar uma navegação dinâmica de filtros. As facetas incluem categorias, tipos de atendimento, modelos de preços, unidades de preços, editores e status de implantação. Cada valor de faceta inclui uma contagem de listagens correspondentes, que você pode exibir junto com as opções de filtro.

```
import boto3

client = boto3.client('marketplace-discovery', region_name='us-east-1')

# Get facet values for building filter navigation
facets = client.search_facets(
    facetTypes=['CATEGORY', 'FULFILLMENT_OPTION_TYPE', 'PRICING_MODEL']
)

for facet_type, values in facets['listingFacets'].items():
    print(f"\n{facet_type}:")
    for facet in values:
        print(f"  {facet['displayName']} ({facet['count']})")

# Search listings with filters applied from user selections
response = client.search_listings(
    searchText='machine learning',
    filters=[
        {
            'filterType': 'CATEGORY',
            'filterValues': ['Machine Learning']
        },
        {
            'filterType': 'PRICING_MODEL',
            'filterValues': ['USAGE']
        }
    ],
    sortBy='RELEVANCE',
    maxResults=25
)

for listing in response['listingSummaries']:
    print(f"{listing['listingName']} - {listing['shortDescription']}")
```

## Crie páginas de detalhes do produto
<a name="discovery-seller-product-pages"></a>

Use `GetListing` ou `GetProduct` para exibir detalhes completos do produto, mídia e avaliações. Use `GetListing` quando precisar da visão geral do anúncio, incluindo emblemas, categorias e resumos de preços. Use `GetProduct` quando precisar de informações detalhadas do produto, como descrições, destaques e mídia. Ligue `ListFulfillmentOptions` para recuperar as opções de implantação de um produto específico.

```
def get_product_page_data(listing_id, product_id):
    """Retrieve data for a product detail page."""

    # Use GetListing for listing-level overview
    listing = client.get_listing(listingId=listing_id)

    # Or use GetProduct for detailed product information
    product = client.get_product(productId=product_id)

    # Get deployment options for the product
    fulfillment = client.list_fulfillment_options(productId=product_id)

    return {
        'listing': listing,
        'product': product,
        'fulfillmentOptions': fulfillment
    }
```

## Exibir informações de preços
<a name="discovery-seller-pricing"></a>

Use `ListPurchaseOptions` para encontrar ofertas disponíveis para um produto `GetOffer` e, em seguida, `GetOfferTerms` para obter preços detalhados. Exiba modelos de preços, tabelas de preços e detalhes de prazos para ajudar seus clientes a avaliar as opções.

```
def get_pricing_for_product(product_id):
    """Retrieve pricing options for display."""
    options = client.list_purchase_options(
        filters=[{
            'filterType': 'PRODUCT_ID',
            'filterValues': [product_id]
        }]
    )

    pricing = []
    for option in options.get('purchaseOptions', []):
        for entity in option['associatedEntities']:
            offer = client.get_offer(
                offerId=entity['offer']['offerId']
            )
            terms = client.get_offer_terms(
                offerId=entity['offer']['offerId']
            )
            pricing.append({
                'option': option,
                'offer': offer,
                'terms': terms
            })

    return pricing
```

## Práticas recomendadas
<a name="discovery-seller-best-practices"></a>
+ **Respostas em cache** — os dados de produtos e preços mudam com pouca frequência. Armazene as respostas da API por 15 a 60 minutos para reduzir as chamadas à API e melhorar os tempos de carregamento da página.
+ **Gerenciar paginação** — Use `nextToken` para recuperar todos os resultados das operações paginadas. Os tokens de paginação expiram após 24 horas.
+ **Implemente a lógica de repetição** — Use o retrocesso exponencial para respostas `ThrottlingException` (HTTP 429).
+ **Atribuição de exibição** — Ao exibir AWS Marketplace dados em sua plataforma, siga as Diretrizes de [AWS marcas comerciais](https://aws.amazon.com/trademark-guidelines/).
+ **Minimize as chamadas de API** — use `SearchListings` para dados resumidos e chame somente as APIs detalhadas (`GetProduct``GetOffer`,,`GetOfferTerms`) quando um usuário navega até um produto específico.

**nota**  
A API Discovery oferece suporte a todos os tipos de produtos AWS Marketplace, incluindo SaaS, agentes e ferramentas de IA, AMI, contêineres e modelos de aprendizado de máquina. Sua interface pode exibir toda a extensão do catálogo.