Grainger
Grainger's industrial MRO catalog, product detail, and branch/stock availability — search (keyword/category catalog search returning name, item number,…
Grainger's industrial MRO catalog, product detail, and branch/stock availability — search (keyword/category catalog search returning name, item number, brand, price and thumbnail), findBranch (nationwide branch directory), getProduct (price, pack size, spec table, availability by item number or URL) and checkStock (shipping-to-zip and pickup-at-nearest-branch fulfillment estimates) are all live.
Domain: grainger.com
Also known as: Grainger, W.W. Grainger, W.W. Grainger, Inc.
Call it directly
bowmark.providers.grainger.search(args: object): Promise<graingerSearchRow[]>
bowmark.providers.grainger.findBranch(args: object): Promise<graingerBranchRow[]>
bowmark.providers.grainger.getProduct(args: object): Promise<graingerProductRow>
bowmark.providers.grainger.checkStock(args: object): Promise<graingerStockRow>Functions
| Function | What it does |
|---|---|
search | Searches Grainger's industrial MRO catalog by keyword, returning matching products — item number, name, brand, list price and thumbnail. |
findBranch | Finds Grainger's own U.S. branches near a ZIP, city or state — address, phone, hours and curbside-pickup availability, off the site's own nationwide directory. |
getProduct | Reads one Grainger product page in full — price and pack size/unit of measure, the full spec table, the manufacturer's own part number, and a shipping/pickup availability summary. |
checkStock | Checks real fulfillment availability for one item (itemNumber or url, same as getProduct) at a caller-supplied zip (required, 5-digit US) — both shipping-to-that-zip and… |
Types
interface graingerRow {
id: string;
}
interface graingerSearchRow {
itemNumber: string;
name: string;
url: string;
brand: string | null;
price: { amount: number; currency: string; perUnit: string } | null;
thumbnail: string | null;
}
interface graingerBranchRow {
branchNumber: string;
name: string;
url: string;
address: { street: string; city: string; state: string; zip: string; country: string };
phone: string | null;
curbsidePickupAvailable: boolean;
hours: { day: string; hours: string }[];
}
interface graingerProductRow {
itemNumber: string;
manufacturerModel: string | null;
name: string;
description: string | null;
brand: string | null;
url: string;
images: string[];
price: { amount: number; currency: string; perUnit: string } | null;
specs: { name: string; value: string }[];
availabilitySummary: string | null;
}
interface graingerStockRow {
itemNumber: string;
zip: string;
quantity: number;
shipping: { message: string | null; fulfillmentCode: string | null; availKey: string | null } | null;
pickup: {
message: string | null;
fulfillmentCode: string | null;
availKey: string | null;
branch: {
branchCode: string;
city: string | null;
address: { street: string | null; city: string | null; state: string | null; zip: string | null; country: string | null } | null;
url: string | null;
} | null;
} | null;
}