## Overview
/erp/goods/spec/open/query/goodswithspeclist reads Hupun's goods master together with its spec (SKU) lines in one call: item code, name, barcode, spec code, reference purchase price and standard sale price — the standard extraction point for product master-data sync.
### Request essentials
1. Build _app/_t/_sign per the call convention; paginate with page/limit.
2. The data array lists goods each with a spec list: item_code, item_name, barcode, spec_code, sale_price and prime_price.
3. The reverse push API /erp/goods/add/item creates or updates goods; query and push together close the loop of ERP-master ↔ Hupun alignment.
4. Code mapping decides success: Hupun spec_code must map one-to-one to ERP material codes and marketplace merchant codes — unmapped items surface as "unknown product" exceptions at order-line level.
### Typical pipeline
ERP item master → Qeasy cleansing (unit, barcode, category normalization) → Hupun creation; a daily pull via this API feeds a mapping-completeness report, and unmapped goods enter a work queue automatically.
### Mind the spec hierarchy
Even spec-less goods carry a default entry under the spec list, so never skip spec-level mapping just because the list length is one. Barcodes live at spec level for multi-spec goods — validate barcode alignment with the ERP spec by spec rather than at the goods header, because unmapped specs surface later as unknown-product exceptions on order lines.