Version: eXtendPS-SE 1.4.0 and above
Audience: Administrator

Overview

Before making the Live Inventory service available to distributors, it needs to be configured. This configuration involves mapping fields from the NetSuite item object to the corresponding fields in the PromoStandards Live Inventory API response. Additionally, you can specify the eligible Inventory Locations to be included when searching for an item.

Configuration

  1. Go to eXtendTech → eXtendPS-SE → Inventory Setup.

General setup

  1. Show Assemblies as Manufactured Items
    Enable this option to indicate that items of the NetSuite Assembly item type should be treated as manufactured items in the Live Inventory response.

  2. Show Buy to Order for Drop Ship & Special Order
    Indicates that product will be purchased when ordered.

  3. Include Inventory Location
    Enable this option to include the InventoryLocation array in the response.
    Image Placeholder

  4. Suppress Kit Components
    Enable this option to exclude components of the NetSuite Kit/Package item type in the Live Inventory response.

  5. Suppress Assembly Components
    Enable this option to exclude components of the NetSuite Assembly item type in the Live Inventory response.

  6. Show Available to Build
    Enable this option to include the 'Available to Build' quantity for NetSuite Kit/Package and Assembly item types in the Live Inventory response. This quantity is based on the availability of the components and the required number to build. The 'Available to Build' data will be returned in the customProductMessage field of the Live Inventory response.

    Note:
    If the “Suppress Assembly Components” preference is not enabled, the inventory details for all component items of the assembly will be included in the inventory response. This includes the components of any sub-assemblies. For matrix assembly items, the inventory details of its sub-item components will be included in the Live Inventory response.

  7. Show Available to Build as Quantity Available
    Enable this option to return the 'Available to Build' quantity as the 'Quantity Available' for NetSuite Assembly item types.

  8. Do Not Show Product Message on Response
    This checkbox determines whether to display the customProductMessage field in the Live Inventory response or not. For more details, please refer to Configure Custom Product Message for Inventory Service.

  9. Show Future Availability for Items
    Enable this option to display future inventory availability in the Live Inventory response.

  10. Show Future Availability Item Receipt Date
    Specify the NetSuite field ID that contains the value used to display an item's expected receipt date for future inventory availability. Recommended field id: {expectedreceiptdate}.

  11. Product Message Saved Search ID
    You can use a custom saved search to create a customProductMessage for items based on their related purchase order information.

    To create this saved search, please make sure that the following requirements are met:
    1. The saved search is based on the transaction record. Note: The record type can be other than a Purchase Order.

    2. The saved search must support filters for Item and Location. Note: The Location filter is required for NetSuite accounts with the multi-location inventory feature enabled.

    3. Make sure that the saved search results are sorted to display the first result of an item, in case there are multiple results for the searched item.

    4. Make sure to add exactly one "Formula (Text)" field, as we will dynamically select this field for the customProductMessage.

      The default saved search that will be used is: eXtendPS-SE Item Inventory[B] {customsearch_extend_promo_api_po_search}.
      The customProductMessage which will be generated by this saved search is in the format: “Next PO Date: {expectedreceiptdate}, Quantity: ({quantity}-{quantityshiprecv})”  Example: “Next PO Date: JANUARY 18, 2018, Quantity: 1”.

      You can copy this saved search and add/append the criteria of this saved search as per your requirements.

  12. Available To Build Saved Search Id
    Specify a saved search id to be used for 
    calculating the 'Available to Build' value for NetSuite Assembly and Kit/Package item types.

    eXtendPS-SE Item Inventory[B] {customsearch_extend_promo_api_availbuild} is included with eXtendPS-SE to be used as a reference.

  13. Non – Color Size Attribute
    Specify a NetSuite field ID which specifies an item attribute which is not related color or size.

WSDL Field Mappings

  1. PartID*
    Item ID field in NetSuite. Recommended field: {itemid}


  2. Part Brand (1.2.1 Only)
    Item brand field in NetSuite. Included field: eXtendPS-SE Product Brand {custitem_extend_promo_product_brand}


  3. Part Description
    Item description field in NetSuite. Recommended field: {salesdescription}


  4. Color Attribute
    Item color field in NetSuite. It is recommended to include all your items fields that contain a color attribute. Included field: eXtendPS-SE Product Part Color Name {custitem_extend_promo_api_part_color}


  5. Size Attribute
    Item size field in NetSuite. It is recommended to include all your items fields that contain a size attribute. Included field: eXtendPS-SE Product Part Apparel Label Size {custitem_extend_promo_api_app_label_si}


  6. Is Manufactured Item
    Returns if the item is manufactured on demand or not so that customers can order a quantity more than the stock quantity. Recommended field: {isspecialorderitem}. If you use any other field for marking your items as a manufactured item, use that field.

  7. Non – Color Size Attributes
    Item attribute other than size and color. Included field: eXtendPS-SE Product Part Primary Material {custitem_extend_product_part_material}


  8. Replenishment Lead Time for Inventory 2.0
    Field in NetSuite which contains the time to replenish buy to order or made to order items. Included field: eXtendPS-SE Product Part Replenishment Lead Time {custitem_extend_promo_api_repl_led_tim}


    Note:
    Field IDs may also be specified in the formats below:
    1. Use text: {HARDCODED_VALUE} if you want to include a static response.
    2. {fieldIdA},{fieldIdB},{fieldIdC}…. if you want to include the first non-null field in the response.
    3. fn:{function name} if you want to include the response from a JavaScript function defined in suite_promoapi_invoice_transformers.js.

Inventory Locations

  1. Select all locations that should be included when searching for inventory.

Additional Settings

  1. Additional Item Search Columns
    Specify any item fields which you are using in any functional mappings.

  2. Part Search Filters
    See Remove Parent Name from Part Name in PromoStandards Response for more details on this field's usage
    .

  3. Maximum Member Item Levels For Assembly And Kit Items
    Specify the number of levels to search for member items of an Assembly item or a Kit/Package item, starting from the second level onwards. For example, a value of "1" would find immediate member items and the member items of the immediate Assembly/Kit items, if any.

    Note: The first level will always be searched. You can use a negative number to continue finding member item(s) until the end.

  4. Use Is Operator For Item Search (1.2.1 only)
    If you are using itemid in the Part ID field and there are other items that start with the same text, you may receive multiple items in the response when using the Live Inventory 1.2.1 service. To ensure that you get an exact matching item in the response, enable this preference.

Additional Settings

  1. Specify any item fields which you are using in functional mappings in the “Additional Item Search Column” field.

  2. In the UOM Mapping sublist, specify the NetSuite and PromoStandards unit of measures for mappings between NetSuite and PromoStandards.

  3. Under the Apparel Size Map, specify the mapping between your NetSuite apparel size values and the PromoStandards apparel size values. This mapping is required as PromoStandards accepts specific values as apparel sizes. This mapping is not available for editing in this setup, and you will have to update the eXtendPS-SE Product Data Setup to create this mapping. The link “Product Data Setup” will redirect you to the Product Data Setup screen automatically. Note: Submit any pending changes before clicking the link.

Click Submit to save your changes.

PromoStandards Supported Request Types

getFilterValues Response

getInventoryLevels Response

In the getInventoryLevels response, you will receive the part ID, color, size, and non-color-size attributes as "partId", "labelColor", "partSize", and "attributeSelection" respectively. These values will be nested under the object array "PartInventoryArray". 

Note: size and color fields can be configured as shown in the Configure the Live Inventory Service's GetFilterValues Response.

Non-standard or unmapped sizes will be returned as CUSTOM in the response. List of PromoStandards-supported sizes can be found on PromoStandards website.

Sample XML response:
    <soap:Body>
        <getInventoryLevelsResponse>
                <productId>29M : 29M- M-Classic Pink</productId>
                <PartInventoryArray>
                    <PartInventory>
                        <partId>29M : 29M- M-Classic Pink</partId>
                        <mainPart>true</mainPart>
                        <partColor>Classic Pink</partColor>
                        <labelSize>M</labelSize>
                        <partDescription>description</partDescription>
                        <quantityAvailable>
                            <Quantity>
                                <uom>EA</uom>
                                <value>111701</value>
                            </Quantity>
                        </quantityAvailable>
                        <manufacturedItem>false</manufacturedItem>
                        <buyToOrder>true</buyToOrder>
                        <attributeSelection>Material: 29M : 29M- M-Classic Pink</attributeSelection>
                        <InventoryLocationArray>
                            <InventoryLocation>
                                <inventoryLocationId>2</inventoryLocationId>
                                <inventoryLocationName>01: San Francisco</inventoryLocationName>
                                <postalCode>94403</postalCode>
                                <country>US</country>
                                <inventoryLocationQuantity>
                                    <Quantity>
                                        <uom>EA</uom>
                                        <value>111701</value>
                                    </Quantity>
                                </inventoryLocationQuantity>
                                <FutureAvailabilityArray>
                                    <FutureAvailability>
                                        <Quantity>
                                            <uom>EA</uom>
                                            <value>4000</value>
                                        </Quantity>
                                        <availableOn>2019-06-05T07:00:00.000Z</availableOn>
                                    </FutureAvailability>
                                    <FutureAvailability>
                                        <Quantity>
                                            <uom>EA</uom>
                                            <value>41999</value>
                                        </Quantity>
                                        <availableOn>2019-06-10T07:00:00.000Z</availableOn>
                                    </FutureAvailability>
                                    <FutureAvailability>
                                        <Quantity>
                                            <uom>EA</uom>
                                            <value>15000</value>
                                        </Quantity>
                                        <availableOn>2019-06-09T07:00:00.000Z</availableOn>
                                    </FutureAvailability>
                                </FutureAvailabilityArray>
                            </InventoryLocation>
                            <InventoryLocation>
                                <inventoryLocationId>1</inventoryLocationId>
                                <inventoryLocationName>02: Boston</inventoryLocationName>
                                <postalCode>02101</postalCode>
                                <country>US</country>
                                <inventoryLocationQuantity>
                                    <Quantity>
                                        <uom>EA</uom>
                                        <value>0</value>
                                    </Quantity>
                                </inventoryLocationQuantity>
                            </InventoryLocation>
                            <InventoryLocation>
                                <inventoryLocationId>310</inventoryLocationId>
                                <inventoryLocationName>New Jersey</inventoryLocationName>
                                <country>US</country>
                                <inventoryLocationQuantity>
                                    <Quantity>
                                        <uom>EA</uom>
                                        <value>0</value>
                                    </Quantity>
                                </inventoryLocationQuantity>
                                <FutureAvailabilityArray>
                                    <FutureAvailability>
                                        <Quantity>
                                            <uom>EA</uom>
                                            <value>15000</value>
                                        </Quantity>
                                        <availableOn>2019-06-06T07:00:00.000Z</availableOn>
                                    </FutureAvailability>
                                </FutureAvailabilityArray>
                            </InventoryLocation>
                            <InventoryLocation>
                                <inventoryLocationId>3</inventoryLocationId>
                                <inventoryLocationName>Overstock</inventoryLocationName>
                                <country>US</country>
                                <inventoryLocationQuantity>
                                    <Quantity>
                                        <uom>EA</uom>
                                        <value>0</value>
                                    </Quantity>
                                </inventoryLocationQuantity>
                            </InventoryLocation>
                        </InventoryLocationArray>
                        <lastModified>2019-06-10T13:39:21.417Z</lastModified>
                    </PartInventory>
                </PartInventoryArray>
            </Inventory>
        </getInventoryLevelsResponse>
    </soap:Body>
</soap:Envelope>