

Referensi API AWS Marketplace direstrukturisasi. Untuk informasi selengkapnya tentang operasi API yang didukung, lihat [Referensi API AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html).

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
<a name="build-interfaces-with-catalog-data"></a>

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
<a name="discovery-seller-architecture"></a>

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.

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

1. **Tampilan harga** - Panggilan `ListPurchaseOptions``GetOffer`,, dan `GetOfferTerms` untuk menampilkan opsi harga.

## Bangun pengalaman menjelajah
<a name="discovery-seller-browse"></a>

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
<a name="discovery-seller-product-pages"></a>

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
<a name="discovery-seller-pricing"></a>

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
<a name="discovery-seller-best-practices"></a>
+ **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](https://aws.amazon.com/trademark-guidelines/).
+ **Minimalkan panggilan API** — Gunakan `SearchListings` untuk data ringkasan dan hanya memanggil API detail (`GetProduct``GetOffer`,,`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.