Proposal For Implementing Custom Patch Cable Configuration – Cleerline

Proposal Summary 

 

This proposal outlines the scope of implementing an online Custom Patch Cable Configurator, enabling customers to configure their cables directly on the website. Once a configuration is completed, a CSV file is generated containing the necessary data to create the corresponding item record in NetSuite. The estimated time for completing this task is 86 hours.  

The scope and provided estimate are based on our discussions and email communications. If any scope changes or additional feature developments are identified during the actual development, they will be treated as change requests. 

Requirement from Cleerline 

The requirement is to implement an online version of the current internal Excel-based Custom Patch Cable Configurator on the B2B website. The client requires the feature to allow customers to configure their own custom patch cables directly through the website. A CSV file will be generated based on the customer’s configuration data, which will be used to create the corresponding item record in NetSuite. The generated CSV file will only proceed to item creation after verification and approval by an administrator, ensuring accuracy and compliance. 

Current Workflow: 

  • The current configurator is an Excel-based tool used internally to generate unique item records for custom patch cables. 
  • The tool employs macros to produce a CSV file, which is then imported into NetSuite to create the item record. 
  • Selection of Base Cable: The user selects a base cable. 
  • To create a custom patch cable, the following configuration options will be used:  
  • Connectors for sides A and B. 
  • Number of connectors. 
  • Furcation tubing. 
  • Cable length. 
  • Pull eye type. 
  • Output Generation: The macro generates a CSV output file for NetSuite import. 
  • Order Fulfillment: The item is added to the customer order for sale. 
  • This online implementation will streamline the process by allowing customers to configure patch cables independently, reducing the need for internal handling while maintaining quality and compliance through administrative oversight. 

 

Deliverables     

 

  • The implementer will add a button labelled “Build Custom Cable” next to “Add to Cart” button on the Product detail page of the website, as shown below: 
  • The button will be displayed only if the ‘Enable Custom Patch Cable’ checkbox field in the item record of the item used to create the patch cable is enabled. 
  • Upon clicking the button, a dynamic form will be displayed. 

 

  • The form will include the following fields: 
  • Item Name: The name of the item from which the patch cable will be created. This field will be automatically populated based on the item or selected matrix sub-item on the PDP page. 
  • Connector Style: For both Side A and Side B. 
  • Number of Connectors: On each side. 
  • Furcation Tubing Options: For each side. 
  • Cable Length: Specified in feet. 
  • Type of Pull Eye: Options to be selected.  

 

  • Additional hidden fields required for item creation will be populated using the script based on predefined rules from the existing Excel Configurator. The rules for defining each field value for the CSV import, along with the options and types of form values, are detailed here: 

 

                                  Cable Configurator form fields 

 

Selected Cable 

 

 

Automatically populated and not editable 

The item used to create the patch cable automatically takes the value from the Item ID currently selected on the PDP page. 

Mode 

Hidden field 

The value will be calculated based on the value of Fiber Type (Web Facet)  with ID: ‘custitemfibertype_facet’ of the item used to create the patch cable. 

Connector A 

Multi-optional fields 

List the set of connector options from the Connector Option record based on the criteria of the item used to create the patch cable. 

Furcation Options 

Hidden field 

 

Automatically populated with the value of the FurcationGroup field from the item record of the item used to create the patch cable. 

Connector Option 

Hidden field 

The value pulled from the Stands Options record type for the Strand Count the correct strand Count group can be found on the cable item record as Strands Group 

# Connectors 

Multi-optional fields 

 

Display the list of Connector# Count options based on the specified criteria. 

Furcation Tubing 

Multi-optional fields 

 

Display the list of Furcation Tubing options from the ‘Furcation Tubing Options’ record as choices for this field. 

Connector B 

Multi-optional fields 

 

List the set of connector options from the Connector Option record based on the criteria of the item used to create the patch cable. 

 

Furcation Options 

Hidden field 

 

Automatically populated by the value of the FurcationGroup field in the item record of the item created from the patch cable. 

Connector Option 

Hidden field 

 

The value pulled from the Stands Options record type for the Strand Count the correct strand Count group can be found on the cable item record as Strands Group 

 

# Connectors 

 

Multi-optional fields 

 

Show the list of connector counts as options based on the criteria. 

 

Furcation Tubing 

Multi-optional fields 

 

Show the list of Furcation tubing in the ‘Furcation Tubing Options’ record as the available options for this field. 

Length (Feet) 

input field 

The user can specify the required length here, which will be considered in the format of feet. 

Pull Eye 

Multi-optional fields 

 

List all the sets of Pull Eye Options in the Pull Eye Options record. 

Fiber Part 

Hidden field 

 

value will pull from the Fiber Legend Field on the item in Components Item #1 

Con A 

Hidden field 

 

Value will be pull from the connector group based on the selection of Connector A value 

Con B 

 

Hidden field 

 

Value will be pull from the connector group based on the selection of Connector B value 

 

Jacket 

Hidden field 

 

The value will be based on the “Jacket Type (Web Facet)” field of the item record with internal ID ‘custitemjackettype_facet’ from which the patch cable is created. We will take the first letter of the value in the above-mentioned field as the value for this field. 

Color 

Hidden field 

Value will be pulled from the Color Legend Field on the item in Components Item #1 

Polish A 

Hidden field 

 

Value will be pulled from the Polish Legend Field from the Connector Option chosen for Side A 

Polish B 

Hidden field 

 

Value will be pulled from the Polish Legend Field from the Connector Option chosen for Side B 

Eye 

Hidden field 

 

Value will be pulled from the Legend Field from the Pull Eye option chosen  

SSF-BSF 

Hidden field 

 

Append SSF or BSF to the end of the item name/number based on the Brand Facet (custitembrand_facet) of Component #1 in the CSV file: Cleerline TSB™ = BSF, Cleerline SSF™ = SSF

Name of New Patch cable created 

Automatically populated and not editable 

 

The name of the newly created item will follow this rule: 

“fiberpart”-“#Connectors,ConA”-“#Connectors, ConB”-“length”m-“jacket,color,PolishA,PolishB,eye,SSF-BSF” using the available values in the form. 

  • When the customer submits the form after entering the required fields, a message will be displayed to the customer: “Request submitted successfully. It is under the verification process. We will notify you once it is completed.”   
  • The submitted data through the form will be processed using a SuiteScript 2.0 script. The script will extract and process the necessary field values required for the item import.  
  • Based on the processed data and pre-configured mapping rules for each import file column, A CSV file will be generated. 
  • The file will be saved in a common folder named ‘New Patch Cables_CSV’ file in the NetSuite file cabinet. 
  • The filename will follow the format: 

<new_item_name>_<customer_internal_id>_<timeStamp>.csv. 

Example: NewProductName_12345.csv. 

  • The timestamp will be appended to the filename to avoid duplication in cases where the same request is made by the same customer. 
  • The implementer will send the generated CSV file to the sales representative associated with the customer who raised the request and to the email address ‘orders@cleerline.com’ 
  • The email will notify the recipient of the creation of a new CSV file for a patch cable request. 
  • The sales representative and administrative employees will verify the CSV file to ensure the new patch cable’s features meet the requirements. 
  • The client will review the file before importing it to avoid creating unnecessary items in the system. After verification, if the item is deemed necessary, they will create it by importing the CSV file. 
  • Once the item is created, the client will add it to a quote for the customer. 
  • The client will retrieve the customer ID from the CSV file name. The customer can then convert the quote into a sales order on the website. 

 

 

                                 Item CSV Import fields 

 

Item Name/Number 

 

 

itemid 

fiberpart”-“#Connectores,ConA”-“#Connectores,ConB”-“length”m-“jacket,color,PolishA,PolishB,eye,SSF-BSF 

Description 

description 

“Custom Patch Cable-“,Cable Select”-“#Connectores”x”ConA”-“#Connectores”x”ConB”-PullEye=”Pull Eye”-“length”m/”length in feet”ft” 

Strand Count 

custitemstrandcount_facet 

There is a custom item field named “Strands Group” in the item record, which is linked to the “Strand Options” record. The “Strand Options” record contains a “Connector Count” field for each “Strands Group.” The value of the “Connector Count” corresponding to the Strand Group on the item record will be saved in this field. 

Foot 

custitemlength_facet 

 

The length field value in feet (rounded to the nearest whole number). 

Fiber Grade 

custitem39 

The value found using the Fiber Grade Facet field (custitem16) on of the item in Components Item #1 

Class 

class 

 

This will always be Cleerline FG : Cables : Fiber Patch Cables : Custom Assemblies : value from (Fiber Mode Type) field 

Fiber Mode Type 

custitem38 

 

Value of the CLASS L6 field of the item from which the patch cable created 

Components Item #1 

Item Member 1 itemid 

 

For the item ID of the item from which the patch cable is created, append “-B” to the item ID. If it is a submatrix item, also specify it as “parent item:submatrix item” 

 

Components Item #1 Qty 

Item Member 1 Qty 

 

The length field value in feet (rounded to the nearest whole number). 

Components Item #2 

Item Member 2 itemid 

 

Retrieve the Connector Option Item from the Connector Option record by matching the Connector A and Furcation Tubing selected in the form with the corresponding fields in the Connector Option record 

Components Item #2 Qty 

 

Item Member 2 Qty 

 

If ‘Connector A’ in the form is “NC”, then the quantity will be 1. Otherwise, the quantity will be the value of #connectors. 

Components Item #3 

Item Member 3 itemid 

 

This will always be the item CTG-MFG OVERHEAD 

Components Item #3 Qty 

Item Member 3 Qty 

it’s the strand count for side A, value of Item Member 2 Qty 

Components Item #4 

Item Member 4 itemid 

 

This will always be the item CTG-PATCH-FANOUT 

Components Item #4 Qty 

Item Member 4 Qty 

 

it’s the strand count for side A, value of Item Member 2 Qty 

 

Components Item #5 

Item Member 5 itemid 

 

Get the ‘Furcation Tubing’ value from the form and compare it with the ‘Furcation Tubing Options’ record. If it matches, retrieve the ‘Furcation Tubing Item’ from the record containing the corresponding ‘Furcation Tubing Name.’ 

Components Item #5 Qty 

 

Item Member 5 Qty 

 

If the Furcation Tubing value on the form matches “None,” the quantity will be set to 1. Otherwise, the quantity will be the same as the value of Item Member 2 Qty. 

 

Components Item #6 

Item Member 6 itemid 

 

The value will be based on the “Jacket Type (Web Facet)” field of the item record with internal ID ‘custitemjackettype_facet’ from which the patch cable is created. We will take the first letter of the value in the above-mentioned field as the value for this field. 

Components Item #6 Qty 

Item Member 6 Qty 

If ‘Connector B’ in the form is “NC”, then the quantity will be 1. Otherwise, the quantity will be the value of #connectors. 

Components Item #7 

Item Member 7 itemid 

 

This will always be the item CTG-MFG OVERHEAD 

 

Components Item #7 Qty 

Item Member 7 Qty 

 

it’s the strand count for side B, value of Item Member 6 Qty 

 

Components Item #8 

Item Member 8 itemid 

 

This will always be the item CTG-PATCH-FANOUT 

 

Components Item #8 Qty 

Item Member 8 Qty 

 

it’s the strand count for side B, value of Item Member 6 Qty 

 

Components Item #9 

Item Member 9 itemid 

 

Get the ‘Furcation Tubing’ value from the form and compare it with the ‘Furcation Tubing Options’ record. If it matches, retrieve the ‘Furcation Tubing Item’ from the record containing the corresponding ‘Furcation Tubing Name.’ 

Components Item #9 Qty 

Item Member 9 Qty 

If the Furcation Tubing value on the form matches “None,” the quantity will be set to 1. Otherwise, the quantity will be the same as the value of Item Member 6 Qty. 

Components Item #10 

Item Member 10 itemid 

Based on the value of “Pull Eye” from the form, return the ‘Pull Eye Item’ that matches the corresponding ‘Pull Eye Name’ in the ‘Pull Eye Options’ record. 

Components Item #10 Qty 

Item Member 10 Qty 

If the Item Member 10 item ID exists, the quantity will always be set to 1. 

Price Level Base Price 

Base Price Qty 0 

Retrieve the Base Quantity 0 price of each Item Member component from the item record. then multiply the price by the corresponding Item Member quantity. Finally, sum the prices of all component items obtained. 

Price Level Distributor 

Distributor Price Qty 0 

Retrieve the Distributor Price Qty 0 price 

 of each Item Member component from the item record. For ‘Component Item #1,’ apply a 10% discount to the price, then multiply the price by the corresponding Item Member quantity. Finally, sum the prices of all component items obtained. 

Price Level International 

International Price Qty 0 

Retrieve the International Price Qty 0 price of each Item Member component from the item record then multiply the price by the corresponding Item Member quantity. Finally, sum the prices of all component items obtained. 

Price Level International NS 

InternationalNS  Price Qty 0 

Retrieve the InternationalNS  Price Qty 0 price of each Item Member component from the item record then multiply the price by the corresponding Item Member quantity. Finally, sum the prices of all component items obtained. 

Price Level BBY 

Tier BBY Price Qty 0 

Retrieve the InternationalNS  Price Qty 0 price of each Item Member component from the item record then multiply the price by the corresponding Item Member quantity. Finally, sum the prices of all component items obtained. 

 

Class L5 

custitem37 

The value of the “CLASS L5” field with ID “custitem37” from the item used to create the new patch cable. 

Class L6 

custitem38 

The value of the “CLASS L6” field with ID “custitem38” from the item used to create the new patch cable. 

Class Tier Two 

custitemclasstiertwo 

The value will be always “Custom Assemblies” 

Fiber Type Facet 

custitemfibertype_facet 

This will come from the Fiber Type Facet 

 field on the item from which the patch cable created. 

Connection Type Facet 

custitemconnectiontype_facet 

This will be a combined version of the Connection Type facet (custitemconnectiontype_facet) on the connector items.  Side A then Side B. 

 

Cable Construction Facet 

custitemcableconstruction_facet 

This will come from the same ‘Cable Construction Facet’ field on the item from which the patch cable created. 

 

Fiber Grade Facet 

custitem16 

This will come from the same ‘Fiber Grade Facet’ field on the item from which the patch cable created. 

 

 

 

Scope Limitation 

 

  • The proposal is based on the discussions, anticipations, and understanding through our discussions and email. Any requirement, change, and feature development identified during the development process will be treated as change request.  
  • The image of the newly created patch item will be a common image for patch cable items named ‘CustomPatchCable.png’ which is provided by the client. This image will be added to the common item image folder in the file cabinet, and its URL will be included as a new column in the CSV import file. This ensures that the item is assigned the correct image during the upload process. 
  • The customization is available only up to the creation of the CSV record. The verification of the CSV file, importing of the CSV file for item creation, and the process of including the newly created item in the quote will all be handled by the client. 
  • Since item creation through CSV import is performed on the client side, the implementer cannot identify conditions to handle scenarios where item creation is rejected after verifying the request. In such cases, there will be no automation to notify the customer about the failure or the reason for it. If customer notification is required, it must be managed manually by the client. Additionally, the functionality to send an email upon the creation of new patch cable items and adding them to a quote is included as an enhancement. 

 

 

Assumption 

  • The scope and estimate are based on our current understanding of the requirements. Any changes or additional feature development identified during implementation will be treated as a change request. 
  • The user interface will match the current theme. 
  • The development will begin in the sandbox environment, and changes will only be moved to production after receiving confirmation.  
  • It is assumed that all the required data including the fields and records related to the items are to be already available in NetSuite. Any missing data will need to be provided and updated by the client. 

Leave a comment

Your email address will not be published. Required fields are marked *