Perennials & Sutherland
Reads Perennials & Sutherland's public rug catalog (perennialsandsutherland.com) — search for a design, read one variant's real trade price, its sibling…
Reads Perennials & Sutherland's public rug catalog (perennialsandsutherland.com) — search for a design, read one variant's real trade price, its sibling colorway/size choices, and its unauthenticated PDF tearsheet.
Domain: perennialsandsutherland.com
Also known as: Perennials & Sutherland, Perennials and Sutherland, Perennials & Sutherland, LLC, perennialsandsutherland.com, Perennials
Call it directly
bowmark.providers.perennialsandsutherland.searchRugs(query: string): Promise<RugSearchResult[]>
bowmark.providers.perennialsandsutherland.getRugVariant(url: string): Promise<RugVariant>
bowmark.providers.perennialsandsutherland.getTearsheetUrl(productId: string): Promise<TearsheetUrl>Functions
| Function | What it does |
|---|---|
searchRugs | Searches Perennials & Sutherland's live public rug catalog and returns each match's product URL, sku, id and name. |
getRugVariant | Reads one rug product-page variant (design + colorway + size) — the real trade price, sku, size, and every sibling colorway/size choice available on that same design — straight off the… |
getTearsheetUrl | Returns the direct, unauthenticated PDF tearsheet download URL for one rug variant (spec sheet keyed to that exact product id) — confirmed to serve a real application/pdf with no login and… |
Types
interface RugSearchResult {
sku: string;
id: string;
name: string;
colorway: string;
url: string;
}
interface RugVariantOption {
sku: string;
variationId: number;
name: string;
}
interface RugVariant {
sku: string;
id: number;
name: string;
url: string;
price: number;
currency: string;
colorways: RugVariantOption[];
sizes: RugVariantOption[];
explorugUrl: string | null;
tearsheetUrl: string;
}
interface TearsheetUrl {
productId: string;
url: string;
}Examples
const rugs = await bowmark.providers.perennialsandsutherland.searchRugs("cercle"); // => RugSearchResult[]const variant = await bowmark.providers.perennialsandsutherland.getRugVariant(rugs[0].url); // => RugVariant, real trade price + sibling colorways/sizes