PC Builder — MW
Compatibility Logic Guide
How the storefront widget matches parts, checks power, and builds a valid PC — with real examples.
Last Updated: June 30, 2026
This guide walks through the compatibility engine behind Miracle PC Builder — the part of the app that decides which components a shopper is allowed to see at each step. Everything here is driven by tags you set on your own products, so once you understand the three building blocks below, you can predict exactly what the widget will show for any combination in your catalog.
🎬Watch: automatic compatibility filtering
Open on YouTube →What “Compatibility” Means in This App
Compatibility is simply a rule that says: “this part can only be shown if it agrees with a part the shopper already picked.” The app checks this using three building blocks:
| Building Block | Plain-English Meaning | Example |
|---|---|---|
| Widget | One complete PC Builder tool a merchant sets up on their store | “Gaming PC Builder” |
| Step | One stage of the build — one product category | “Choose your Motherboard” |
| Compatibility Tag | The specific attribute being compared between parts | “Socket Type”, “Memory Type”, “Output Wattage” |
| Tag Value | The actual value stamped on one product | CPU #A1 → Socket Type = “AM5” |
Key Idea
Worked Example — Matching by Socket Type
Imagine a shopper is building a Gaming PC. Step 1 is “Choose your CPU.” They pick a Ryzen CPU that uses socket “AM5.”
Step 1 — CPU chosen
| Product | Tag: Socket Type | Result |
|---|---|---|
| Ryzen 7 9700X | AM5 | ✓ Selected |
Step 2 — Motherboard step is now filtered
The app looks at every motherboard in the collection and compares its “Socket Type” tag to “AM5.” Only matches are shown to the shopper:
| Motherboard | Tag: Socket Type | Shown to Shopper? |
|---|---|---|
| MSI B650 Tomahawk | AM5 | ✓ Shown — matches |
| Asus ROG X670E | AM5 | ✓ Shown — matches |
| Gigabyte Z790 Aorus | LGA1700 | ✕ Hidden — different socket |
| ASRock B550 Pro | AM4 | ✕ Hidden — different socket |
Why this matters
Worked Example — Matching by Memory Type
The same logic repeats for every tag a merchant defines. Continuing the same build, once the Motherboard (MSI B650 Tomahawk, supports DDR5) is chosen, the RAM step is filtered by “Memory Type”:
| RAM Kit | Tag: Memory Type | Shown to Shopper? |
|---|---|---|
| Corsair Vengeance 32GB | DDR5 | ✓ Shown — matches |
| G.Skill Trident Z5 32GB | DDR5 | ✓ Shown — matches |
| Kingston Fury 16GB | DDR4 | ✕ Hidden — wrong generation |
A merchant can add as many tags per step as needed — Socket Type, Memory Type, Form Factor, Interface (PCIe version), and more — and every one of them narrows the next step the same way.
Worked Example — Power (Wattage) Matching
Power matching works differently from socket/memory matching: instead of an exact match, the app adds up power needs and looks for “enough or more.”
Step A — the app totals power as parts are picked
| Part Chosen | Tag Used | Power Draw | Running Total |
|---|---|---|---|
| Ryzen 7 9700X (CPU) | Power Draw | 105 W | 105 W |
| RTX 4070 (GPU) | Power Draw | 200 W | 305 W |
| 2× Case Fans | Power Draw | 10 W | 315 W |
| AIO Liquid Cooler | Power Draw | 25 W | 340 W |
Step B — with a safety margin, the app needs a PSU rated ≥ 400 W
The app applies headroom above the raw total so the PSU isn't running at its limit — in this example, roughly 340 W × ~1.2 ≈ 400 W minimum.
| Power Supply | Tag: Output Wattage | Shown to Shopper? |
|---|---|---|
| Corsair RM750e | 750 W | ✓ Shown — enough headroom |
| EVGA 500 BQ | 500 W | ✓ Shown — enough headroom |
| Cooler Master 350W | 350 W | ✕ Hidden — not enough power |
Important distinction
The Full Build Flow, Visually
Putting it all together, here is the same example build moving through every step:
| Step | Shopper Picks | Tag Checked Against Later Steps |
|---|---|---|
| 1. CPU | Ryzen 7 9700X | Socket Type = AM5 | Power Draw = 105W |
| 2. Motherboard | MSI B650 Tomahawk | Socket Type = AM5 ✓ | Memory Type = DDR5 |
| 3. RAM | Corsair Vengeance 32GB | Memory Type = DDR5 ✓ | Power Draw = 12W |
| 4. GPU | RTX 4070 | Power Draw = 200W |
| 5. Case / Fans / Cooler | Case + 2 Fans + AIO Cooler | Power Draw = 35W combined |
| 6. PSU | Corsair RM750e | Output Wattage = 750W ≥ required 400W ✓ |
End result
What Happens After a Valid Build Is Chosen
All chosen parts are added to the cart as one bundle line, so the cart stays clean and simple.
At checkout, the app automatically splits that bundle back into one line item per part, so the receipt clearly lists every component and its price.
If the merchant configured a discount on the widget, it is spread proportionally across every split-out line item.
Where a Merchant Controls All of This
| What to Configure | Where |
|---|---|
| Add / reorder build steps, choose collections | Widget Editor |
| Define compatibility tags (Socket Type, Memory Type, etc.) and tag products | Step Editor |
| Set wattage values on products (just a tag, same as any other) | Step Editor |
| Auto-suggest tag values with AI instead of typing every one by hand | “Fill with AI” (paid feature) |
| Set discount % / amount and widget appearance | Widget Settings |
In one sentence