View a markdown version of this page

Cree interfaces con datos de catálogo - AWS Marketplace

Se reestructuró la referencia de API de AWS Marketplace. Para obtener más información sobre las operaciones de API compatibles, consulte la referencia de API de 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

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

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.

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

  3. Visualización de precios: llame ListPurchaseOptions y muestre GetOfferTerms las opciones de precios. GetOffer

Cree una experiencia de navegación

Ú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

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

Ú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

  • 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

  • Minimice las llamadas a las API: utilícelas SearchListings para obtener datos resumidos y solo llame a las API detalladas (GetProductGetOffer,,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.