Example usage

  Blog    |     January 29, 2026

To generate fake supplier information, we can use Python's built-in modules like random and string along with predefined lists for realistic data. Here's a solution that creates a dictionary containing various supplier details:

import random
import string
def generate_fake_supplier():
    # Generate random Supplier ID (6 alphanumeric characters)
    supplier_id = ''.join(random.choices(string.ascii_uppercase + string.digits, k=6))
    # Predefined lists for realistic data
    company_names = [
        "Global Supplies Inc.", "Prime Logistics Ltd.", "Alpha Traders Co.", 
        "Omega Solutions", "Nexus Enterprises", "Vista Corp", "Apex Industries"
    ]
    first_names = ["James", "Maria", "Robert", "Patricia", "David", "Jennifer", "Michael", "Linda"]
    last_names = ["Smith", "Johnson", "Williams", "Brown", "Jones", "Garcia", "Miller", "Davis"]
    streets = ["Main St", "Oak Ave", "Park Rd", "1st Street", "Elm Drive", "Crescent Blvd"]
    cities = ["Springfield", "Riverside", "Franklin", "Georgetown", "Clinton", "Arlington"]
    states = ["CA", "NY", "TX", "FL", "IL", "PA"]
    domains = ["supplier.com", "globaltrading.net", "logistics.org", "enterprises.io"]
    # Randomly select data from lists
    company = random.choice(company_names)
    contact = f"{random.choice(first_names)} {random.choice(last_names)}"
    street = f"{random.randint(1, 999)} {random.choice(streets)}"
    city = random.choice(cities)
    state = random.choice(states)
    zip_code = f"{random.randint(10000, 99999)}"
    phone = f"({random.randint(100, 999)}) {random.randint(100, 999)}-{random.randint(1000, 9999)}"
    domain = random.choice(domains)
    email = f"{contact.lower().replace(' ', '.')}@{domain}"
    # Construct supplier dictionary
    supplier = {
        "Supplier ID": supplier_id,
        "Company Name": company,
        "Contact Person": contact,
        "Address": {
            "Street": street,
            "City": city,
            "State": state,
            "ZIP Code": zip_code
        },
        "Phone": phone,
        "Email": email
    }
    return supplier
fake_supplier = generate_fake_supplier()
print(fake_supplier)

Example Output:

{
    'Supplier ID': 'X3B7K9',
    'Company Name': 'Prime Logistics Ltd.',
    'Contact Person': 'Maria Garcia',
    'Address': {
        'Street': '456 Oak Ave',
        'City': 'Franklin',
        'State': 'TX',
        'ZIP Code': '78901'
    },
    'Phone': '(555) 123-4567',
    'Email': '[email protected]'
}

Key Features:

  1. Supplier ID: 6-character alphanumeric string (uppercase letters + digits).
  2. Company Name: Selected from a predefined list of realistic business names.
  3. Contact Person: Generated by combining random first and last names.
  4. Address: Includes randomized street number, street type, city, state, and ZIP code.
  5. Phone: Formatted as (XXX) XXX-XXXX with random digits.
  6. Email: Created from contact name (lowercase with dots) and a random domain.

This solution ensures all data is randomized yet realistic, using only Python's standard libraries. Each call to generate_fake_supplier() produces a unique supplier profile.


Request an On-site Audit / Inquiry

SSL Secured Inquiry