What The Tech Banner 2
April 10, 2023

The Scoop on the “Loop” in PIES™

by Tom Schiavo, Data Quality Manager, Technology

The Product Information Exchange Standard (PIES™) is the aftermarket’s industry data standard for the management and communication of product information (non-application fitment) between trading partners. 

Using PIES™:

  • removes duplicated communication and distribution efforts;
  • saves time and money;
  • lowers supply chain costs;
  • increases product introduction and speed to market; and
  • contributes to the increase in sales, operational efficiencies, and reduced returns.

What is “looping” in the PIES™ data standard?

PIES™ standardizes not only the field definitions and requirements, but also standardizes the delivery mechanism used to transfer the information provided in PIES™ XML files. It is designed in a flexible format, which allows you to “loop” (repeat) elements within a segment element group, as many times needed to meet data delivery requirements. Looping occurs in many areas of the PIES™ data standard, including:

    • Price Sheet (PRCS)
    • Market Copy (MKTC) and sub-segment
      • Digital Assets (MKDA)
    • Item (ITEM) and sub-segments
      • Description (DESC)
      • Price (PRCE)
      • Extended Product Information (EXPI)
      • Attribute (ATRB)
      • Package (PACK) and sub-segment
        • Hazardous Material Package (HAZM)
      • Kits (KITS)
      • Interchange (INTE)
      • Digital Assets (ASST)

For more specifics and how looping is applied in each segment of the PIES™ data standard, refer to the PIES™ XSD and Technical Documentation.

What is the benefit of “looping” in the PIES™ data standard?

The benefits of looping in PIES™ is twofold:

  1. Flexibility: Provides a flexible format to meet data delivery requirements; and
  2. Organization: Streamlines the sending of product content by providing a structure which allows content to be organized in a “building block” manner.

This promotes machine readability and allows data receivers to unpackage the content in an efficient manner, reducing or eliminating the need for human interaction before displaying the content on an interface. This saves time and money for all parties involved in the data supply chain.

Examples

In order to create a PIES™ file, there is a minimum amount of information and segments that must be used. Users must use at minimum the Header Segment (HEAD), Item Segment (ITEM), and Trailer Segment (STOP), and communicate at least one part number in the Item Segment, as well as additional attributes within the Header and Item Segment.

The most basic example of looping in PIES™ is in the ITEM segment, which is the core looping segment in the PIES™ data standard. The example below show a PIES™ XML file with two part numbers. The element <Item> loops (repeats) for each part number.

<Header>

     …

</Header>

<Items>

    <Item MaintenanceType="A">

      <PartNumber>123456</PartNumber>

      <BrandAAIAID>BMNN</BrandAAIAID>

      <PartTerminologyID>23100</PartTerminologyID>

    </Item>

    <Item MaintenanceType="A">

      <PartNumber>789101</PartNumber>

      <BrandAAIAID>BMNN</BrandAAIAID>

      <PartTerminologyID>23101</PartTerminologyID>

    </Item>

  </Items>

    <Trailer>

    …

  </Trailer>

Another well-known example of looping in PIES™ is in the Interchange Segment, where users can provide multiple interchanges for a single product (part number). There are times when your product may interchange to multiple Original Equipment Manufacturer (OEM) and/or competitor products based on your product design. When you communicate this in PIES™, you are looping the PIES™ element <PartInterchange> multiple times for each interchange you provide for the product. See the example below:

Your Product (Part Number)

Interchanges to

Interchange Brand

Interchange Part Number

123456


Ford (CNWR)

8765432

123456


Mercury (CNWQ)

0909876

123456


VGX (FLMK)

TG38495

123456


Performance Plus (FLMH)

TG65873

 

This translates to PIES™ XML like this:

  <Items>

    <Item MaintenanceType="A">

    …

    <PartNumber>123456</PartNumber>

    …

    <PartInterchangeInfo>

        <PartInterchange MaintenanceType="A" BrandAAIAID="CNWR" LanguageCode="EN">

          <PartNumber InterchangeQuantity="1" UOM="EA">8765432</PartNumber>

        </PartInterchange>

        <PartInterchange MaintenanceType="A" BrandAAIAID="CNWQ" LanguageCode="EN">

          <PartNumber InterchangeQuantity="1" UOM="EA">0909876</PartNumber>

        </PartInterchange>

        <PartInterchange MaintenanceType="A" BrandAAIAID="FLMK" LanguageCode="EN">

          <PartNumber InterchangeQuantity="1" UOM="EA">TG38495</PartNumber>

        </PartInterchange>

        <PartInterchange MaintenanceType="A" BrandAAIAID="FLMH" LanguageCode="EN">

          <PartNumber InterchangeQuantity="1" UOM="EA">TG65873</PartNumber>

        </PartInterchange>

    </PartInterchangeInfo>

    …

    </Item>

  </Items>

But, did you know?

You can also “loop” (repeat) elements in the Product Attribute Segment (ATRB) of PIES™ to provide multiple values for a single product attribute that is associated to a product in your PIES™ XML file? Here are a couple of use cases where this would and should be done.

Example 1:

Expressing a range value for a product attribute for a single product.

Product (PartTerminologyID) = Multi-Purpose Grease (23100)

Part Number = 123456

PAdb (Product) Attribute (ID) =  Working Temperature Range (6600)

 

<Items>

    <Item MaintenanceType="A">

      …

      <PartNumber>123456</PartNumber>

      …

      <PartTerminologyID>23100</PartTerminologyID>

      …

      <ProductAttributes>

        <ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="6600"

          AttributeUOM="FA" RecordNumber="1" MultiValueQuantity="2"

          MultiValueSequence="1">0</ProductAttribute>

       

      <ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="6600"

          AttributeUOM="FA" RecordNumber="1" MultiValueQuantity="2"

          MultiValueSequence="2">300</ProductAttribute>

      </ProductAttributes>

    …

    </Item>

</Items>

As you can see, the XML element <ProductAttribute> loops (repeats) using the same XML attribute “AttributeID”, but the attribute values provided for each record are different. This is accomplished by looping the element <ProductAttribute> and using the XML attributes of MultiValueQuantity and MultiValueSequence within the element.

MultiValueQuantity expresses how many times the XML element <ProductAttribute> / the attribute “AttributeID” repeats itself within the segment. The MultiValueSequence expresses what order (first to last) the attribute value for the XML element/the attribute “AttributeID” combination should be unpackaged and displayed.

The PIES™ XML above could be unpackaged and displayed by a data receiver in a catalog/website for the product like what is shown below, using a delimiter of their choosing.

Working Temperature Range: 0˚- 300˚F

Example 2:

Expressing a list of multiple values for product attribute for a single product

Product (PartTerminologyID) = Drill Bit Set (23101)

Part Number = 123456

PAdb (Product) Attribute (ID) =  Shank Diameter (9700)\

This product will need multiple attribute values sent for this attribute, as the product is a “set” of drill bits, which have varying shank sizes.

Below is how it would look in PIES™ XML:

<Items>

    <Item MaintenanceType="A">

      …

      <PartNumber>123456</PartNumber>

      …

      <PartTerminologyID>23101</PartTerminologyID>

      …

      <ProductAttributes>

        <ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="9700"

          RecordNumber="1" MultiValueQuantity="3"

          MultiValueSequence ="1">1/4&amp;quot;</ProductAttribute>

        <ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="9700"

          RecordNumber="1" MultiValueQuantity="3"

          MultiValueSequence ="2">3/16&amp;quot;</ProductAttribute>

        <ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="9700"

          RecordNumber="1" MultiValueQuantity="3"  

          MultiValueSequence="3">1/2&amp;quot;</ProductAttribute>

      </ProductAttributes>

      …

    </Item>

  </Items>

 

The PIES™ XML above could be unpackaged and displayed by a data receiver in a catalog/website for the product, like what is shown below using a delimiter of their choosing.

Shank Size: 1/4”, 3/16”, 1/2”

PIES™ Technical Documentation

If the above XML code makes sense, that’s great! However, if you are scratching your head asking, “what does all that mean?” it is recommended to review the PIES™ Technical Documentation as it outlines the details of each PIES™ segment, including examples.

Connect with Your Service Provider

You may not be an XML expert. However, it is important to know two things. First, if your software provider is implementing all the functionalities of the PIES™ data standard into their software. Second, whether or not your trading partners (data receivers) are implementing all the functionalities of the PIES™ data standard into their data receiving processes. To benefit from the functionalities of PIES™, both software providers and trading partners need to implement the functionalities. Connect with them today to find out!

If you have questions about looping in PIES™, email us at technology@autocare.org.

Want to learn more about PIES? Master your ACES and PIES skills with our self-paced, online data standards course!

YANG Effect

Welcome to the new YANG Effect! Your one-stop quarterly newsletter for all things Automotive Aftermarket contributed to and written by under-40 industry professionals.


More posts
market insights with mike

Market Insights with Mike is a series presented by the Auto Care Association's Director of Market Intelligence, Mike Chung, that is dedicated to analyzing market-influencing trends as they happen and their potential effects on your business and the auto care industry.


More posts
Subscribe to updates

Want to stay updated on Auto Care Association initiatives, tools and resources?