Proposal Summary
This proposal outlines the implementation of a secure and scalable integration
between Wirelo and NetSuite ERP to automate the synchronization of orders,
products, and tracking details.
The solution will ensure:
All orders created in Wirelo are imported into NetSuite as Sales Orders.
Product catalogs between Wirelo and NetSuite are kept synchronized.
Tracking information from NetSuite Item Fulfillments is updated back into
Wirelo.
Requirement Overview
The goal of this integration project is to design and implement a secure, configurable,
and scalable bi-directional integration between Wirelo and Oracle NetSuite ERP for
Balaji Wireless. This integration will eliminate manual data entry, ensure accurate and
timely data synchronization, improve order fulfillment speed, and enhance
operational visibility through synchronized product, order, and tracking data.
Product Sync (NetSuite → Wirelo)
Product master data must be synchronized between Wirelo and NetSuite. The
product synchronization process ensures that product master data, including SKUs,
names, descriptions, pricing, stock quantities, and additional metadata (e.g., GTIN,
manufacturer details), will be synchronized from NetSuite to Wirelo on a scheduled
basis.
Product master data encompasses SKUs, product names, short and full descriptions,
pricing, stock quantities, Global Trade Item Numbers (GTIN), manufacturer details,
and category assignments and fields shared in the saved search by client ‘ Wirelo
Balaji Wireless Product Feed – ALERT’. Synchronization will occur on a configurable
schedule to align with business needs, with the option for real-time updates triggered
by changes in NetSuite.
Order Sync (Wirelo → NetSuite)
The order synchronization process will automate the import of orders from Wirelo
into NetSuite as Sales Orders, ensuring accurate and timely order processing. Orders
placed in Wirelo will be automatically imported into NetSuite as Sales Orders,
reducing manual data entry and errors. The sync process will run on a configurable
schedule basis.
Automatically import Wirelo orders into NetSuite Sales Orders.
The synchronization process will operate on a configurable schedule
Each imported order will be assigned to a predefined default customer in
NetSuite (Customer ID 2613209, “Wirelo Orders”) to ensure consistency in
reporting and accounting processes.
The billing address for all imported orders will be set to a static address
associated with the default customer in NetSuite.
The shipping address will be dynamically populated using the address
provided in the Wirelo order data, ensuring accurate delivery information.
Order details, including SKUs, quantities, and prices, will be accurately
mapped from Wirelo to NetSuite to ensure consistency.
Orders failing to sync (e.g., due to invalid SKUs, missing data, or connectivity
issues) will be logged in a custom Integration Log record with detailed error
information, including the Wirelo order ID, timestamp, and error type.
Partial syncs will be prevented to maintain data integrity, with failed orders
queued for retry after resolution of the underlying issue.
The Wirelo order_id will be stored in the NetSuite custom field for traceability
and reference.
Tracking Sync (NetSuite → Wirelo)
The tracking synchronization process pushes fulfillment details from NetSuite to
Wirelo upon completion of an Item Fulfillment, ensuring customers receive accurate
and timely tracking information.
Upon creation of an Item Fulfillment record in NetSuite, the system will push the
following details to Wirelo:
o Carrier
o Tracking number
o Shipped date
o Fulfilled items (including SKUs and quantities)
The sync will occur in a scheduled basis to ensure timely updates in Wirelo.
Deliverables
The proposed Wirelo–NetSuite integration solution will deliver a robust, scalable, and
maintainable integration to automate the synchronization of products, orders, and
tracking information between the two platforms.
Below is the breakdown of the functional components, technical architecture, and
record handling mechanisms that will be delivered as part of this engagement:
Custom API Endpoint and Authentication:
The integration utilizes Wirelo’s API endpoints hosted at https://stg.ezkonnect.com to
facilitate secure and efficient data exchange with NetSuite. Authentication is
managed through JSON Web Tokens (JWT) for Wirelo, ensuring secure, encrypted,
and reliable communication. The integration supports product synchronization, order
imports, and tracking updates, with comprehensive error.
Wirelo Authentication:
Endpoint: POST https://stg.ezkonnect.com/api/admincustomer/login
Authenticates the integration to obtain a JWT token, which is used in the Admin-
Token header for subsequent API requests to Wirelo.
Request Payload:
{
“data”: {
“email”: “testwirelo@gmail.com”,
“username”: “testwirelo@gmail.com”,
“password”: “Balaji@4321”
}
}
API Request and Response Structure
Product Sync:
POST https://stg.ezkonnect.com/api/a/product/Create: Creates a new
product in Wirelo.
POST https://stg.ezkonnect.com/api/a/product/Edit: Updates an existing
product in Wirelo.
POST https://stg.ezkonnect.com/api/a/product/GoToSku: Retrieves product
details by SKU or name for validation or updates.
POST https://stg.ezkonnect.com/api/a/product/ProductList: Lists products,
optionally filtered by SKU.
Sample Payload:
{
“data”: {
“name”: “iPhone 13 Case Purple”,
“shortDescription”: “iPhone Case”,
“fullDescription”: “High-quality MagSafe compatible iPhone 13 case in purple.”,
“sku”: “CL-RDTMS-IPH2161-PU”,
“gtin”: “1234567890123”,
“manufacturerPartNumber”: “Apple”,
“manageInventoryMethodId”: 1,
“stockQuantity”: 150,
Page I 10
“price”: 19.99,
“oldPrice”: 29.99,
“orderMinimumQuantity”: 0,
“orderMaximumQuantity”: 1000,
“isShipEnabled”: true,
“published”: true,
“weight”: 0.25,
“baseWeightIn”: “oz”,
“selectedCategoryIds”: [12],
“selectedManufacturerIds”: [34],
“compatibleModel”: “iPhone 13”
}
}
Order Sync:
Endpoint: POST https://stg.ezkonnect.com/api/a/order/List
Purpose: Retrieves orders from Wirelo within a specified date range for
import into NetSuite as Sales Orders.
Sample Payload
{
“data”: {
“startDate”: “2025-09-11T16:55:02.941292”,
“endDate”: “2025-09-17T10:12:29.313784”
}
}
Tracking Sync:
Endpoint: https://stg.ezkonnect.com/api/a/order/SetTrackingNumber
Purpose: Pushes tracking details from NetSuite Item Fulfillments to Wirelo,
including carrier, tracking number, shipped date, and fulfilled items.
Sample Payload
{
“data”: {
“order_id”: “WIRELO_ORD_12345”,
“fulfillment_id”: “NS_FULF_54321”,
“carrier”: “FedEx”,
Page I 11
“tracking_number”: “789012345678”,
“shipped_date”: “2025-09-18”,
“fulfilled_items”: [
{
“sku”: “CL-RDTMS-IPH2161-PU”,
“quantity”: 2
},
{
“sku”: “CL-RDTMS-IPH2161-BK”,
“quantity”: 1
}
]
}
}
Product Sync (NetSuite → Wirelo)
Source of Data is the NetSuite Saved Search: Wirelo Balaji Wireless Product
Feed – ALERT
Contains fields mapped to Wirelo’s product schema (e.g., SKU, Title,
Description, Price, Category, Manufacturer, etc.)
Each product record is processed individually (Wirelo API supports singleitem
sync only).
For each item in the saved search:
o The system performs a GET call to GoToSku to check if the item exists
in Wirelo.
If found: Trigger Edit endpoint.
If not found: Trigger Create endpoint.
GTIN, manufacturer, and customer segment fields are mapped conditionally,
if available.
Static values are used where necessary:
o isShipEnabled: true
o published: true
o baseWeightIn: ‘oz’
Error Handling
Errors during product sync (e.g., invalid SKU, missing required fields) are
logged in Wirelo Integration Log.
Duplicate or missing fields are flagged, and the item is skipped with proper
logging.
Order Sync (Wirelo → NetSuite)
Wirelo API Endpoint: /api/a/order/List
Orders retrieved based on configurable date filters (daily, hourly, etc.).
All imported orders are associated with default customer (Internal ID:
2613209 – “Wirelo Orders”).
Order Mapping Logic
Order Header Fields:
o Order Date → trandate
o Status Mapping → Pending Fulfillment
o Location → Based on StoreName
o Shipping Method → Default or from payload
Shipping Address:
o Fully mapped from Wirelo shipping address structure
Line Items:
o SKU is matched to NetSuite Item via External ID
o Quantity, Rate, and Amount are mapped directly from Wirelo
Traceability:
o Wirelo’s order_id is stored in NetSuite custom field
custbody_wirelo_order_id to ensure uniqueness and prevent
duplication.
Error Handling
If a SKU is not found in NetSuite, the order is rejected and logged.
Orders are not partially imported to ensure atomicity.
All failures are recorded in a custom Integration Log with fields:
o Wirelo Order ID, Error Message, Timestamp, Status, Retry Flag
Tracking Sync (NetSuite → Wirelo)
Triggered upon Item Fulfillment creation in NetSuite.
API Endpoint: /api/a/order/SetTrackingNumber
Payload includes order_id, fulfillment_id, and detailed item fulfillment lines.
Scheduled process runs to push fulfillment details to Wirelo.
Error Handling
Any failed sync attempt is logged in the Integration Log.
Orders without tracking numbers are skipped and retried in the next cycle.
Custom Integration Log Record:
Tracks every API interaction (request & response)
Status: Success, Failure, Retried
Includes metadata like operation type (Product, Order, Tracking), timestamps,
and error reasons.
API Role and Permission Setup
A dedicated integration role will be created in NetSuite:
Create a dedicated NetSuite integration role:
o Role Name: Wirelo Integration Role.
Monitoring and Logging
A custom Integration Log record in NetSuite captures all API interactions, including
request payloads, response statuses, timestamps, and error details.
Data Validation and Error Handling
Verify SKU consistency before creating orders or products.
Prevent duplicate imports using custbody_wirelo_order_id.
Retry mechanism for failed syncs.
Errors logged in Wirelo Integration Log.
Order line prices from Wirelo will be imported directly.
Robust error handling will be implemented to address common issues such
as missing SKUs or duplicate entries.
If a SKU is missing in Wirelo, the system will log the error in an Integration Log
Record.
For duplicate SKUs, the system will flag the issue and pause the sync for the
affected product, allowing manual resolution to prevent data corruption.
Error logs will include detailed information (e.g., SKU, timestamp, error type)
for troubleshooting and audit purposes.
If an order fails to sync (e.g., due to invalid SKU or missing data), the system
will log the error in the Integration Log and notify administrators for
resolution.
Partial syncs will be avoided to ensure data integrity; orders with errors will
be queued for retry after resolution.
Notes
The scope and the provided estimate are based on the anticipation, expectation, and
understanding through our discussions and email. If the scope change/additional
feature development identified during actual development will be treated as change
request.
Assumptions
Wirelo SKUs are assumed to match NetSuite SKUs, ensuring seamless
mapping of product identifiers across both systems.
A default customer (e.g., Customer ID 2613209, “Wirelo Orders”) exists in
NetSuite and is pre-configured for assigning imported Wirelo orders. This
customer will be used consistently for all Sales Orders created through the
integration.
Wirelo provides API credentials for staging and production. The integration is
limited in creating and updating pricing in Inventory Items only. Please note
Quantity update thows an error from Wirelo.
The integration will use JWT Token for secure communication between the
Wirelo and NetSuite.
Integration covers order import, product sync, and tracking update only.
Complex product bundles/kits not included in this phase.
All orders created in Wirelo are imported into NetSuite as Sales Orders in
scheduled basis.
NetSuite will only process valid API requests. If an error occurs, it logged in a
custom record
Risks
Inventory quantity updates from NetSuite are not supported by Wirelo and
may throw API errors if attempted.
Wirelo uses JWT authentication which may expire or become invalid if
credentials change. If the token is not refreshed successfully, integration
syncs will fail until credentials are updated or re-authenticated.
The integration assumes that all categories, currencies, manufacturers, and
customer roles exist in NetSuite prior to data sync. If any required master
data is missing, the sync will fail and must be corrected manually.
Future changes in item schema or API payload structure could break the
integration.