# Changelog of PetSmart Product Scraper (`codingfrontend/petsmart-product-scraper`) Actor

- **URL**: https://apify.com/codingfrontend/petsmart-product-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/codingfrontend/petsmart-product-scraper.md

## Changelog

### \[1.1.0] - 2026-08-31

- Replaced Playwright with native HTTPS and merged PetSmart's embedded structured search payload with server-rendered cards.
- Added multiple queries, page and aggregate limits, canonical deduplication, rich provenance, block detection, and true zero-result failure.
- Removed nullable nested raw payloads and added strict schemas, fixtures, tests, validation, reproducible installs, and latest tagging.
- Prevented nullable price and rating fields from becoming synthetic zeroes and decoded description markup entities.

### \[2.0.0] - 2026-05-21

#### Changed

- Refactored single-file `src/main.js` into modular Brave actor structure
- Separated routing logic into `src/routes/handlers.js` and `src/routes.js`
- Added input validation via `src/schema/input.js`
- Added `validate-datasets.js` for local dataset validation
- Improved dataset schema with full field definitions and table view

#### Added

- `src/schema/input.js` — validates and normalizes actor input
- `src/routes/handlers.js` — dedicated request handler for PetSmart listing pages
- `validate-datasets.js` — validates output dataset against schema
- `.actor/dataset_schema.json` — defines output fields: sku, title, brand, price, salePrice, currency, rating, reviewCount, variants, description, url, imageUrl, searchQuery, scrapedAt

#### Fixed

- Pagination handling for large result sets
- Variant extraction for multi-option products

### \[1.0.0] - 2025-01-01

#### Added

- Initial release: scrapes PetSmart product listings by search query
- Extracts sku, title, brand, price, rating, reviewCount, imageUrl
