Understanding product segments (hierarchy)

Product segments allow each retailer to categorize their products per category.
It corresponds to the hierarchy tree present on the left side of the catalog where the retailer can attribute their products (one segment per product) and allows the retailer to filter their products.
It is also referred to as retailer categories below.

264

The format to be used to import the Product Segment is described below (retailerCategories.xml).
Once the Product Segment has been imported, it is then possible for retailers to define the category of the requests or products collected via the Request Engine.

retailerCategories.xml (Product Segment)

<?xml version="1.0" encoding="UTF-8"?>
<retailerCategories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <version>1.0</version>
    <feedDate>2017-01-01T00:00:00</feedDate>
    <contentOwner>
        <gln><!-- Retailer GLN --></gln>
    </contentOwner>
    <categoriesTree>
        <id>0</id>
        <name>Alimentaire</name>
        <children>
            <category>
                <id>1</id>
                <!-- Id must be unique for all categories, id is an alphanumeric-->
                <name>Epicerie sucrée</name>
                <children>
                    <category>
                        <id>2</id>
                        <name>PANIFICATION</name>
                    </category>
                    <category>
                        <id>3</id>
                        <name>COMMERCE EQUITABLE</name>
                    </category>
                    <category>
                        <id>4</id>
                        <name>FRUITS AU SIROP</name>
                    </category>
                </children>
            </category>
            <category>
                <id>5</id>
                <name>Epicerie salée</name>
                <children>
                    <category>
                        <id>6</id>
                        <name>CONSERVES DE VIANDES</name>
                    </category>
                    <category>
                        <id>7</id>
                        <name>OLIVES</name>
                    </category>
                    <category>
                        <id>8</id>
                        <name>CONSERVES DE POISSONS</name>
                    </category>
                    <category>
                        <id>9</id>
                        <name>CONSERVES DE LEGUMES</name>
                    </category>
                    <category>
                        <id>10</id>
                        <name>HUILES</name>
                    </category>
                    <category>
                        <id>11</id>
                        <name>FARINES</name>
                    </category>
                </children>
            </category>
            <category>
                <id>12</id>
                <name>Epicerie fine</name>
                <children>
                    <category>
                        <id>13</id>
                        <name>BIO + DIETETIQUE</name>
                    </category>
                    <category>
                        <id>14</id>
                        <name>PRODUITS DU MONDE</name>
                    </category>
                </children>
            </category>
        </children>
    </categoriesTree>
</retailerCategories>

SupplierXM provides a XSD file so retailers can validate the XML file before importing onto SupplierXM.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
    <xs:element name="retailerCategories" type="retailerCategoriesType"/>
    <xs:complexType name="category">
        <xs:sequence>
            <xs:element name="id" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Unique id of this specific category.
                    </xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="32"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="name" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Category's name.
                    </xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="64"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="children" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        List of all children product categories.
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="category" type="category" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="retailerCategoriesType">
        <xs:sequence>
            <xs:element name="version" minOccurs="1" maxOccurs="1" type="xs:decimal">
                <xs:annotation>
                    <xs:documentation>
                        Corresponds to the XSD version to use to validate the message.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- example -->
            <xs:element name="feedDate" minOccurs="1" maxOccurs="1" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>
                        Datetime when the XML file is produced.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="contentOwner" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="gln" minOccurs="1" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    GS1 identification for the company that is producing the XML message. Always 13 digits. Will be used to identify the message's sender when received by SupplierXM. See http://www.gs1.org/gln.
                                </xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:long">
                                    <xs:totalDigits value="13"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="categoriesTree" minOccurs="1" type="category">
                <xs:annotation>
                    <xs:documentation>
                        Contains the whole retailer's classification.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            
        </xs:sequence>
    </xs:complexType>
</xs:schema>

What’s Next

These sections document all the endpoints that allow interaction with product segments: