CourseAI Engineering: The Complete Course · Course guide · part 5 of 105
Part 5 · Course guide

Shared BrightCart Data

7 min read·13 Oct 2026

Every module uses the same small set of BrightCart data, so that you are never learning a new example. Lessons paste in the block they need. This page is the single source for all of them.

BrightCart is fictional. All names, orders and messages below are made up.

For authors: copy these blocks into lessons exactly as written. Do not invent different policies, order numbers or customers. If a lesson needs more data, add to it in the lesson and keep what is here unchanged.

Policies

python
POLICIES = {
    "returns": "Returns: 30 days from delivery. Item must be unused and in its original box.",
    "refunds": "Refunds: paid to the original payment method within 5 to 7 working days of the return arriving.",
    "shipping": "Shipping: standard delivery takes 3 to 5 working days. Free over $50.",
    "warranty": "Warranty: 1 year on all electronics. Covers faults, not accidental damage.",
    "order changes": "Order changes: an order can be changed or cancelled until it is marked shipped.",
    "support hours": "Support hours: human agents are available 8am to 8pm, Monday to Saturday.",
}

POLICY_TEXT = "\n".join(POLICIES.values())

Customers and orders

python
CUSTOMERS = {
    "cust-88": {"name": "Aisha Rahman", "email": "aisha@example.com"},
    "cust-12": {"name": "Tom Becker", "email": "tom@example.com"},
    "cust-31": {"name": "Mei Tanaka", "email": "mei@example.com"},
}

ORDERS = {
    "5521": {"customer": "cust-88", "item": "RoboSweep X2 robot vacuum", "total": 129.00,
             "status": "delivered", "delivered_on": "2026-04-02"},
    "5730": {"customer": "cust-88", "item": "QuietBoil 1.7L kettle", "total": 39.00,
             "status": "shipped", "delivered_on": None},
    "7003": {"customer": "cust-12", "item": "CinemaView 55-inch TV", "total": 899.00,
             "status": "shipped", "delivered_on": None},
    "7120": {"customer": "cust-12", "item": "GlowLine smart bulb, 4-pack", "total": 45.00,
             "status": "delivered", "delivered_on": "2026-02-10"},
    "8204": {"customer": "cust-31", "item": "SoundPod wireless headphones", "total": 79.00,
             "status": "processing", "delivered_on": None},
}

Facts about the customers that are not in the data block, for lessons that mention them in ticket text or examples (keep them the same everywhere):

CustomerLives inDelivery address
Aisha Rahman (cust-88)Leeds12 Elm Street, Leeds (Module 9 Lesson 3 has her move to 4 Mill Lane, York)

The in-window order (from Module 9 on)

Every order above was delivered more than 30 days before the course date (9 October 2026), so none of them can be returned. Lessons that need a return to succeed add one more order, always this one, with these exact fields. Lessons say "added in this lesson" when they paste it.

python
IN_WINDOW_ORDER = {
    "6150": {"customer": "cust-88", "item": "GlowLine smart bulb, 4-pack", "total": 45.00,
             "status": "delivered", "delivered_on": "2026-10-04"},
}

Help-centre articles

Twelve short articles. Modules 2, 5 and 8 clean, search and retrieve from these.

python
HELP_ARTICLES = [
    {"id": "HC-01", "title": "How to return an item", "category": "returns",
     "text": "You can return most items within 30 days of delivery. The item must be unused and in its original box. Start a return from Your Orders, print the prepaid label, and drop the parcel at any partner post office. Keep the drop-off receipt until your refund arrives."},
    {"id": "HC-02", "title": "When will I get my refund?", "category": "refunds",
     "text": "Refunds are paid to your original payment method within 5 to 7 working days of your return arriving at our warehouse. Your bank may take a further 2 days to show it. We email you when the refund is sent. Gift card purchases are refunded to the gift card."},
    {"id": "HC-03", "title": "Delivery times and costs", "category": "shipping",
     "text": "Standard delivery takes 3 to 5 working days and is free on orders over $50. Orders under $50 cost $4.99 to deliver. Express delivery takes 1 to 2 working days and costs $9.99. We do not deliver on Sundays or public holidays."},
    {"id": "HC-04", "title": "Tracking your order", "category": "shipping",
     "text": "Once your order ships we email a tracking link. Tracking can take up to 24 hours to update after dispatch. If tracking has not changed for 4 working days, contact support and we will open a trace with the courier."},
    {"id": "HC-05", "title": "What the warranty covers", "category": "warranty",
     "text": "All electronics have a 1-year warranty from the delivery date. It covers manufacturing faults such as a battery that will not charge or a screen that will not turn on. It does not cover accidental damage, water damage or normal wear."},
    {"id": "HC-06", "title": "Making a warranty claim", "category": "warranty",
     "text": "To claim under warranty, contact support with your order number and a short description or photo of the fault. We will repair the item, replace it, or refund it if neither is possible. Most claims are settled within 10 working days."},
    {"id": "HC-07", "title": "Changing or cancelling an order", "category": "order changes",
     "text": "You can change the address or cancel an order from Your Orders until its status is Shipped. After that, the order cannot be changed. You can refuse the delivery or return it once it arrives."},
    {"id": "HC-08", "title": "Damaged on arrival", "category": "returns",
     "text": "If an item arrives damaged, tell us within 7 days of delivery. Send a photo of the damage and of the box. We will send a replacement or refund you in full, and you do not pay for the return."},
    {"id": "HC-09", "title": "Payment methods", "category": "payments",
     "text": "We accept major credit and debit cards, PayPal and BrightCart gift cards. A gift card can be combined with one other payment method. We do not accept cheques or cash on delivery."},
    {"id": "HC-10", "title": "I was charged twice", "category": "payments",
     "text": "A second charge is usually a temporary authorisation hold that your bank removes within 3 working days. If both charges are still showing after 3 working days, contact support with your order number and we will refund the duplicate."},
    {"id": "HC-11", "title": "Contacting support", "category": "support hours",
     "text": "Our assistant is available at any time. Human agents are available from 8am to 8pm, Monday to Saturday. Outside those hours, leave a message and an agent will reply the next working day."},
    {"id": "HC-12", "title": "Setting up your robot vacuum", "category": "product help",
     "text": "Place the charging dock against a wall with half a metre of clear space on each side. Charge the vacuum fully before first use, which takes about 4 hours. If the dock light does not come on, check the power cable is pushed in firmly at both ends."},
]

Labelled support tickets

Forty customer messages with the category a human agent gave them. Modules 3, 5, 7 and 12 use these to train, test and evaluate.

python
TICKETS = [
    ("I was charged twice for one order.", "refund"),
    ("I sent the lamp back 10 days ago and still have no money.", "refund"),
    ("Please refund order 7120, the bulbs are the wrong fitting.", "refund"),
    ("When will my refund show up on my card?", "refund"),
    ("I returned my speaker last week. When do I get my money?", "refund"),
    ("You took payment but the order was cancelled. I want it back.", "refund"),
    ("I only got a partial refund, where is the rest?", "refund"),
    ("Refund still not received after two weeks!!", "refund"),
    ("can i get my money back if the box is opened", "refund"),
    ("My refund went to an old card I no longer have.", "refund"),
    ("Where is my parcel? It's been a week.", "shipping"),
    ("Can you deliver to a PO box?", "shipping"),
    ("The tracking page hasn't updated in four days.", "shipping"),
    ("How long does standard delivery take?", "shipping"),
    ("My order says delivered but nothing arrived.", "shipping"),
    ("Do you ship to Canada?", "shipping"),
    ("The courier left my TV with a neighbour I don't know.", "shipping"),
    ("Is express delivery available for the headphones?", "shipping"),
    ("wheres my stuff, ordered monday", "shipping"),
    ("Can I change the delivery address? It hasn't shipped yet.", "shipping"),
    ("The vacuum stopped charging after 3 months.", "warranty"),
    ("My kettle stopped heating after two months.", "warranty"),
    ("My smart bulb flickers and it's only a month old.", "warranty"),
    ("The left headphone has no sound. Bought in January.", "warranty"),
    ("TV screen has a line down the middle after 6 months.", "warranty"),
    ("Is a cracked screen covered by the warranty?", "warranty"),
    ("The dock light won't turn on any more, it's 8 months old.", "warranty"),
    ("How do I claim on the warranty for a faulty battery?", "warranty"),
    ("robot vac makes grinding noise, had it 5 weeks", "warranty"),
    ("Kettle lid hinge snapped on its own after 4 months.", "warranty"),
    ("Do you sell gift cards?", "other"),
    ("What time does your phone line open?", "other"),
    ("Can I pay with PayPal?", "other"),
    ("How do I set up the robot vacuum dock?", "other"),
    ("I forgot my account password.", "other"),
    ("Do you have a shop I can visit?", "other"),
    ("Can I use two gift cards on one order?", "other"),
    ("Is the SoundPod compatible with my phone?", "other"),
    ("Please delete my account and data.", "other"),
    ("do u price match", "other"),
]

The people at BrightCart

NameRoleBrings you
PriyaHead of SupportWhat customers are struggling with
DevBackend engineerThe systems your assistant must connect to
MartaFinance leadQuestions about cost
SamSecurity leadQuestions about misuse

Recurring customer in examples: Aisha Rahman (cust-88), who owns orders 5521 and 5730.