What Can You Import?
A single CSV file can include:- Location Information: Name, type, ERP ID
- Address Details: Complete address information for each location
- Hierarchy: Parent-child relationships between locations
- Status: Active or inactive locations
Import Workflow
The location import follows a 6-step wizard process:Step 1: File Upload
- Navigate to Locations → CSV Import
- Click Choose File or drag-and-drop your CSV file
- Download the template if you need an example format
- System parses the CSV data
Step 2: Data Preview
- Review the parsed location data in table format
- Verify all locations were read correctly
- Check for any obvious formatting issues
- Click Next to proceed to validation
Step 3: Format Validation
The system validates CSV structure: Checks performed:- Required columns are present
- Location types are valid
- Address fields follow all-or-nothing rule
- Country values are valid (US or Canada only)
- ✅ Pass: Format is valid, proceed to business rules validation
- ⚠️ Issues Found: Review and fix issues before proceeding
Step 4: Business Rules Validation
The system validates your data against business rules: Validation checks:- Parent locations are resolved (by name)
- Duplicate locations detected (same name)
- Address completeness verified
- Auto-creation of missing parent locations planned
- Shows which parent locations will be auto-created
- Lists any duplicate locations that will be updated
- Displays validation warnings and errors
Step 5: Import Progress
- Click Start Import to begin
- Progress bar shows import status
- Real-time feedback on successes and failures
- Can take several minutes for large imports
Step 6: Results
Review the import results:- Success count: How many locations were created/updated
- Failure count: How many had errors
- Error details: Specific reasons for failures
- Retry option: Fix issues and retry failed records
CSV File Format
Location CSV uses Title Case with Spaces for column headers (e.g., “Location Name”, not “LocationName”).
Required Columns
Your CSV must include these columns:Location Name- Location name (required, must be unique)Location Type- Type of location (required, see valid types below)To Name- Name on address (required if any address field provided)Address Line 1- Street address line 1 (required if any address field provided)City- City (required if any address field provided)State/Province- State or province (required if any address field provided)Zip Code- ZIP or postal code (required if any address field provided)Country- Country (required if any address field provided)
Optional Columns
ERP ID- ERP system ID for the locationAddress Line 2- Street address line 2Parent Location- Name of parent location (creates hierarchy)Status- “Active” or “Inactive” (defaults to “Active”)
Valid Location Types
TheLocation Type column must contain one of these values:
Site- A physical site or facilityWarehouse- A warehouse facilityCustomer- Customer location (special constraints apply - see below)House- Greenhouse or growing houseBin- Storage binSection- Warehouse sectionBay- Storage bayAisle- Warehouse aisleShip To- Shipping destinationUnknown- Unknown type
CSV Structure Examples
Simple Location Import
Location with Hierarchy
Complete Location Record
Business Rules
Customer Location Requirements
Critical: A Customer location is required for the location import system to function. Customer Location Rules:- Must Exist: A Customer location must exist in your system before importing other locations
- Maximum One: Your CSV can contain at most one Customer location
- No Parent Allowed: Customer locations cannot have a parent location - they are the root of your location hierarchy
- Acts as Root: All other location types must have a path leading back to the Customer location
- It will be imported first (before all other locations)
- It must not have a Parent Location value
- Multiple Customer locations in one CSV will cause validation errors
- The system will use the existing Customer location in your system
- All other locations will be organized under this existing Customer location
- Import will fail if no Customer location exists in the system
Site Location Behavior
Site locations have special automatic parent assignment: Automatic Parent Assignment:- If a Site location has no Parent Location specified, the system automatically assigns the Customer location as its parent
- This ensures Site locations are properly anchored in the hierarchy
- You can override this by explicitly specifying a different parent (such as another Site)
- All non-Site, non-Customer location types (Warehouse, House, Bin, Section, Bay, Aisle, Ship To) must have a path to a Site location through their parent chain
- The system validates that the parent hierarchy eventually leads to a Site location
- If no Site is found in the parent chain, the location will fail to import
- Site A automatically has Customer as parent (if not specified)
- Bin 10’s parent chain is: Bin 10 → Aisle 1 → Section A → Warehouse 1 → Site A
- The system validates that Site A exists in the chain
The system internally tracks a
siteParentId field for all non-Site/non-Customer locations. This field references the ultimate Site location in the parent chain and is automatically calculated during import.Address Validation (All-or-Nothing)
Important: If you provide ANY address field, you must provide ALL required address fields. Required address fields (when any address field is present):To NameAddress Line 1CityState/ProvinceZip CodeCountry
Address Line 2
Country Validation
The system only supports two countries:United States(default if empty)Canada
Parent Location Auto-Creation
When you specify aParent Location:
- System searches for existing location by name
- If not found, automatically creates the parent location with:
- Name from CSV
- Location Type: “Site” (all auto-created parents become Site type)
- Parent Location: Automatically assigned to the Customer location
- No ERP ID
- No address
- Then creates your location as a child of that parent
Auto-created parent locations are always created as Site type and placed under the Customer location in the hierarchy. If you need a different type, create the parent location explicitly in your CSV before the child locations.
Create vs Update Behavior
The import can create new locations or update existing ones: Finding existing locations:- System searches by
Location Name(exact match)
- Only the status can be updated if provided in CSV
- The location is counted as “updated” (verified in system)
- Other fields (address, type, parent) are NOT updated
- Use the UI to manually update other fields if needed
- Creates new location with all provided data
- New locations are ALWAYS created with Status: Active
- Status from CSV is ignored for new locations (see Status Handling below)
- Address is saved if all required address fields are provided
Status Handling
TheStatus column behavior differs for new vs existing locations:
For NEW locations (not yet in system):
- All new locations are created with Status: Active
- Status column is ignored for new locations
- You will see a warning if you specify “Inactive” for a new location
- To inactivate a new location, update it after import via the UI
- Empty or “Active”: Updates location to Active (if currently Inactive)
- “Inactive”: Updates location to Inactive (if currently Active)
- Any other value: Treated as Active
- No status change if current status matches CSV value
Status updates are applied using separate mutations after the location is created or found. This is why new locations must be created as Active first, then updated separately if needed.
Best Practices
Preparing Your CSV
CSV Preparation Tips
- Use UTF-8 encoding to support special characters
- Keep location names consistent and unique
- Use Title Case with Spaces for column headers
- Test with a small file first (5-10 locations)
- Validate your CSV in a spreadsheet before uploading
- Remove empty rows and columns
- Ensure address fields are complete (all-or-nothing rule)
Building Location Hierarchies
Flat import approach:- Create Main Warehouse
- Create Section A and B under Main Warehouse
- Create Aisles under Section A
Data Quality
Before importing:- Verify location names are unique and descriptive
- Ensure addresses are complete and accurate
- Check that location types match your warehouse structure
- Confirm parent location names match exactly
- Validate country is “United States” or “Canada”
Large Imports
For importing hundreds or thousands of locations:- Break into smaller batches (100-200 locations per file)
- Import top-level locations first
- Then import child locations
- Test with one batch before importing all
- Monitor results carefully for each batch
Troubleshooting
File Upload Fails
If upload doesn’t work:- Check file size (very large files may timeout)
- Verify file is CSV format (not Excel .xlsx)
- Ensure file encoding is UTF-8
- Try a smaller file to isolate the issue
- Check your internet connection
Format Validation Errors
Common format errors: Missing required columns:- Check that all required column headers are present
- Verify exact spelling: “Location Name”, “Location Type”, etc.
- Use Title Case with Spaces (not PascalCase or snake_case)
- Review valid location types list above
- Invalid types cause validation errors and block the import
- Ensure location type exactly matches one of the valid values
- Remember: all-or-nothing rule for addresses
- If you include ANY address field, include ALL required fields
- Check for empty cells in required address columns
- Only “United States” or “Canada” are supported
- Leave empty to default to “United States”
- Any other value will cause an error
Data Validation Issues
Common data errors: Parent location not found:- System will auto-create parent locations
- Ensure parent location names match exactly
- Check for typos or extra spaces
- System will update existing locations with same name
- Verify this is the intended behavior
- Consider using different names if you want separate locations
- Verify Status column contains “Active” or “Inactive”
- Status is set after location creation
- Check import results for status update errors
Import Failures
If individual locations fail during import:- Review the error message for that location
- Common causes:
- Required field missing despite format validation passing
- Invalid data constraint
- Parent location creation failed
- Fix the issue in your CSV
- Use the Retry button to import only failed records
Partial Success
If some locations import but others fail:- Successful imports are NOT rolled back
- Failed locations can be retried after fixing
- Or manually create the failed locations
- Check if parent location auto-creation caused issues
The import handles each location independently. One failed location won’t prevent others from succeeding.
After Import
Verify Imported Data
After successful import:- Navigate to Locations list
- Search for imported locations by name
- Open location details to verify:
- Location type is correct
- Address is accurate
- Parent-child relationships are correct
- Status is set properly
Fix Issues
If you find issues after import:- Edit locations directly in the UI
- Update addresses or location types
- Adjust parent-child relationships
- Change status (activate/inactivate)
- No need to delete and re-import
Next Steps
After importing locations:- Organize your location hierarchy
- Assign inventory to locations
- Set up location-specific settings
- Train staff on warehouse organization
Next Steps
- Manage Locations - Learn about location management
- Import Items - Bulk import your item catalog
- Import Customers - Bulk import customers