ProductPage - itsManeka/amazing-scraper GitHub Wiki

amazing-scraper


amazing-scraper / ProductPage

Interface: ProductPage

Defined in: src/domain/entities/ProductPage.ts:7

Represents the data extracted from a single Amazon product detail page.

Properties

asin

asin: string

Defined in: src/domain/entities/ProductPage.ts:9

The product's ASIN identifier.


contributors?

optional contributors: string[]

Defined in: src/domain/entities/ProductPage.ts:66

List of contributors with roles (e.g. ["Author Name (Autor)", "Translator (Tradutor)"]).


couponInfo

couponInfo: CouponInfo | null

Defined in: src/domain/entities/ProductPage.ts:33

Coupon promotion details, or null when no coupon is present.


couponInfos

couponInfos: CouponInfo[]

Defined in: src/domain/entities/ProductPage.ts:40

Array of all coupons discovered on the product page. Populated via extractAllCoupons to capture multiple PSP/individual coupons on the same PDP. Empty array [] when no coupons are present. Aditivo field (F08, Opcao C) — does not break legacy couponInfo singular.


format?

optional format: string

Defined in: src/domain/entities/ProductPage.ts:62

Product format/binding (e.g. "Capa dura", "Capa Comum", "Kindle").


hasCoupon

hasCoupon: boolean

Defined in: src/domain/entities/ProductPage.ts:31

Whether a coupon promotion was found on this page.


imageUrl?

optional imageUrl: string

Defined in: src/domain/entities/ProductPage.ts:58

High-resolution product image URL from the landing image.


individualCouponInfo?

optional individualCouponInfo: IndividualCouponInfo | null

Defined in: src/domain/entities/ProductPage.ts:50

Inline "individual" coupon details discovered on the product page when no PSP-style coupon was found. Populated only when couponInfo is null and the page renders a PromotionsDiscovery block with a "Termos" popover. null when no individual coupon is present.

Individual coupons do not vinculate to any product and are never used for price calculation — they are persisted as standalone coupons (see F17).


inStock

inStock: boolean

Defined in: src/domain/entities/ProductPage.ts:56

Whether the product is currently in stock.


isPreOrder

isPreOrder: boolean

Defined in: src/domain/entities/ProductPage.ts:60

Whether the product is available for pre-order only.


offerId?

optional offerId: string

Defined in: src/domain/entities/ProductPage.ts:54

Merchant ID from the buy-box seller (e.g. "A1ZZFT5FULY4LN" for Amazon BR).


originalPrice

originalPrice: string | null

Defined in: src/domain/entities/ProductPage.ts:23

Original/list price before discounts (e.g. "R$ 149,90"), or null when the selector did not find a value on the page.


price

price: string | null

Defined in: src/domain/entities/ProductPage.ts:18

Current selling price as a formatted string (e.g. "R$ 99,90"), or null when the price selector did not find any value on the page. null means the scraper could not determine a price — it does NOT mean the product is free. A string value of 'R$ 0,00' represents a legitimately free product (e.g. ebooks).


prime

prime: boolean

Defined in: src/domain/entities/ProductPage.ts:25

Whether the product is eligible for Amazon Prime shipping.


productGroup?

optional productGroup: string

Defined in: src/domain/entities/ProductPage.ts:68

Product group label following PA API DisplayValue convention (e.g. "Book", "DVD", "Video Games").


publisher?

optional publisher: string

Defined in: src/domain/entities/ProductPage.ts:64

Publisher name (e.g. "Intrínseca", "Panini").


rating

rating: number

Defined in: src/domain/entities/ProductPage.ts:27

Average customer rating (0–5).


reviewCount

reviewCount: number

Defined in: src/domain/entities/ProductPage.ts:29

Total number of customer reviews.


title

title: string

Defined in: src/domain/entities/ProductPage.ts:11

Product title extracted from the page.


url

url: string

Defined in: src/domain/entities/ProductPage.ts:52

Canonical URL used to fetch this page.

⚠️ **GitHub.com Fallback** ⚠️