Shops
Shops
Query stock data for every shop and vendor in Stardew Valley using a consistent, chainable query builder API.
Shared Query Pattern
Every shop module exports a factory function that returns a typed query builder. The query builder follows an immutable, chainable pattern -- each filter or sort method returns a new query instance, and a terminal method extracts the results.
import { pierre } from 'stardew-valley-data'
const items = pierre() // create a query for all Pierre items
.bySeason('spring') // filter (returns new query)
.sortByPrice('asc') // sort (returns new query)
.get() // terminal -- returns PierreItem[]
Every factory function also accepts an optional pre-filtered array so you can wrap existing data in a new query:
const myItems = pierre().seeds().get()
const sorted = pierre(myItems).sortByName().get()
Terminal Methods
All query builders extend QueryBase and inherit these five terminal methods:
| Method | Returns | Description |
|---|---|---|
get() | T[] | Return all matching items as an array. |
first() | T | undefined | Return the first matching item. |
find(id) | T | undefined | Find an item by its exact ID string. |
findByName(name) | T | undefined | Find an item by name (case-insensitive exact match). |
count() | number | Return the number of matching items. |
Common Filter Methods
Many shops share similar filter methods. The exact set varies per shop, but common ones include:
| Method | Description |
|---|---|
bySeason(season) | Filter to items available in the given season (shops with seasonal stock). |
byCategory(category) | Filter by the shop's category type. |
permanent() | Filter to year-round permanent stock only. |
alwaysAvailable() | Filter to items with no special purchase condition. |
recipes() | Filter to recipe items only (where applicable). |
byDay(day) | Filter to items available on a specific day of the week (rotating stock shops). |
Common Sort Methods
| Method | Description |
|---|---|
sortByPrice(order?) | Sort by gold price ascending ('asc', default) or descending ('desc'). |
sortByName(order?) | Sort alphabetically by item name ascending or descending. |
Some shops have additional sort methods specific to their data (e.g., sortByMineLevel, sortByFishingLevel, sortByTradeAmount).
All Shops
| Shop | Import | Description |
|---|---|---|
| Blacksmith | blacksmith | Ores, coal, and tool upgrade materials from Clint. |
| Bookseller | booksellerShop / booksellerTrades | Books for purchase and trade-in offers from the traveling Bookseller. |
| Carpenter | carpenter | Building materials, recipes, and furniture from Robin. |
| Casino | casino | Furniture, hats, and consumables purchased with Qi Coins. |
| Desert Trader | desertTrader | Barter trades in the Calico Desert. |
| Dwarf | dwarfShop | Bombs, consumables, and recipes from the Dwarf in the Mines. |
| Adventurer's Guild | guild | Weapons, boots, rings, and slingshots from Marlon. |
| Island Trader | islandTrader | Barter trades on Ginger Island. |
| Joja Mart | joja | Seeds and supplies from JojaMart. |
| Krobus | krobus | Unique items from the shadow merchant in the sewers. |
| Marnie's Ranch | marnie | Animal supplies, tools, and furniture from Marnie. |
| Medical Supplies | medicalSupplies | Healing items from Harvey's Clinic. |
| Oasis | oasis | Seeds, food, and clothing from Sandy in the Calico Desert. |
| Pierre's General Store | pierre | Seeds, saplings, ingredients, fertilizers, and recipes. |
| Qi's Walnut Room | qiStock | End-game items purchased with Qi Gems and Golden Walnuts. |
| Stardrop Saloon | saloon | Food, drinks, and cooking recipes from Gus. |
| Volcano Dungeon | volcanoShop | Gear and consumables from the Volcano Dungeon Dwarf. |
| Willy's Fish Shop | willy | Fishing rods, bait, tackle, and equipment from Willy. |
| Wizard's Tower | wizard | Magical buildings and constructions from the Wizard. |