How Bursons Parts Ordering Works
Source: bursons_controller.rb
- The access code for the Bursons API is HARDCODED in the codebase rather than being per-company — a code comment explicitly states "NOT READY FOR LIVE" which suggests this was intended to be temporary
- There is a build year parsing inconsistency between the invoice flow and the event flow, which may cause mismatches in vehicle identification
- Order IDs are validated against outstanding orders; if the order ID is not found in the outstanding list, the system returns 0
- The vehicle's bursons_vehicle_id is saved from the order header, linking the Workshop vehicle record to its Bursons equivalent
- Products are auto-created by item_code lookup if a matching product does not already exist in the Workshop database
- Price update behavior is configurable per company with four options: ALL (update all prices), DIFFERENT (update only changed prices), HIGHER (update only if new price is higher), or default behavior
- Parts with the part number "LAB" are treated as labor product types rather than physical parts
- Vehicle matching uses a 4-step fallback cascade: plate number → make → model → customer, stopping at the first successful match
Support scenarios
- "Parts order returned the wrong vehicle" → Vehicle matching uses a cascade: plate → make → model → customer. If the plate lookup fails, it falls back to less specific matching which can return incorrect vehicles. Verify the vehicle's plate number is correct in Workshop.
- "Prices didn't update after importing the order" → Check the company's price update setting (ALL/DIFFERENT/HIGHER/default). If set to HIGHER, prices that decreased will not be updated. Change the setting if the workshop wants all price changes applied.
- "A labor line item came through as a part" → Items with the part number "LAB" are automatically typed as labor. If the Bursons order used a different identifier for labor, it will be treated as a regular part.
- "Build year doesn't match between the event and the invoice" → There is a known inconsistency in build year parsing between the two flows. The vehicle may need its build year corrected manually after import.