Version: eXtendPS-SE all versions
Audience: Administrator, Developer
Problem
When processing a PromoStandards Purchase Order submission in eXtendPS-SE, processing fails with the error message below (or similar):
All "locationLinkId" in Configuration.LocationArray must be present in every Part of PartArray locationLinkId under data.LineItemArray[0]
As a consequence, this prevents the related charge lines from being added on the generated sales order record.
Cause
This happens when a line item has multiple locations in <Configuration><LocationArray>, but the part-level <LocationLinkIdArray> does not include all required <locationLinkId> values.
In other words:
<Configuration><LocationArray><Location>...<locationLinkId>defines the set of valid location links for the line item.- Each
<Part>must reference the same set of<locationLinkId>values under<LocationLinkIdArray>. - If the payload includes two locations (example:
<locationLinkId>1</locationLinkId>and<locationLinkId>2</locationLinkId>), but the part only sends one<locationLinkId>, validation fails and charge line processing may not occur.
Solution
Update the request payload so that each
<Part> includes every <locationLinkId> present in <Configuration><LocationArray> within the part’s <LocationLinkIdArray>.Fix checklist
- Identify all values under:
<LineItem><Configuration><LocationArray><Location>...<locationLinkId>
- For each:
<LineItem><PartArray><Part>
- Make sure
<Part><LocationLinkIdArray>includes all of the<locationLinkId>values found under<Configuration><LocationArray>.
Incorrect sample XML (example of the issue)
<LineItem> <lineNumber>1</lineNumber> <description>Wooden Nickel</description> <PartArray> <Part> <partGroup>1</partGroup> <partId>SWN-NC-STD</partId> <customerPartId>SWN</customerPartId> <customerSupplied>false</customerSupplied> <Quantity> <value>1</value> <uom>EA</uom> </Quantity> <LocationLinkIdArray> <locationLinkId>1</locationLinkId> </LocationLinkIdArray> <unitPrice>0.093</unitPrice> </Part> </PartArray> <Configuration> <preProductionProof>false</preProductionProof> <LocationArray> <Location> <locationLinkId>1</locationLinkId> <locationId>4</locationId> <locationName>Panel</locationName> </Location> <Location> <locationLinkId>2</locationLinkId> <locationId>1</locationId> <locationName>Back</locationName> </Location> </LocationArray> </Configuration> </LineItem>
Corrected sample XML
<Part> <partGroup>1</partGroup> <partId>SWN-NC-STD</partId> <customerPartId>SWN</customerPartId> <customerSupplied>false</customerSupplied> <Quantity> <value>1</value> <uom>EA</uom> </Quantity> <LocationLinkIdArray> <locationLinkId>1</locationLinkId> <locationLinkId>2</locationLinkId> </LocationLinkIdArray> <unitPrice>0.093</unitPrice> </Part>
After the fix
- Setup/charge lines associated with locations should be created correctly.