

Se reestructuró la referencia de la API de AWS Marketplace. Para obtener más información sobre las operaciones de API compatibles, consulte la referencia [ de API de ](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html) AWS Marketplace.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cree interfaces con datos de catálogo
<a name="build-interfaces-with-catalog-data"></a>

Puede usar la API AWS Marketplace Discovery para acceder al catálogo mediante programación y mostrar información sobre productos y precios en sus propias plataformas. En esta sección, se describe cómo crear interfaces personalizadas, como escaparates, portales de socios y experiencias de ventas integradas para que sus clientes puedan navegar por ellas, mediante la API Discovery.

## Información general de la arquitectura
<a name="discovery-seller-architecture"></a>

Una integración típica sigue este patrón:

1. **Experiencia de navegación**: llama `SearchListings` para recuperar los resúmenes de los anuncios basados en el texto y los filtros de búsqueda, y `SearchFacets` para rellenar las opciones de navegación y filtrado por categorías con los recuentos.

1. **Páginas de detalles del producto**: llama `GetListing` o consulta `GetProduct` para ver todos los detalles del producto, contenido multimedia y reseñas.

1. **Visualización de precios**: llame `ListPurchaseOptions` y muestre `GetOfferTerms` las opciones de precios. `GetOffer`

## Cree una experiencia de navegación
<a name="discovery-seller-browse"></a>

Úselo `SearchListings` para recuperar resúmenes de anuncios basados en el texto y los filtros de búsqueda, y `SearchFacets` para crear una navegación dinámica por filtros. Las facetas incluyen las categorías, los tipos de gestión logística, los modelos de precios, las unidades de precios, los editores y el estado de la implementación. El valor de cada faceta incluye un recuento de los anuncios coincidentes, que puedes mostrar junto con las opciones 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']}")
```

## Crea páginas de detalles del producto
<a name="discovery-seller-product-pages"></a>

Utilice `GetListing` o `GetProduct` para mostrar todos los detalles del producto, los contenidos multimedia y las reseñas. `GetListing`Úsala cuando necesites un resumen del anuncio, que incluye distintivos, categorías y resúmenes de precios. Úsalo `GetProduct` cuando necesites información detallada sobre el producto, como descripciones, aspectos destacados y contenido multimedia. Llame `ListFulfillmentOptions` para obtener información sobre las opciones de implementación de un producto 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
    }
```

## Mostrar información de precios
<a name="discovery-seller-pricing"></a>

Úselo `ListPurchaseOptions` para buscar las ofertas disponibles de un producto `GetOffer` y, a continuación, `GetOfferTerms` para recuperar los precios detallados. Muestra los modelos de precios, las tablas de tarifas y los detalles de los plazos para ayudar a tus clientes a evaluar las opciones.

```
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ácticas recomendadas
<a name="discovery-seller-best-practices"></a>
+ **Respuestas en caché**: los datos de productos y precios cambian con poca frecuencia. Almacene en caché las respuestas de la API durante 15 a 60 minutos para reducir las llamadas a la API y mejorar los tiempos de carga de las páginas.
+ **Gestionar la paginación**: se utiliza `nextToken` para recuperar todos los resultados de las operaciones paginadas. Los tokens de paginación caducan después de 24 horas.
+ **Implemente la lógica de reintento**: utilice un retroceso exponencial para las respuestas `ThrottlingException` (HTTP 429).
+ **Mostrar atribución**[: cuando muestres AWS Marketplace datos en tu plataforma, sigue las directrices sobre marcas comerciales.AWS](https://aws.amazon.com/trademark-guidelines/)
+ **Minimice las llamadas a las API**: utilícelas `SearchListings` para obtener datos resumidos y solo llame a las API detalladas (`GetProduct``GetOffer`,,`GetOfferTerms`) cuando un usuario navegue hasta un producto específico.

**nota**  
La API Discovery es compatible con todos los tipos de productos AWS Marketplace, incluidos SaaS, agentes y herramientas de IA, AMI, contenedores y modelos de aprendizaje automático. Su interfaz puede mostrar todo el catálogo.