# Supplier imports

WholesaleFromUSA can import a public supplier product page when no supplier API is available.

## Create an import

`POST /api/v1/wholesale/imports` requires the development bearer token in the MVP:

```json
{
  "source_url": "https://www.berlinpackaging.com/3497b01-b-16-oz-clear-pet-square-beverage-bottles-cap-not-included/",
  "supplier_name": "Berlin Packaging",
  "refresh_interval_days": 7
}
```

The importer records the source URL, domain, content hash, parser version, import event, next refresh time, product, supplier, and offer. It extracts JSON-LD, metadata, supplier custom fields, visible availability, images, SKU, specifications, and quantity-break pricing. A `$0.00` placeholder is never treated as a price.

Imported offers are quote-based by default. The source status and tiered price data are informational until the supplier is verified and the business has a lawful ordering relationship.

## Refresh policy

The default refresh interval is 72 hours and may be set between 72 hours and ninety days. Each source receives a deterministic phase within its refresh window, so a large catalog is distributed instead of refreshed in one burst. The worker runs once per minute, processes imports serially, and defaults to a maximum of 120 refreshes per minute. `IMPORT_REFRESH_PER_MINUTE` can lower that ceiling for a smaller server.

The importer is restricted to public HTTP(S) URLs and rejects credentials, localhost, and private-network targets to reduce SSRF risk. It does not bypass login walls, CAPTCHAs, robots controls, or access restrictions.
