-
Notifications
You must be signed in to change notification settings - Fork 0
/
generate_products.py
68 lines (59 loc) · 2.42 KB
/
generate_products.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import random
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Alignment
# Generate random data for products
categories = ["Electronics", "Clothing", "Books", "Home & Kitchen", "Toys", "Sports"]
subcategories = {
"Electronics": ["Smartphones", "Laptops", "Tablets", "Accessories"],
"Clothing": ["Men's", "Women's", "Kids'"],
"Books": ["Fiction", "Non-Fiction", "Children's"],
"Home & Kitchen": ["Furniture", "Appliances", "Cookware"],
"Toys": ["Action Figures", "Puzzles", "Board Games"],
"Sports": ["Fitness", "Outdoor", "Team Sports"]
}
brands = ["Brand1", "Brand2", "Brand3", "Brand4", "Brand5", "Brand6"]
site_statuses = ["published", "draft"]
# Generate random products
products = []
for _ in range(20):
category = random.choice(categories)
subcategory = random.choice(subcategories[category])
product_name = f"{category} {subcategory} Product {random.randint(1, 100)}"
description = f"Description for {product_name}"
price = round(random.uniform(10, 1000), 2)
ref = f"REF{random.randint(1000, 9999)}"
brand = random.choice(brands)
site_status = random.choice(site_statuses)
image_url = f"https://example.com/images/{ref}.jpg" # Placeholder URL for image
products.append({
"Category": category,
"Subcategory": subcategory,
"Product Name": product_name,
"Description": description,
"Price": price,
"Reference (SKU)": ref,
"Brand": brand,
"Site Status": site_status,
"Image URL": image_url # New column for image URL
})
# Create an Excel workbook and sheet
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "Products"
# Write headers
headers = ["Category", "Subcategory", "Product Name", "Description", "Price", "Reference (SKU)", "Brand", "Site Status", "Image URL"]
for col_idx, header in enumerate(headers, start=1):
cell = sheet.cell(row=1, column=col_idx)
cell.value = header
cell.alignment = Alignment(horizontal='center', vertical='center')
# Write data
for row_idx, product in enumerate(products, start=2):
for col_idx, key in enumerate(headers, start=1):
cell = sheet.cell(row=row_idx, column=col_idx)
cell.value = product[key]
cell.alignment = Alignment(horizontal='left', vertical='center')
# Save workbook
file_path = "products.xlsx"
wb.save(file_path)
print(f"Random products sheet generated successfully: {file_path}")