Customers are the only source of revenue in Simple Shop Sim. Each day a fresh queue of shoppers arrives with their own budgets and specific items they want to buy. Your job is to open the shop, serve every customer in order, and close up before paying rent. How you handle each interaction — especially whether you bargain — directly affects your end-of-day cash.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mukybaby/Simple-Shop-Sim/llms.txt
Use this file to discover all available pages before exploring further.
Opening for the day
When the shop is closed, choose option 2 (“Open for the day”) to begin trading. This callsopen_for_day() internally, which:
- Sets
shop.open = True. - Calls
make_customers(day, shop, customer_names)to generate a full customer queue. - Prints each customer’s name so you know who is coming.
day × 3:
| Day | Customers generated |
|---|---|
| 1 | 3 |
| 2 | 6 |
| 3 | 9 |
| 4 | 12 |
The customer queue
Customers are served in first-in, first-out (FIFO) order. Each time you choose option 2 (“Serve a customer”) while the shop is open, the first customer in the queue is popped and presented to you:Customer attributes
Every customer is generated with four randomised properties:- Name — drawn at random from the
customer_names.jsonpool. The game avoids duplicates within a single day’s queue. - Budget — a random integer between 286 (inclusive). Customers will not buy an item that costs more than their current budget.
- Wants — a randomly chosen
Itemobject fromshop.inventory. Each customer targets exactly one item type. - Bargain threshold — a random float between 0 and 100. This hidden value determines how likely the customer is to accept a bargain. See Bargaining for details.
When a sale fails
Thecustomer.buy() method checks four conditions before completing a purchase. All four must be true for the sale to go through:
- The item being sold matches what the customer wants (
item == customer.wants). - The item has stock remaining (
item.stock > 0). - The customer’s budget covers the current price (
customer.budget >= item.price). - The item is present in the shop’s inventory (
item in shop.inventory).