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:

MethodReturnsDescription
get()T[]Return all matching items as an array.
first()T | undefinedReturn the first matching item.
find(id)T | undefinedFind an item by its exact ID string.
findByName(name)T | undefinedFind an item by name (case-insensitive exact match).
count()numberReturn the number of matching items.

Common Filter Methods

Many shops share similar filter methods. The exact set varies per shop, but common ones include:

MethodDescription
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

MethodDescription
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

ShopImportDescription
BlacksmithblacksmithOres, coal, and tool upgrade materials from Clint.
BooksellerbooksellerShop / booksellerTradesBooks for purchase and trade-in offers from the traveling Bookseller.
CarpentercarpenterBuilding materials, recipes, and furniture from Robin.
CasinocasinoFurniture, hats, and consumables purchased with Qi Coins.
Desert TraderdesertTraderBarter trades in the Calico Desert.
DwarfdwarfShopBombs, consumables, and recipes from the Dwarf in the Mines.
Adventurer's GuildguildWeapons, boots, rings, and slingshots from Marlon.
Island TraderislandTraderBarter trades on Ginger Island.
Joja MartjojaSeeds and supplies from JojaMart.
KrobuskrobusUnique items from the shadow merchant in the sewers.
Marnie's RanchmarnieAnimal supplies, tools, and furniture from Marnie.
Medical SuppliesmedicalSuppliesHealing items from Harvey's Clinic.
OasisoasisSeeds, food, and clothing from Sandy in the Calico Desert.
Pierre's General StorepierreSeeds, saplings, ingredients, fertilizers, and recipes.
Qi's Walnut RoomqiStockEnd-game items purchased with Qi Gems and Golden Walnuts.
Stardrop SaloonsaloonFood, drinks, and cooking recipes from Gus.
Volcano DungeonvolcanoShopGear and consumables from the Volcano Dungeon Dwarf.
Willy's Fish ShopwillyFishing rods, bait, tackle, and equipment from Willy.
Wizard's TowerwizardMagical buildings and constructions from the Wizard.
Previous
Crafting