Haggling is also an interesting opportunity for roleplay, but it takes a long time, and can be frustrating for GMs -- and players -- who aren't any good at haggling. On the other hand, using a simple die roll for haggling opens up problems of system mastery and waives the opportunity for roleplay.
Haggling can be used to show a character's reputation in town: In Casablanca, a lace seller is trying to rip off foreign newcomer Ilsa, who is clearly jaded to this kind of chicanery. Then Rick arrives, at which point, he drops the price to less than half and keeps dropping it as he discovers that Rick cares for her. It highlights the relationship between Casablanca and newcomers (profiting at their expense); Casablanca and Rick (Rick's reputation is golden); Rick and Ilsa (fraught, at that moment); and Ilsa and foreign cities (she's no bumpkin).
So we need a system that's quick, not overly-detailed, and has story inputs and outputs. And because there are several great fantasy RPGs, it should be mostly system neutral. Finally, it should be something that doesn't require changing any existing rules. In this sort of situation, I like to very carefully frame a simple skill check, and then use it over and over.
A Shopping Rule
If your system uses modifiers or varying difficulties, set the difficulty based on the character's reputation in town and the experience and exclusivity of the shopkeeper.
- A reputation of "desperate" or "despised"; or an exclusive, appointments-only shopkeeper should make the negotiation very hard.
- A reputation of "distrusted" or "newcomer"; or a high-end, veteran, or bespoke shopkeeper should make it hard.
- A reputation of "familiar" and "neutral"; or a moderately experienced merchant would be moderate difficulty.
- A reputation of "well-liked" or "hero"; or a naive yokel would make it easy.
What skill do you roll?
- Old school D&D (2e and before, or most OSR stuff): Charisma
- Pathfinder, most d20 spin-offs, or 3e: Diplomacy
- D&D 4e or 5e: Persuasion
- 13th Age: An appropriate background
- Dungeon World: +Cha (and there are no difficulty modifiers in Dungeon World)
Note that you can use this haggling rule any time the PCs go shopping, even if they don't intend to haggle, because it generate some good story outcomes.
Shopping Stakes Frame
- You get an extra 10% discount/profit or they throw in something (of the DM's choice) for free.
- The interaction doesn't attract attention.
- The process doesn't take a lot of time.
Guidance for GMs
The options above follow the old corporate axiom: "Good, fast, or cheap: Pick one. If you're lucky, pick two." That also makes it really easy to remember at the table. Most people can remember the good/fast/cheap thing in a pinch.
The 10% discount is not going to break your game. You'll notice that no matter how the PC rolls, they can choose to get a 10% discount. Choosing the 10% discount is guaranteed to lead to some kind of plot outcome.
The PCs might decide it's more fun to get a random item thrown in for free instead of a simple 10% discount. This gives you an opportunity! You have three choices: First, you can just give them something generally useful, to reward them for picking this option. Second, you can give them something that you know will be very useful to them soon, even though they don't know that ("I got the alchemist to throw in this vial of antitoxin for free when I bought all these healing potions. I hope we don't wind up needing it..."). Third, you can give them something that advances the story or starts a new story - stolen goods, a mysterious trinket (from the table in the 5e PHB, from a web trinket generator, or of your own invention), or an item that communicates story information ("This other mysterious traveler was in here just two days ago and sold me this silver goblet, but you can have it for being such a good customer." "Wait, was she an elf, about this tall, with a scar on his cheek?" "Yeah, stranger, do you know her?").
If the interaction attracts attention, make sure to have this come up later. This means the interaction is notable, and makes a good story. It's not every day a mysterious elf with a longbow comes into the village and buys one of the shepherd's mastiffs. Maybe the PC had to impress the village wise woman to get her to sell them some healing potions. If the PCs have enemies (and they really should!), their enemies can track their movements by following a trail of stories told by the common folk. Also, if the PCs are trying to keep a low profile, attracting attention is obviously bad. The attention attracted could also come from the seller or buyer regretting the deal. Did the PCs buy the farmer's last sausages, and now they wish they hadn't sold them? Did the PCs cajole the blacksmith into selling them chain mail too cheaply? Did the PCs buy a diamond the jeweler had reserved for another client, and now they want it back? The PCs' reputation might suffer, or their allies could start to get antsy.
If the process takes a lot of time, the PC might miss important details in town that could cause them trouble later. It could also allow enemies to catch up, or coming dangers to get closer. The most popular fantasy RPGs -- 13th Age, Pathfinder, and D&D -- rely on time pressure, so wasting a few hours shopping could cost the PCs, if they're up against the clock.
Don't Roll for Every Purchase
Save yourself the aggravation and only call for at most one roll, per PC, per session. This system generates story outcomes with every roll, so it starts to get overwhelming if you have a lot of story outcomes generated one after the other. If the players don't split the party, you can take care of it all with one or two shopping rolls.
That is, if the PCs stop into Neverwinter and the wizard buys rubies, an arcane focus, fine robes, and ten days of rations, don't roll at each of the jeweler, the tailor, and the outfitter's shops - just roll once for the whole trip. If the wizard gets a discount, apply it to all the items. If they choose a freebie, you can give them one or more - your choice. If they attract attention, at least one of their interactions draws attention, or something else they do while shopping is what draws attention. If they take a long time, it's at least one of the purchases, and probably most of them, that cause the delay.
Don't use the Shopping Roll for Cons and Robbery
Some games (e.g. D&D, Pathfinder) have skills like Bluff, Deception, and Intimidation. Using these skills is not bargaining. It's cheating, conning, or robbing. Using Deception or Intimidation to get a good price is a different system, with different outcomes (such as being wanted for a crime!).
Why should I use this?
The shopping roll achieves a lot of great things for you:
- It takes care of the players' desire to haggle to get a discount, for the mechanical or procedural benefit of saving money.
- It takes care of the players' desire to haggle for the story benefit of interacting with shopkeepers. No matter how it goes, it forces the table to add some details to the interaction.
- It generates story outcomes that you can turn into story hooks, to drive the plot forward. It's the PCs' actions that generate the momentum, and players like that sense of agency: Things happen in the world because of them (for better or worse).
- It's great for pacing. It happens right when the pace tends to slow down (coming back to town, doing some shopping), so you can use the die roll outcome to accelerate out of the usually-slow-paced shopping session.
- It does all this quickly so you can get back to the action.