| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Inventory (stock) • Sales (sale_management) • Discuss (mail) • Invoicing (account) |
| Lines of code | 1792 |
| Technical Name |
pragtech_markettime_integration |
| License | OPL-1 |
| Website | http://pragtech.co.in |
| Versions | 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Inventory (stock) • Sales (sale_management) • Discuss (mail) • Invoicing (account) |
| Lines of code | 1792 |
| Technical Name |
pragtech_markettime_integration |
| License | OPL-1 |
| Website | http://pragtech.co.in |
| Versions | 16.0 17.0 18.0 19.0 |
Compatible with Odoo v16 -v19 Community & Enterprise

Sync MarketTime seamlessly with Odoo
The MarketTime integration app delivers bidirectional, real-time synchronization between MarketTime's sales order platform and Odoo 16 ERP, perfect for wholesale and manufacturing businesses managing reps, orders, catalogs and inventory. It automates data flows for products, customers (with up to 250 ship-to addresses), and smart order imports via a review wizard, using incremental sync on modified timestamps to keep everything current without duplicates. With intelligent matching (exact, fuzzy 90%+, or new creation), multi-address support, sales team mapping and a user-friendly dashboard for stats, it eliminates manual entry, ensures accuracy and unifies field sales with ERP operations.
Sell wholesale using MarketTime. Run operations on Odoo
Features that Keep Data Clean
Incremental Sync with MarketTime API
Only records modified since the last import are fetched, ensuring faster imports, lower API load and no repeated data processing.
Batch Imports with Safe Limits
Products, customers and orders are imported in configurable batches, allowing large datasets to be handled reliably without performance issues.
Intelligent Customer Matching
Customers are matched using MarketTime IDs first, then phone numbers, and finally fuzzy address matching at a calibrated 90% threshold — reducing duplicates while keeping human control where it matters.
Order Review Wizard
Before orders touch Odoo, users can review, validate customer matches and selectively import orders — preventing incorrect data from entering the system.
Automatic Record Creation
Missing products or customers are created automatically during order import, ensuring sales teams are never blocked by incomplete master data.
Multi-Address Customer Support
Handles up to 250 ship-to addresses per customer with proper parent-child structure, reflecting real wholesale and distributor relationships.
Duplicate Prevention Built In
MarketTime IDs, normalized SKUs and PO number checks prevent duplicate products, customers and orders across imports.
Sales Team & RepGroup Mapping
Orders are automatically assigned to the correct Odoo sales teams based on MarketTime RepGroup IDs, keeping reporting and ownership accurate.
Robust Error Handling & Logging
From API timeouts to record-level issues, errors are logged clearly and imports continue safely wherever possible.
Import Statistics Dashboard
Created, updated and skipped records are tracked and displayed, giving teams full visibility into every sync operation.
Module Installation
Step 1: Download the Module
Download the marketime_integration module folder and place it inside your Odoo addons directory.
Step 2: Update Apps List
- Login to Odoo as Administrator
- Go to the Apps menu
- Click on Update Apps List (Enable Developer Mode if required)
- Click Update in the confirmation dialog
Step 3: Install the Module
- Remove the "Apps" filter from the search bar
- Search for MarketTime Integration
- Click Install
- Wait for the installation to complete
Python Dependencies Installation
After installing the module, install the required Python libraries by running the following command on your Odoo server:
pip install requests rapidfuzz
--break-system-packages
Note: The --break-system-packages
flag is required for standard Odoo system installations.
If you are using a virtual environment, this flag can be
omitted.
Post-Installation Configuration
- Go to Settings → Companies → Your Company
- Open the MarketTime Integration tab
- Enable MarketTime Integration
- Enter your MarketTime API credentials
- Click Test Connection to verify
API Configuration
To configure the MarketTime API connection, navigate to:
Configuration Fields
| Field Name | Description | Required |
|---|---|---|
| Enable MarketTime Integration | Master toggle to enable or disable the integration. | Yes |
| MarketTime API URL | Base URL for the MarketTime API (default value provided). | Yes |
| API Key | Your MarketTime API key (stored securely as a password field). | Yes |
| MarketTime ID (WhoAmI) | Your MarketTime ID (e.g., M12088R2403 or R12345). | Yes |
| Manufacturer ID | Optional Manufacturer ID if applicable. | No |
| RepGroup ID | RepGroup ID used for customer filtering (e.g., R12345). | No |
| Enable Auto Sync | Enable automatic scheduled synchronization. | No |
Import Settings
Configure batch sizes and behavior for each import type to optimize performance and API usage.
| Setting | Default Value | Description |
|---|---|---|
| Products Batch Size | 50 | Number of products to fetch per import (maximum 100). |
| Customers Batch Size | 50 | Number of customers to fetch per import (maximum 50). |
| Orders Batch Size | 50 | Number of orders to fetch for review (maximum 100). |
Important
The module uses incremental synchronization based
on
dateModified timestamps.
Each import fetches only the records modified since the last
successful import,
ensuring faster performance and reduced API load.
MarketTime Import Features
The MarketTime Integration module provides three structured import mechanisms, each designed with performance, data accuracy, and scalability in mind.
Products Import
Purpose: Import product catalog from MarketTime into Odoo.
Key Features
- Batch processing (default: 50, max: 100)
- Incremental sync using
dateModified - Automatic product creation & updating
- Duplicate prevention using MarketTime ID
- Fallback matching by SKU (normalized matching)
- Case-insensitive SKU comparison (ignores spaces & hyphens)
- Automatic commit every 200 records
Import Process
- Navigate to Settings → Companies → Your Company → MarketTime Integration
- Set Products Batch Size (recommended: 50 for first import)
- Click "Import Products"
- System fetches products modified since last import
- View progress (Created / Updated / Skipped)
- Repeat import for large catalogs if required
Customers Import
Purpose: Import customers with billing and shipping structures.
Key Features
- Batch processing (default: 50, max: 50)
- Incremental sync using
dateModified - Up to 250 Ship-To addresses per customer
- Multiple Bill-To addresses support
- Hierarchical parent-child address structure
- Duplicate prevention using MarketTime ID
- State & country mapping
- Automatic commit every 50 records
Address Handling
- Main Customer: Parent partner with MarketTime ID
- Ship-To: Child contact (type="delivery")
- Bill-To: Child contact (type="invoice")
- Matching: By phone or full address to prevent duplicates
Orders Import
Purpose: Import sales orders with intelligent customer matching.
Key Features
- Order Review Wizard for selective import
- Exact & Fuzzy customer matching (90%+ similarity)
- Visual status indicators (Green / Orange / Red)
- Manual customer selection for fuzzy matches
- Automatic creation of missing products & customers
- Payment terms synchronization
- Shipping method tracking
- Sales team mapping via RepGroup
- PO Number duplicate prevention
Import Process
- Click "Import Orders"
- Review orders in the Order Review Wizard
- Check customer match status (color indicators)
- Select orders to import
- Click "Import Selected Orders"
- Orders are created as draft Quotations
- Review & confirm in Odoo Sales
Customer Match Status
| Color | Status | Description |
|---|---|---|
| Green | Exact Match | Matched by MarketTime ID or phone |
| Orange | Fuzzy Match | 90%+ address similarity (manual selection required) |
| Red | New Customer | No match found — new customer will be created |
Intelligent Customer Fuzzy Matching
The module implements a sophisticated three-strategy approach for accurate customer identification.
Strategy 1: Exact Match by MarketTime ID
Matches customers using the MarketTime retailerID.
This is the most reliable and preferred matching method.
Strategy 2: Exact Match by Phone Number
- Removes all non-digit characters
- Keeps last 10 digits (removes country codes)
- Compares against stored normalized phone numbers
Strategy 3: Fuzzy Match by Address (90% Threshold)
- Normalize address (lowercase, remove punctuation & spaces)
- Filter customers by exact city match
- Calculate similarity using Levenshtein distance (RapidFuzz)
- Compare both street and street2 fields
- +10 score boost if ZIP codes match
- Select best match if score ≥ 90%
- Show multiple potential matches for manual selection
Intelligent Batch Processing
Products Import
- Batch fetch (default: 50)
- In-memory processing
- Commit every 200 records
- Stores last
dateModified - Resumes automatically on next run
Customers Import
- Batch fetch (default: 50)
- Handles up to 250 ship-to addresses
- Commit every 50 customers
- Stores last
dateModified
Orders Import
- Fetch for review (default: 50, max: 100)
- Wizard-based selective import
- Commit per order
- Continues even if individual orders fail
- Updates timestamp after completion
self.env.cr.commit() calls to ensure data
persistence.
If interrupted, the next import resumes from the last successful
timestamp.
Comprehensive Error Handling
API-Level
- 60-second timeout handling
- HTTP status validation
- Empty response handling
- JSON parsing protection
- Rate limiting (0.5s delay)
Record-Level
- Invalid/missing MarketTime IDs
- Deleted record handling
- Missing required fields
- State & country lookup validation
- Customer matching safeguards
Import-Level
- Transaction rollback on critical errors
- Continue-on-error logic
- Detailed server logging
- User-friendly notifications
- Skipped record statistics
Logging & Debugging
All operations are logged in the Odoo server log with the prefix MARKETTIME.
[2025-01-27 10:15:23,456] INFO markettime_integration
models.res_company:
MARKETTIME PRODUCTS: Starting product import
MARKETTIME PRODUCTS: Batch commit - 200 records processed
Connection Testing
After entering your API credentials, always verify the connection before starting imports.
- Click the "Test Connection" button
- A notification will indicate success or failure
- If successful, you will see:
✓ Successfully connected to MarketTime API - If failed, verify your API key and network configuration
- Ensure API key is valid and not expired
- Verify server has internet connectivity
- Check API endpoint access:
https://publicapi.markettime.com/ping - Confirm firewall allows outbound HTTPS requests
Troubleshooting
| Issue | Solution |
|---|---|
| Connection test fails | Verify API key, check internet connectivity, ensure firewall allows HTTPS to publicapi.markettime.com |
| Products not importing | Check MarketTime ID (WhoAmI), verify products exist in MarketTime, review server logs |
| Customers import shows 0 created/updated | Verify RepGroup ID, check dateModified timestamp, ensure customers were modified recently |
| Orders wizard shows no orders | Ensure orders exist with dateModified greater than last import date and API permissions are correct |
| Too many fuzzy match results | Review and merge duplicate customers in Odoo |
| Import is very slow | Reduce batch size, check CPU/memory resources, verify API latency |
| Products created without SKU | Verify itemNumber exists in MarketTime product data |
| Duplicate orders created | Ensure PO Numbers are unique (orders matched by PO Number) |
| Address normalization not working | Install RapidFuzz: pip install rapidfuzz
--break-system-packages |
| Sales team not assigned | Map RepGroup IDs to Sales Teams in Sales → Configuration → Sales Teams |
Checking Server Logs
- Connect to your Odoo server via SSH
- Navigate to the log directory (commonly
/var/log/odoo/or checkodoo.conf) - Search for MarketTime entries:
grep "MARKETTIME" odoo-server.log - Look for ERROR or WARNING level messages
Empower businesses through intelligent, cost-effective solutions
Modern businesses face complex challenges. Our Odoo apps are designed to turn those challenges into opportunities - making your workflows intuitive, efficient and scalable. Crafted to make your business run smoother, faster and smarter.
Experience the difference of solutions built for real business needs, not just features.
MarketTime Odoo Integration
One-time Setup | 90 Days Support | Multilingual Compatibility
What's included in this
User Manual for Easy Onboarding
90 Days Support (Monday to Friday, 10 AM – 7 PM IST)
One-Time Setup for Seamless Integration
We support for English / French / Spanish at an additional cost
Works & tested on standard installations of Odoo with no third party apps
Free support only for odoo installations with no third party apps
Paid support availaible for Odoo installations with third party apps.
Our Service Offerings
Odoo Dedicated Resources
Odoo Success Packs
Odoo Turnkey Projects
Get Instant Personalized Demo
CONTACT
Related Products
Powerful apps, seamless integrations and expert support.
Optimize your business with our perfect Odoo strategy.

Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module