Creating a large number of new products in the Product Catalog can be a lengthy process. Having the ability to import shell products can facilitate this.
This solution provides a Background File Processor to import XML or CSV files that specify new Shell Products and Packages in the Product Catalog. The Import file supports creating Products and Packages in existing folders only. All other types of Product Catalog entries are not supported at this time. Adding children to packages is not supported at this time. The new shell products will require additional manual configuration.
Carriers will be required to submit a Service Request to have Automate FTP jobs created for file movement to and from the Secure FTP site. An FTP job will be required to complete the import when users upload files to the Secure FTP site. Additional FTP jobs will be needed to push error and log files to the Secure FTP site for review.
Once imported, file processing will check the SKU against current Product Catalog SKU’s. If a SKU in the import file matches an existing SKU in the Product Catalog, the record will error and continue processing the next entry. The remaining fields will be analyzed for valid entries and error the record if invalid. Error Records will be written into a separate file in the error directory Log files provide information on date/time, # of success, # of Errors.
File Import Definition
File Import Fields
The fields listed here are intended to be used to create new shell products that will require additional manual configuration.
Product Catalog Import Record – XML
The file extension is .XML and the import assumes the following overall structure:
<Entries>
<Product>
<SKU></SKU>
<Description></Description>
<FolderPath></FolderPath>
<AltInvoiceDesc></AltInvoiceDesc>
<Charge></Charge>
<ProratingType></ProratingType>
<NumCyclesInAdv></NumCyclesInAdv>
<ChargeTaxClass></ChargeTaxClass>
<InvoiceCategory></InvoiceCategory>
<AvailableDate></AvailableDate>
<DefaultBillingStatus></DefaultBillingStatus>
<ProvisioningCompany></ProvisioningCompany>
<USOC></USOC>
</Product>
<Package>
<SKU></SKU>
<Description></Description>
<FolderPath></FolderPath>
<AltInvoiceDesc></AltInvoiceDesc>
<Charge></Charge>
<ProratingType></ProratingType>
<NumCyclesInAdv></NumCyclesInAdv>
<ChargeTaxClass></ChargeTaxClass>
<InvoiceCategory></InvoiceCategory>
<AvailableDate></AvailableDate>
<DefaultBillingStatus></DefaultBillingStatus>
<ProvisioningCompany></ProvisioningCompany>
<USOC></USOC>
</Package>
</Entries>
There are three required fields in Product Catalog Import files. They are the SKU, Description, and FolderPath. There can be any number of Product and Package elements within the Entries element in any order. The order of the elements in the Product and Package elements is flexible.
Field Name | DataType | Notes |
Product/Package | Element | Indicates if the entry to be created should be a product or a package. Used to set the ProductCatalog.ProductTypeID field. |
SKU | String | Required – SKU must be unique across the Product Catalog. Entries with SKUs already used by the Product Catalog will be skipped. Used to populate the ProductCatalog.SKU field. |
Description | String | Required –Used to populate the ProductCatalog.SvcDesc field. |
FolderPath | String | Required – Location where the new product will be created. The location must exist. Entries for locations that do not exist will be skipped. The initial “Product Catalog” folder is not required to be specified. Example – Both represent the same folder: “Product Catalog/Master Plans/In Development” and “/Master Plans/In Development”. |
AltInvoiceDesc | String | Optional – Used to populate the ProductCatalog.AltInvoiceDesc field. No value when left blank or omitted. |
Charge | Decimal | Optional – Used to populate the ProductCatalog.Charge field. No value when left blank or omitted. |
ProratingType | String | Optional – Used to populate the ProductCatalog.ProrateTypeID field. Options are (not case sensitive):
Value when left blank or omitted – InAdvance |
NumCyclesInAdv | Integer | Optional – Used to populate the ProductCatalog.ProRateCycles field. When ProratingType is InAdvance, InAdvanceNoRefund, InAdvanceNoProrate, or InAdvanceForwardDisconnect, the valid range is 1 through 12. Otherwise, the value is not applicable and will be ignored. Value when left blank or omitted – 1 |
ChargeTaxClass | String | Optional – Values are defined as the Description fields of the records in the TaxClass table, not case sensitive. Used to populate the ProductCatalog.TaxClassID field. Value when left blank or omitted – First entry in the table |
InvoiceCategory | String | Optional – Values are defined as the Description fields of the records in the InvoiceCategory table, not case sensitive. Used to populate the ProductCatalog.InvoiceCategoryID field. Currently the only valid core values are Main and Upgraded Balance Buckets. Custom values are valid. Value when left blank or omitted – First entry in the table |
AvailableDate | Date/Time | Optional – Used to populate the ProductCatalog.StartDate field. Value when left blank or omitted – Available date is set to today’s date.
|
DefaultBillingStatus | String | Optional – Values are either “Billing” or “Not Billing”, not case sensitive. Used to populate the ProductCatalog.DefaultBillingStatusID field. Value when left blank or omitted – “Billing” |
ProvisioningCompany | String | Optional – Values are defined as the KeyName fields of the records in the ProvisioningCompany table, not case sensitive. Used to populate the ProductCatalog.ProvisionID field. Value when left blank or omitted – “None” |
USOC | String | Optional – Used to populate the ProductCatalog.USOC field. No value when left blank or omitted. |
Product Catalog Import Record – CSV
The CSV file supports an optional header row with the names of the fields listed in the order below. Column names in the header row are not case sensitive, and spaces in the column names are ignored. Optional fields should be left blank to indicate an omitted field.
The file extension is .CSV and the import assumes fields in a record are separated by a comma (,) and that each line represents a new product or package. If there are commas present in a field’s value, the import will assume that the field value will be encapsulated by quotation marks (“). The use of quotation marks in a field value is not supported.
There are four required fields in CSV Product Catalog Import files. They are Type, SKU, Description, and FolderPath. There can be any number of Product and Package entries in the CSV file.
Field Name | Column# | DataType | Notes |
Type | 1 | String | Indicates if the entry to be created should be a product or a package. Used to set the ProductCatalog.ProductTypeID field. Valid values – “Product” and “Package” only, not case sensitive. |
SKU | 2 | String | Required – SKU must be unique across the Product Catalog. Entries with SKUs already used by the Product Catalog will be skipped. Used to populate the ProductCatalog.SKU field. |
Description | 3 | String | Required –Used to populate the ProductCatalog.SvcDesc field. |
FolderPath | 4 | String | Required – Location where the new product will be created. The location must exist. Entries for locations that do not exist will be skipped. The initial “Product Catalog” folder is not required to be specified. Example – Both represent the same folder: “Product Catalog/Master Plans/In Development” and “/Master Plans/In Development”. |
AltInvoiceDesc | 5 | String | Optional –Used to populate the ProductCatalog.AltInvoiceDesc field. No value when left blank. |
Charge | 6 | Decimal | Optional –Used to populate the ProductCatalog.Charge field. No value when left blank. |
ProratingType | 7 | String | Optional – Used to populate the ProductCatalog.ProrateTypeID field. Options ( not case sensitive):
Value when left blank – InAdvance |
NumCyclesInAdv | 8 | Integer | Optional – Used to populate the ProductCatalog.ProRateCycles field. When ProratingType is InAdvance, InAdvanceNoRefund, InAdvanceNoProrate, or InAdvanceForwardDisconnect, the valid range is 1 through 12. Otherwise, the value is not applicable and will be ignored. Value when left blank – 1 |
ChargeTaxClass | 9 | String | Optional – Values are defined as the Description fields of the records in the TaxClass table, not case sensitive. Used to populate the ProductCatalog.TaxClassID field. Value when left blank – First entry in the table |
InvoiceCategory | 10 | String | Optional – Values are defined as the Description fields of the records in the InvoiceCategory table, not case sensitive. Used to populate the ProductCatalog.InvoiceCategoryID field. Currently only Main and Upgraded Balance Buckets are valid. Value when left blank – First entry in the table |
AvailableDate | 11 | Date/Time | Optional – Used to populate the ProductCatalog.StartDate field. Value when left blank – Available date is set to today’s date.
|
DefaultBillingStatus | 12 | String | Optional – Values are either “Billing” or “Not Billing”, not case sensitive. Used to populate the ProductCatalog.DefaultBillingStatusID field. Value when left blank – “Billing” |
ProvisioningCompany | 13 | String | Optional – Values are defined as the KeyName fields of the records in the ProvisioningCompany table, not case sensitive. Used to populate the ProductCatalog.ProvisionID field. Value when left blank – “None” |
USOC | 14 | String | Optional – Used to populate the ProductCatalog.USOC field. No value when left blank. |
Validation Checks For The XML File
The IDI platform has the ability to perform both file-level and record-level validation checks before processing a file or record. This logic is custom for each file import type. The specifics for the XML File type are provided here.
File Validation
The file extension must be ‘.XML’ and is not case sensitive
Record Validation
Record values must be written in complete and correct XML
The collection of records must be in an element named Entries
Each record value must be in Product or Package elements
SKU, Description, and FolderPath must be specified
SKU cannot already be in use
FolderPath must reference a valid path in the Product Catalog
All other fields must match their respective data types and restrictions as specified in File Validation for the XML file.
Validation Checks For The CSV File
The IDI platform has the ability to perform both file-level and record-level validation checks before processing a file or record. This logic is custom for each file import type. The specifics for the CSV File type are provided here.
File Validation
The file extension must be ‘.CSV’ and is not case sensitive
Record Validation
Type, SKU, Description, and FolderPath must be specified
SKU cannot already be in use
FolderPath must reference a valid path in the Product Catalog
Fields that contain a comma (,) must be encapsulated in quotation marks (“)
All other fields must match their respective data types and restrictions as specified in File Validation for the CSV file.
Product Catalog Import Example XML
.png?sv=2026-02-06&spr=https&st=2026-08-05T23%3A23%3A27Z&se=2026-08-05T23%3A40%3A27Z&sr=c&sp=r&sig=JbuH53Q7lEAO83Oj1qX2gErWcorq1YPYLz%2BOCmfURPQ%3D)
.png?sv=2026-02-06&spr=https&st=2026-08-05T23%3A23%3A27Z&se=2026-08-05T23%3A40%3A27Z&sr=c&sp=r&sig=JbuH53Q7lEAO83Oj1qX2gErWcorq1YPYLz%2BOCmfURPQ%3D)