Manufacturer Mapping
Manufacturer mapping connects Shopify vendor names to PromoStandards supplier codes. This ensures products are correctly linked to their suppliers for inventory sync and updates.
Overview
When products are imported or exist in your store, the Shopify vendor field may not exactly match the PromoStandards supplier code. Manufacturer mapping bridges this gap:
Shopify Vendor: "SanMar Corporation"
↓ (mapping)
PromoStandards Code: "SanMar"Why Mapping Matters
Inventory Sync
Without proper mapping, PromoSync cannot:
- Query the correct supplier for inventory
- Update stock levels accurately
- Track product availability
Price Updates
Proper mapping enables:
- Automatic price updates from suppliers
- Correct pricing tier application
- MDP rule matching
Product Recognition
Mapping helps PromoSync:
- Identify existing products for sync
- Prevent duplicate imports
- Maintain product relationships
Accessing Manufacturer Mapping
- Navigate to PromoSync > Settings
- Click Manufacturers or Vendor Mapping
- View and manage your mappings
Default Mappings
PromoSync includes default mappings for common suppliers:
| Shopify Vendor | PromoStandards Code |
|---|---|
| SanMar | SanMar |
| alphabroder | ALPH |
| S&S Activewear | SS |
| Hit Promotional Products | HIT |
| PCNA | PCNA |
| Gemline | GEMN |
| Koozie Group | KOZG |
| HPG | HPGL |
Creating Custom Mappings
Adding a Mapping
- Click Add Mapping
- Enter the Shopify vendor name (exact match)
- Select the PromoStandards supplier code
- Click Save
{
"mapping": {
"vendor": "My SanMar Products",
"supplier_code": "SanMar",
"enabled": true
}
}Handling Variations
Create multiple mappings for vendor name variations:
{
"mappings": [
{"vendor": "SanMar", "supplier_code": "SanMar"},
{"vendor": "SanMar Corporation", "supplier_code": "SanMar"},
{"vendor": "SANMAR", "supplier_code": "SanMar"},
{"vendor": "sanmarr", "supplier_code": "SanMar"}
]
}Case Sensitivity
Mappings can be case-sensitive or case-insensitive:
{
"mapping_settings": {
"case_sensitive": false
}
}When case-insensitive:
- “SanMar” matches “SANMAR”
- “alphabroder” matches “Alphabroder”
Supplier Code Reference
Major Apparel Suppliers
| Supplier | Code | Common Vendors |
|---|---|---|
| SanMar | SanMar | SanMar, SanMar Corporation |
| alphabroder | ALPH | alphabroder, Alpha Broder |
| S&S Activewear | SS | S&S, S&S Activewear |
| TSC Apparel | TSCA | TSC, TSC Apparel |
Promotional Product Suppliers
| Supplier | Code | Common Vendors |
|---|---|---|
| Hit Promotional | HIT | Hit, HIT Promotional |
| PCNA | PCNA | PCNA, Polyconcept |
| Gemline | GEMN | Gemline |
| Koozie Group | KOZG | Koozie, BIC Graphic |
| HPG | HPGL | HPG, Hirsch |
Brand-Specific
Some brands have their own supplier codes:
| Brand | Code | Notes |
|---|---|---|
| Bella+Canvas | BELL | Direct from manufacturer |
| Gildan | GILD | Direct programs |
| Nike | NIKE | Nike Golf, Nike Team |
| Adidas | ADID | Corporate programs |
Bulk Mapping
Import Mappings
Import multiple mappings via CSV:
vendor,supplier_code,enabled
"SanMar Corporation",SanMar,true
"Alpha Broder",ALPH,true
"S&S Active",SS,true- Click Import Mappings
- Upload your CSV file
- Review the preview
- Click Import
Export Mappings
Export current mappings:
- Click Export Mappings
- Download the CSV file
- Edit as needed
- Re-import with changes
Auto-Detection
PromoSync can suggest mappings based on product data:
Product Analysis
When products are imported, PromoSync analyzes:
- Part ID patterns
- Product descriptions
- Existing tags
- Pricing structures
Suggested Mappings
{
"suggestions": [
{
"vendor": "Unknown Vendor",
"suggested_code": "SanMar",
"confidence": 0.85,
"reason": "Part ID pattern matches SanMar format"
}
]
}Applying Suggestions
- Review suggested mappings
- Verify accuracy
- Accept or reject suggestions
- Suggestions become permanent mappings
Mapping Rules
Exact Match
Standard mapping requires exact vendor name match:
{
"type": "exact",
"vendor": "SanMar Corporation",
"supplier_code": "SanMar"
}Contains Match
Match vendors containing specific text:
{
"type": "contains",
"pattern": "SanMar",
"supplier_code": "SanMar"
}Matches: “SanMar”, “SanMar Corp”, “My SanMar Store”
Regex Match
For complex patterns:
{
"type": "regex",
"pattern": "^(san|SAN)\\s*[mM]ar",
"supplier_code": "SanMar"
}Testing Mappings
Test Individual Products
- Navigate to a product
- Click Test Mapping
- See which mapping applies
- Verify correct supplier
Bulk Verification
- Go to Settings > Manufacturers
- Click Verify All Mappings
- Review products with:
- Matched mappings
- No mapping found
- Multiple matches (conflicts)
Handling Unmapped Products
Identifying Unmapped Products
- Go to PromoSync > Products
- Filter by Unmapped status
- Review vendor names
Resolution Options
| Option | When to Use |
|---|---|
| Create mapping | Recognized supplier vendor |
| Manual assignment | One-off product |
| Skip sync | Non-PromoStandards product |
Manual Supplier Assignment
For individual products:
- Open the product in PromoSync
- Click Edit Supplier
- Select the correct supplier code
- Click Save
Conflict Resolution
Multiple Matches
When multiple mappings could apply:
{
"conflict": {
"vendor": "SanMar Brands",
"matches": [
{"pattern": "SanMar", "code": "SanMar"},
{"pattern": "Brands", "code": "OTHER"}
]
}
}Resolution:
- Review conflicting mappings
- Adjust patterns to be more specific
- Set priority order if needed
Priority Settings
{
"mapping_priority": [
{"type": "exact", "priority": 1},
{"type": "contains", "priority": 2},
{"type": "regex", "priority": 3}
]
}API Integration
Query Mappings
query ManufacturerMappings {
manufacturerMappings(first: 100) {
edges {
node {
id
vendor
supplierCode
type
enabled
}
}
}
}Create Mapping
mutation CreateMapping($input: ManufacturerMappingInput!) {
manufacturerMappingCreate(input: $input) {
mapping {
id
vendor
supplierCode
}
userErrors {
field
message
}
}
}Python Example
# Create manufacturer mapping
def create_mapping(vendor, supplier_code):
mapping = {
"vendor": vendor,
"supplier_code": supplier_code,
"type": "exact",
"enabled": True
}
return promosync.create_manufacturer_mapping(mapping)
# Create multiple mappings
vendors = [
("SanMar", "SanMar"),
("SanMar Corporation", "SanMar"),
("Alpha Broder", "ALPH"),
]
for vendor, code in vendors:
create_mapping(vendor, code)Troubleshooting
Products Not Syncing
- Check vendor name in Shopify
- Verify mapping exists for that vendor
- Check mapping is enabled
- Test mapping manually
Wrong Supplier Matched
- Review all mappings for conflicts
- Check mapping pattern specificity
- Adjust priorities if needed
- Test with specific products
Mapping Not Found
- Vendor name may have extra spaces
- Check for special characters
- Try case-insensitive matching
- Create exact match mapping
Best Practices
1. Standardize Vendor Names
Before mapping, standardize your vendor names in Shopify.
2. Use Exact Matches When Possible
Exact matches are more reliable than pattern matches.
3. Document Custom Mappings
Keep notes on why custom mappings exist.
4. Regular Audits
Periodically review mappings for:
- Unused mappings
- New vendor variations
- Supplier code changes
5. Test Before Import
Verify mappings work before bulk imports.
6. Handle Edge Cases
Create specific mappings for unusual vendor names.