How Supercheap Auto Parts Ordering Works
Source: supercheap_controller.rb
- The access code is configured globally (not per-company), but per-company identification uses a combination of site_code and terminal_id
- New products created from Supercheap orders always use the retail price from the order, not any existing stored price
- Invoice line items always use the order's retail price regardless of what price is stored on the product record — the order price takes precedence every time
- XML response parsing uses either the Barcode or any PartGroup element as a delimiter, which differs from the Bursons parsing approach
Support scenarios
- "Product price in Workshop doesn't match what Supercheap charged" → Invoice items always use the retail price from the Supercheap order, not the stored product price. The price shown on the invoice is what Supercheap quoted at order time.
- "New product was created with a different price than expected" → New products always take the retail price from the Supercheap order. If the workshop has a different agreed price, they need to update the product record manually after creation.
- "Parts order is going to the wrong store" → Per-company routing uses site_code and terminal_id. Verify these are correctly configured in the company's integration settings.