View a markdown version of this page

Membangun antarmuka dengan data katalog - AWS Marketplace

Referensi API AWS Marketplace direstrukturisasi. Untuk informasi selengkapnya tentang operasi API yang didukung, lihat Referensi API AWS Marketplace.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membangun antarmuka dengan data katalog

Anda dapat menggunakan AWS Marketplace Discovery API untuk mengakses katalog secara terprogram dan menampilkan informasi produk dan harga di platform Anda sendiri. Bagian ini menjelaskan cara membuat antarmuka khusus seperti etalase, portal mitra, dan pengalaman penjualan terintegrasi untuk dinavigasi pelanggan Anda, menggunakan Discovery API.

Gambaran umum arsitektur

Integrasi tipikal mengikuti pola ini:

  1. Pengalaman jelajahi — Panggilan SearchListings untuk mengambil ringkasan daftar berdasarkan teks pencarian dan filter, dan SearchFacets untuk mengisi navigasi kategori dan opsi filter dengan hitungan.

  2. Halaman detail produk - Panggilan GetListing atau GetProduct untuk menampilkan detail produk lengkap, media, dan ulasan.

  3. Tampilan harga - Panggilan ListPurchaseOptionsGetOffer,, dan GetOfferTerms untuk menampilkan opsi harga.

Bangun pengalaman menjelajah

Gunakan SearchListings untuk mengambil ringkasan daftar berdasarkan teks pencarian dan filter, dan SearchFacets untuk membangun navigasi filter dinamis. Aspek meliputi kategori, jenis pemenuhan, model harga, unit harga, penerbit, dan status penerapan. Setiap nilai aspek mencakup jumlah daftar yang cocok, yang dapat Anda tampilkan bersama opsi filter.

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']}")

Membangun halaman detail produk

Gunakan GetListing atau GetProduct untuk menampilkan detail produk, media, dan ulasan lengkap. Gunakan GetListing saat Anda membutuhkan ikhtisar daftar termasuk lencana, kategori, dan ringkasan harga. Gunakan GetProduct saat Anda membutuhkan informasi produk terperinci seperti deskripsi, sorotan, dan media. Panggilan ListFulfillmentOptions untuk mengambil opsi penerapan untuk produk tertentu.

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 }

Menampilkan informasi harga

Gunakan ListPurchaseOptions untuk menemukan penawaran yang tersedia untuk suatu produk, kemudian GetOffer dan GetOfferTerms untuk mengambil harga terperinci. Tampilkan model harga, kartu tarif, dan detail istilah untuk membantu pelanggan Anda mengevaluasi opsi.

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

Praktik terbaik

  • Respons cache — Data produk dan harga jarang berubah. Cache respons API selama 15—60 menit untuk mengurangi panggilan API dan meningkatkan waktu pemuatan halaman.

  • Menangani pagination - Gunakan nextToken untuk mengambil semua hasil dari operasi paginasi. Token pagination akan kedaluwarsa setelah 24 jam.

  • Menerapkan logika coba lagi — Gunakan backoff eksponensial untuk respons ThrottlingException (HTTP 429).

  • Atribusi tampilan — Saat menampilkan AWS Marketplace data di platform Anda, ikuti Pedoman AWS Merek Dagang.

  • Minimalkan panggilan API — Gunakan SearchListings untuk data ringkasan dan hanya memanggil API detail (GetProductGetOffer,,GetOfferTerms) saat pengguna menavigasi ke produk tertentu.

catatan

Discovery API mendukung semua jenis produk AWS Marketplace, termasuk SaaS, agen dan alat AI, AMI, wadah, dan model pembelajaran mesin. Antarmuka Anda dapat menampilkan luasnya katalog.