Documentation Index

Fetch the complete documentation index at: https://help.idibilling.com/llms.txt

Use this file to discover all available pages before exploring further.

IDI version 26.8 is now available.  Click here for details: IDI Updates.

Product Catalog Import for Shell Products & Packages

Prev Next

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):

  • None

  • InAdvance

  • InArrears

  • InAdvanceNoRefund

  • InAdvanceNoProrate

  • InAdvanceForwardDisconnect

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.

Notes:

  • Times are ignored.

  • Entering only a month and year result in a value of the first day of the month for the year. (ex. 1/2016 becomes 1/1/2016).

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):

  • None

  • InAdvance

  • InArrears

  • InAdvanceNoRefund

  • InAdvanceNoProrate

  • InAdvanceForwardDisconnect

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.

Notes:

  • Times are ignored.

  • Entering only a month and year result in a value of the first day of the month for the year. (ex. 1/2016 becomes 1/1/2016).

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