AdvancedManufacturer Mapping

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

  1. Navigate to PromoSync > Settings
  2. Click Manufacturers or Vendor Mapping
  3. View and manage your mappings

Default Mappings

PromoSync includes default mappings for common suppliers:

Shopify VendorPromoStandards Code
SanMarSanMar
alphabroderALPH
S&S ActivewearSS
Hit Promotional ProductsHIT
PCNAPCNA
GemlineGEMN
Koozie GroupKOZG
HPGHPGL

Creating Custom Mappings

Adding a Mapping

  1. Click Add Mapping
  2. Enter the Shopify vendor name (exact match)
  3. Select the PromoStandards supplier code
  4. 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

SupplierCodeCommon Vendors
SanMarSanMarSanMar, SanMar Corporation
alphabroderALPHalphabroder, Alpha Broder
S&S ActivewearSSS&S, S&S Activewear
TSC ApparelTSCATSC, TSC Apparel

Promotional Product Suppliers

SupplierCodeCommon Vendors
Hit PromotionalHITHit, HIT Promotional
PCNAPCNAPCNA, Polyconcept
GemlineGEMNGemline
Koozie GroupKOZGKoozie, BIC Graphic
HPGHPGLHPG, Hirsch

Brand-Specific

Some brands have their own supplier codes:

BrandCodeNotes
Bella+CanvasBELLDirect from manufacturer
GildanGILDDirect programs
NikeNIKENike Golf, Nike Team
AdidasADIDCorporate 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
  1. Click Import Mappings
  2. Upload your CSV file
  3. Review the preview
  4. Click Import

Export Mappings

Export current mappings:

  1. Click Export Mappings
  2. Download the CSV file
  3. Edit as needed
  4. 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

  1. Review suggested mappings
  2. Verify accuracy
  3. Accept or reject suggestions
  4. 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

  1. Navigate to a product
  2. Click Test Mapping
  3. See which mapping applies
  4. Verify correct supplier

Bulk Verification

  1. Go to Settings > Manufacturers
  2. Click Verify All Mappings
  3. Review products with:
    • Matched mappings
    • No mapping found
    • Multiple matches (conflicts)

Handling Unmapped Products

Identifying Unmapped Products

  1. Go to PromoSync > Products
  2. Filter by Unmapped status
  3. Review vendor names

Resolution Options

OptionWhen to Use
Create mappingRecognized supplier vendor
Manual assignmentOne-off product
Skip syncNon-PromoStandards product

Manual Supplier Assignment

For individual products:

  1. Open the product in PromoSync
  2. Click Edit Supplier
  3. Select the correct supplier code
  4. 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:

  1. Review conflicting mappings
  2. Adjust patterns to be more specific
  3. 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

  1. Check vendor name in Shopify
  2. Verify mapping exists for that vendor
  3. Check mapping is enabled
  4. Test mapping manually

Wrong Supplier Matched

  1. Review all mappings for conflicts
  2. Check mapping pattern specificity
  3. Adjust priorities if needed
  4. Test with specific products

Mapping Not Found

  1. Vendor name may have extra spaces
  2. Check for special characters
  3. Try case-insensitive matching
  4. 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.