Importing File Data
Import large numbers of files efficiently using bulk upload, CSV import, and automated tools.
Import Methods Overview
Section titled “Import Methods Overview”Available import methods:
1. Bulk file upload (UI)2. CSV import with file URLs3. FTP/SFTP batch upload4. API programmatic import5. Cloud storage syncChoose based on:
< 50 files: Bulk upload (UI)50-500 files: CSV import500+ files: API or FTPOngoing: Cloud storage syncBulk File Upload (UI)
Section titled “Bulk File Upload (UI)”Using File Uploader
Section titled “Using File Uploader”Upload multiple files:
Step-by-step:
1. Alva → Files → Upload Files2. Click upload area or drag files3. Select multiple files (Ctrl/Cmd+Click)4. Wait for upload completion5. Verify all files uploadedSupported formats:
Documents: PDF, DOCX, XLSX, PPTXImages: JPG, PNG, GIF, SVGVideo: MP4, MOV, AVI, WebMAudio: MP3, WAV, AACArchives: ZIP, RAR, 7ZOther: All file types supportedUpload Limits
Section titled “Upload Limits”File constraints:
Per-file limits:
Max file size: 5 GB per fileRecommended: < 500 MB for best performance
Larger files: Contact support for assistanceBatch limits:
Files per batch: 100 files (recommended)Total batch size: 10 GB (recommended)
Larger batches: Split into multiple uploadsProgress Tracking
Section titled “Progress Tracking”Monitor upload:
Progress indicators:
Individual files:• File name• Size• Upload progress (%)• Status (Uploading/Complete/Failed)
Overall:• Total files: 247• Completed: 185• Failed: 2• Remaining: 60• Estimated time: 5 minutesHandle failures:
Failed uploads:1. Click "Retry Failed"2. Or remove and re-add3. Check file not corrupted4. Verify file size within limitsCSV File Import
Section titled “CSV File Import”CSV Format
Section titled “CSV Format”Import files via CSV:
CSV structure:
filename,file_url,product_sku,expiry_days,download_limit,tagsChapter-1.pdf,https://example.com/files/ch1.pdf,COURSE-001,60,5,"course,chapter1"Chapter-2.pdf,https://example.com/files/ch2.pdf,COURSE-001,60,5,"course,chapter2"Bonus.zip,https://example.com/files/bonus.zip,COURSE-001,90,10,"course,bonus"Ebook.pdf,https://example.com/files/ebook.pdf,EBOOK-123,30,3,"ebook,pdf"Required columns:
filename: Display name for filefile_url: URL to download file from
Optional columns:product_sku: Auto-map to productexpiry_days: Download expiry (default: 60)download_limit: Max downloads (default: 5)tags: Comma-separated tagsCreating Import CSV
Section titled “Creating Import CSV”Prepare CSV file:
Option 1: Spreadsheet:
1. Open Excel/Google Sheets2. Create columns: filename, file_url, product_sku, etc.3. Fill in data4. Export as CSV5. Save: file-import.csvOption 2: Generate from list:
# Python script to generate CSV from file listimport csvimport os
files_dir = '/path/to/files/'output_csv = 'import.csv'
with open(output_csv, 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['filename', 'file_url', 'product_sku'])
for filename in os.listdir(files_dir): if filename.endswith('.pdf'): file_url = f'https://example.com/files/{filename}' sku = filename.split('-')[0] # Extract SKU from filename writer.writerow([filename, file_url, sku])Importing CSV
Section titled “Importing CSV”Upload CSV file:
Import process:
1. Alva → Files → Import from CSV2. Upload CSV file3. Preview import: • Shows first 10 rows • Validates format • Identifies errors4. Map columns (if not standard)5. [Start Import]6. Monitor progressValidation:
✓ CSV format valid✓ All required columns present✓ File URLs accessible⚠ 3 product SKUs not found❌ 2 file URLs invalid
Errors must be fixed before importColumn Mapping
Section titled “Column Mapping”Map CSV columns:
If columns differ:
CSV Import → Column Mapping
Your CSV → Alva FieldFile Name → filenameDownload URL → file_urlSKU → product_skuDays Valid → expiry_daysMax Downloads → download_limitCategories → tagsSave mapping:
☑ Save column mapping for future importsName: "Standard Product Import"Reuse: Next time, mapping auto-appliedFTP/SFTP Upload
Section titled “FTP/SFTP Upload”FTP Access
Section titled “FTP Access”Enable FTP upload:
Setup FTP:
Settings → Advanced → FTP Upload☑ Enable FTP file upload
Credentials generated:Host: ftp.alvaapps.comPort: 21 (FTP) or 22 (SFTP)Username: shop_12345_uploadPassword: [Generated password]
Path: /uploads/shop_12345/Security:
⚠️ Use SFTP (port 22) for encryption⚠️ Change password regularly⚠️ Whitelist IP addresses (optional)FTP Client Setup
Section titled “FTP Client Setup”Connect via FTP client:
FileZilla example:
1. Open FileZilla2. Host: ftp.alvaapps.com3. Username: shop_12345_upload4. Password: [Generated password]5. Port: 22 (SFTP)6. [Quickconnect]Upload files:
1. Local site: Browse to files folder2. Remote site: /uploads/shop_12345/3. Select files4. Right-click → Upload5. Wait for completionAuto-Import from FTP
Section titled “Auto-Import from FTP”Automatic processing:
Configure auto-import:
Settings → Advanced → FTP Upload → Auto-Import☑ Enable automatic import
Schedule: Every hour (default)or: Real-time (Enterprise)
Actions:☑ Import uploaded files automatically☑ Match to products by filename/SKU☑ Send notification when complete☑ Move processed files to /processed/File naming convention:
For auto-mapping:{product_sku}_{filename}.pdf
Examples:COURSE-001_chapter-1.pdf → Maps to SKU: COURSE-001EBOOK-123_guide.pdf → Maps to SKU: EBOOK-123
No SKU: Manual mapping requiredAPI Import
Section titled “API Import”Using API for Import
Section titled “Using API for Import”Programmatic file import:
API endpoint:
POST /api/files/importAuthorization: Bearer {api_key}Content-Type: application/json
Body:{ "files": [ { "filename": "Chapter-1.pdf", "url": "https://storage.example.com/ch1.pdf", "product_sku": "COURSE-001", "expiry_days": 60, "download_limit": 5, "tags": ["course", "chapter1"] }, { "filename": "Chapter-2.pdf", "url": "https://storage.example.com/ch2.pdf", "product_sku": "COURSE-001", "expiry_days": 60, "download_limit": 5, "tags": ["course", "chapter2"] } ], "auto_map": true, "notify": true}API response:
{ "status": "success", "imported": 2, "failed": 0, "files": [ { "filename": "Chapter-1.pdf", "file_id": "file_abc123", "status": "imported", "product_mapped": true }, { "filename": "Chapter-2.pdf", "file_id": "file_def456", "status": "imported", "product_mapped": true } ], "job_id": "import_xyz789"}Batch Import Script
Section titled “Batch Import Script”Example import script:
Node.js:
const fetch = require('node-fetch');const fs = require('fs');
const API_KEY = process.env.ALVA_API_KEY;const API_URL = 'https://yourshop.com/api/files/import';
async function importFiles(filelist) { const files = filelist.map(file => ({ filename: file.name, url: file.url, product_sku: file.sku, expiry_days: 60, download_limit: 5 }));
const response = await fetch(API_URL, { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ files: files, auto_map: true }) });
const result = await response.json(); console.log(`Imported: ${result.imported} files`); console.log(`Failed: ${result.failed} files`);
return result;}
// Load files from JSONconst filelist = JSON.parse(fs.readFileSync('files.json'));importFiles(filelist);Cloud Storage Sync
Section titled “Cloud Storage Sync”Sync from Cloud Storage
Section titled “Sync from Cloud Storage”Supported providers:
Available integrations:
☑ Google Drive☑ Dropbox☑ OneDrive☑ Amazon S3☑ Cloudflare R2☑ BackBlaze B2Google Drive Integration
Section titled “Google Drive Integration”Connect Google Drive:
Setup:
1. Settings → Integrations → Google Drive2. [Connect Google Drive]3. Authorize access4. Select folder to sync5. Configure sync settingsSync settings:
Folder: /Digital Products/Sync frequency: Every 6 hoursSubfolder handling: Create packs from subfoldersFile naming: Preserve Drive filenamesAuto-map: ☑ By filename (SKU prefix)Notification: ☑ Email on sync completeSync process:
1. Scan Google Drive folder2. Detect new/changed files3. Download to Alva storage4. Auto-map to products (if enabled)5. Send notificationDropbox Integration
Section titled “Dropbox Integration”Connect Dropbox:
Setup:
1. Settings → Integrations → Dropbox2. [Connect Dropbox]3. Authorize app4. Select folder: /Alva Digital Downloads/5. [Start Sync]Sync options:
☑ Two-way sync (Dropbox ↔ Alva)○ One-way sync (Dropbox → Alva only)
Two-way:• Upload to Dropbox → Syncs to Alva• Upload to Alva → Syncs to Dropbox
One-way:• Dropbox is source of truth• Changes only flow Dropbox → AlvaAmazon S3 Sync
Section titled “Amazon S3 Sync”S3 bucket sync:
Configuration:
Settings → Integrations → Amazon S3
Bucket: your-digital-filesRegion: us-east-1Access Key: AKIA...Secret Key: [Hidden]
Prefix: products/Sync: Every 12 hoursSync rules:
Include: *.pdf, *.zip, *.mp4Exclude: *.tmp, *.logMax file size: 5 GBAuto-map: By S3 object key (contains SKU)Import Settings
Section titled “Import Settings”Default Import Settings
Section titled “Default Import Settings”Configure defaults:
File defaults:
Settings → Import Settings → Defaults
Expiry days: 60 (applied to all imports)Download limit: 5Storage location: Primary (R2)CDN: ☑ Enable immediatelyVisibility: Private (download link required)Product mapping:
Auto-map: ☑ EnabledMatch by: ☑ Product SKU in filename ☑ Product title match (fuzzy) ☐ Manual mapping only
Confidence threshold: 80% (for fuzzy matching)Unmapped files: Leave unmapped, notify adminImport Notifications
Section titled “Import Notifications”Get notified:
Notification settings:
Settings → Import Settings → Notifications
☑ Email when import complete☑ Email if import errors☐ SMS for large imports (1000+ files)
Recipients:• shop@example.com• manager@example.com
Email includes:• Import summary• Success/failure count• Unmapped files• Error detailsTroubleshooting Imports
Section titled “Troubleshooting Imports”Common Issues
Section titled “Common Issues”Files not importing:
Check:
1. File size within limits (< 5 GB)2. File URL accessible (test in browser)3. Correct file format4. Network connection stable5. Storage quota availableTest file URL:
curl -I https://example.com/files/test.pdf
Expected: 200 OKIf 404: File not foundIf 403: Access denied (check permissions)CSV import errors:
Error: "Invalid CSV format"Solution: Check CSV structure, ensure proper commas, no missing fields
Error: "File URL not accessible"Solution: Verify URLs return 200 OK, not 404/403
Error: "Product SKU not found"Solution: Verify SKU exists in Shopify, check for typos
Error: "Duplicate filename"Solution: Rename files to be unique, or enable overwriteFTP upload issues:
Problem: Can't connect to FTPSolution:1. Verify credentials correct2. Check firewall not blocking port 21/223. Use SFTP (port 22) not FTP (port 21)4. Test with different FTP client
Problem: Upload stalls/timeoutSolution:1. Use smaller batches2. Check internet connection3. Enable passive mode4. Try during off-peak hoursImport Validation
Section titled “Import Validation”Pre-Import Validation
Section titled “Pre-Import Validation”Validate before importing:
Validation checks:
1. File accessibility2. File size within limits3. Format supported4. Product SKUs exist5. No duplicate filenames6. Metadata validValidation report:
Total files: 247✓ Valid: 240⚠ Warnings: 5 (large files)❌ Errors: 2 (invalid URLs)
Errors:• file_123.pdf: URL returns 404• file_456.zip: File size exceeds 5GB
Warnings:• file_789.mp4: Large file (3.2GB), upload may take time
Action: Fix errors before proceedingPost-Import Verification
Section titled “Post-Import Verification”Verify import success:
Check:
☐ All files imported☐ Files mapped to correct products☐ Download links work☐ Expiry/limits set correctly☐ Tags applied☐ No corrupted filesTest downloads:
1. Select random sample (10 files)2. Generate download links3. Download files4. Verify file integrity5. Check file opens correctlyBest Practices
Section titled “Best Practices”1. Organize Files Before Import
Section titled “1. Organize Files Before Import”Preparation:
✓ Consistent naming convention✓ Include SKU in filename (for auto-mapping)✓ Group related files in folders✓ Remove unnecessary files✓ Optimize file sizesNaming convention:
Good:COURSE-001_Chapter-1.pdfCOURSE-001_Chapter-2.pdfEBOOK-123_Guide.pdf
Bad:file1.pdfdownload.pdfuntitled_final_FINAL_v3.pdf2. Import in Batches
Section titled “2. Import in Batches”Batch strategy:
Small batches (< 100 files): Less risk, easier to fix issuesTest batch first: Import 5-10 files, verify, then full importBenefits:
• Faster individual imports• Easier error handling• Can pause between batches• Less strain on system3. Use CSV for Large Imports
Section titled “3. Use CSV for Large Imports”Why CSV:
✓ Easy to review before import✓ Can edit in spreadsheet✓ Reusable for future imports✓ Version control friendly✓ Audit trail4. Validate Before Importing
Section titled “4. Validate Before Importing”Pre-import validation:
✓ Test file URLs✓ Verify product SKUs exist✓ Check file sizes✓ Ensure no duplicates✓ Preview in small batchSaves time: Catching errors before import
5. Document Your Process
Section titled “5. Document Your Process”Documentation:
✓ CSV template used✓ Naming convention✓ Import settings✓ Date of import✓ Success metrics✓ Issues encounteredWhy: Reproducible imports, troubleshooting reference
Next Steps
Section titled “Next Steps”- Migrating from Other Apps - Migration guide
- Bulk File Operations - Managing files in bulk
- Data Migration Best Practices - Advanced tips