Files
kashilo/docs/import-categories.sh

256 lines
12 KiB
Bash

#!/bin/bash
# Bulk-Import: All categories for kashilo.com
# Usage: DIRECTUS_TOKEN=your_admin_token bash docs/import-categories.sh
API="https://api.kashilo.com"
TOKEN="${DIRECTUS_TOKEN:?Set DIRECTUS_TOKEN environment variable}"
create_category() {
local slug="$1" name="$2" icon="$3" sort="$4" parent="$5"
local name_de="$6" name_en="$7" name_fr="$8"
local parent_field="null"
if [ -n "$parent" ]; then
parent_field="\"$parent\""
fi
local response
response=$(curl -s -X POST "$API/items/categories" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"$name\",
\"slug\": \"$slug\",
\"icon\": \"$icon\",
\"status\": \"published\",
\"sort\": $sort,
\"parent\": $parent_field,
\"translations\": {
\"create\": [
{ \"languages_code\": \"de-DE\", \"name\": \"$name_de\" },
{ \"languages_code\": \"en-US\", \"name\": \"$name_en\" },
{ \"languages_code\": \"fr-FR\", \"name\": \"$name_fr\" }
]
}
}")
local id
id=$(echo "$response" | grep -o '"id":"[^"]*"' | head -1 | cut -d'"' -f4)
if [ -n "$id" ]; then
echo "$id"
else
echo "ERROR: $response" >&2
echo ""
fi
}
echo "=== Importing categories into Directus ==="
echo ""
# ── 1. Electronics ──
echo "1/12 Electronics..."
ID_ELECTRONICS=$(create_category "electronics" "Electronics" "💻" 1 "" \
"Elektronik" "Electronics" "Électronique")
echo "$ID_ELECTRONICS"
create_category "phones" "Phones & Tablets" "📱" 1 "$ID_ELECTRONICS" \
"Handy & Tablets" "Phones & Tablets" "Téléphones & Tablettes" > /dev/null
create_category "computers" "Computers & Accessories" "🖥️" 2 "$ID_ELECTRONICS" \
"Computer & Zubehör" "Computers & Accessories" "Ordinateurs & Accessoires" > /dev/null
create_category "tv-audio" "TV, Audio & Video" "📺" 3 "$ID_ELECTRONICS" \
"TV, Audio & Video" "TV, Audio & Video" "TV, Audio & Vidéo" > /dev/null
create_category "gaming" "Gaming & Consoles" "🎮" 4 "$ID_ELECTRONICS" \
"Gaming & Konsolen" "Gaming & Consoles" "Jeux & Consoles" > /dev/null
create_category "appliances" "Home Appliances" "🏠" 5 "$ID_ELECTRONICS" \
"Haushaltsgeräte" "Home Appliances" "Électroménager" > /dev/null
create_category "cameras" "Cameras & Photography" "📷" 6 "$ID_ELECTRONICS" \
"Kameras & Fotografie" "Cameras & Photography" "Appareils photo" > /dev/null
echo " ✓ 6 subcategories"
# ── 2. Vehicles ──
echo "2/12 Vehicles..."
ID_VEHICLES=$(create_category "vehicles" "Vehicles" "🚗" 2 "" \
"Fahrzeuge" "Vehicles" "Véhicules")
echo "$ID_VEHICLES"
create_category "cars" "Cars" "🚙" 1 "$ID_VEHICLES" \
"Autos" "Cars" "Voitures" > /dev/null
create_category "motorcycles" "Motorcycles" "🏍️" 2 "$ID_VEHICLES" \
"Motorräder" "Motorcycles" "Motos" > /dev/null
create_category "bikes" "Bicycles & E-Bikes" "🚲" 3 "$ID_VEHICLES" \
"Fahrräder & E-Bikes" "Bicycles & E-Bikes" "Vélos & E-Bikes" > /dev/null
create_category "vehicle-parts" "Parts & Accessories" "🔧" 4 "$ID_VEHICLES" \
"Ersatzteile & Zubehör" "Parts & Accessories" "Pièces & Accessoires" > /dev/null
create_category "boats" "Boats & Watercraft" "⛵" 5 "$ID_VEHICLES" \
"Boote & Wasserfahrzeuge" "Boats & Watercraft" "Bateaux" > /dev/null
echo " ✓ 5 subcategories"
# ── 3. Home & Garden ──
echo "3/12 Home & Garden..."
ID_HOME=$(create_category "home-garden" "Home & Garden" "🏡" 3 "" \
"Haus & Garten" "Home & Garden" "Maison & Jardin")
echo "$ID_HOME"
create_category "furniture" "Furniture" "🪑" 1 "$ID_HOME" \
"Möbel" "Furniture" "Meubles" > /dev/null
create_category "kitchen" "Kitchen & Dining" "🍳" 2 "$ID_HOME" \
"Küche & Essen" "Kitchen & Dining" "Cuisine" > /dev/null
create_category "garden" "Garden & Outdoor" "🌿" 3 "$ID_HOME" \
"Garten & Outdoor" "Garden & Outdoor" "Jardin & Extérieur" > /dev/null
create_category "tools" "Tools & Workshop" "🔨" 4 "$ID_HOME" \
"Werkzeuge & Werkstatt" "Tools & Workshop" "Outils & Atelier" > /dev/null
create_category "decoration" "Decoration & Art" "🖼️" 5 "$ID_HOME" \
"Deko & Kunst" "Decoration & Art" "Décoration & Art" > /dev/null
create_category "bathroom" "Bathroom & Sanitary" "🚿" 6 "$ID_HOME" \
"Bad & Sanitär" "Bathroom & Sanitary" "Salle de bain" > /dev/null
echo " ✓ 6 subcategories"
# ── 4. Fashion & Accessories ──
echo "4/12 Fashion..."
ID_FASHION=$(create_category "fashion" "Fashion & Accessories" "👗" 4 "" \
"Mode & Accessoires" "Fashion & Accessories" "Mode & Accessoires")
echo "$ID_FASHION"
create_category "women" "Women's Fashion" "👚" 1 "$ID_FASHION" \
"Damenmode" "Women's Fashion" "Mode femme" > /dev/null
create_category "men" "Men's Fashion" "👔" 2 "$ID_FASHION" \
"Herrenmode" "Men's Fashion" "Mode homme" > /dev/null
create_category "kids-fashion" "Kids' Fashion" "👶" 3 "$ID_FASHION" \
"Kindermode" "Kids' Fashion" "Mode enfant" > /dev/null
create_category "shoes" "Shoes" "👟" 4 "$ID_FASHION" \
"Schuhe" "Shoes" "Chaussures" > /dev/null
create_category "watches-jewelry" "Watches & Jewelry" "⌚" 5 "$ID_FASHION" \
"Uhren & Schmuck" "Watches & Jewelry" "Montres & Bijoux" > /dev/null
create_category "bags" "Bags & Luggage" "👜" 6 "$ID_FASHION" \
"Taschen & Gepäck" "Bags & Luggage" "Sacs & Bagages" > /dev/null
echo " ✓ 6 subcategories"
# ── 5. Sports & Leisure ──
echo "5/12 Sports..."
ID_SPORTS=$(create_category "sports" "Sports & Leisure" "⚽" 5 "" \
"Sport & Freizeit" "Sports & Leisure" "Sports & Loisirs")
echo "$ID_SPORTS"
create_category "fitness" "Fitness & Gym" "🏋️" 1 "$ID_SPORTS" \
"Fitness & Training" "Fitness & Gym" "Fitness" > /dev/null
create_category "outdoor-sports" "Hiking & Outdoor" "🥾" 2 "$ID_SPORTS" \
"Wandern & Outdoor" "Hiking & Outdoor" "Randonnée & Outdoor" > /dev/null
create_category "winter-sports" "Winter Sports" "⛷️" 3 "$ID_SPORTS" \
"Wintersport" "Winter Sports" "Sports d'hiver" > /dev/null
create_category "water-sports" "Water Sports" "🏄" 4 "$ID_SPORTS" \
"Wassersport" "Water Sports" "Sports nautiques" > /dev/null
create_category "team-sports" "Team Sports" "🏀" 5 "$ID_SPORTS" \
"Mannschaftssport" "Team Sports" "Sports d'équipe" > /dev/null
create_category "cycling" "Cycling Gear" "🚴" 6 "$ID_SPORTS" \
"Radzubehör" "Cycling Gear" "Équipement cyclisme" > /dev/null
echo " ✓ 6 subcategories"
# ── 6. Family & Kids ──
echo "6/12 Family & Kids..."
ID_FAMILY=$(create_category "family-kids" "Family & Kids" "👨‍👩‍👧" 6 "" \
"Familie & Kinder" "Family & Kids" "Famille & Enfants")
echo "$ID_FAMILY"
create_category "toys" "Toys & Games" "🧸" 1 "$ID_FAMILY" \
"Spielzeug & Spiele" "Toys & Games" "Jouets & Jeux" > /dev/null
create_category "baby" "Baby & Toddler" "🍼" 2 "$ID_FAMILY" \
"Baby & Kleinkind" "Baby & Toddler" "Bébé & Puériculture" > /dev/null
create_category "school" "School Supplies" "🎒" 3 "$ID_FAMILY" \
"Schulsachen" "School Supplies" "Fournitures scolaires" > /dev/null
echo " ✓ 3 subcategories"
# ── 7. Books & Media ──
echo "7/12 Books & Media..."
ID_BOOKS=$(create_category "books-media" "Books & Media" "📚" 7 "" \
"Bücher & Medien" "Books & Media" "Livres & Médias")
echo "$ID_BOOKS"
create_category "fiction" "Fiction" "📖" 1 "$ID_BOOKS" \
"Belletristik" "Fiction" "Fiction" > /dev/null
create_category "nonfiction" "Non-Fiction & Science" "📘" 2 "$ID_BOOKS" \
"Sachbücher" "Non-Fiction & Science" "Non-fiction" > /dev/null
create_category "textbooks" "Textbooks & Courses" "🎓" 3 "$ID_BOOKS" \
"Lehrbücher & Kurse" "Textbooks & Courses" "Manuels scolaires" > /dev/null
create_category "music-movies" "Music, Movies & Games" "🎵" 4 "$ID_BOOKS" \
"Musik, Filme & Spiele" "Music, Movies & Games" "Musique, Films & Jeux" > /dev/null
echo " ✓ 4 subcategories"
# ── 8. Pets & Animals ──
echo "8/12 Pets..."
ID_PETS=$(create_category "pets" "Pets & Animals" "🐾" 8 "" \
"Haustiere & Tierzubehör" "Pets & Animals" "Animaux")
echo "$ID_PETS"
create_category "pet-supplies" "Pet Supplies" "🦴" 1 "$ID_PETS" \
"Tierbedarf" "Pet Supplies" "Accessoires animaux" > /dev/null
create_category "pet-adoption" "Adoption & Rehoming" "🐕" 2 "$ID_PETS" \
"Adoption & Vermittlung" "Adoption & Rehoming" "Adoption" > /dev/null
echo " ✓ 2 subcategories"
# ── 9. Jobs & Services ──
echo "9/12 Jobs..."
ID_JOBS=$(create_category "jobs" "Jobs & Services" "💼" 9 "" \
"Jobs & Dienstleistungen" "Jobs & Services" "Emplois & Services")
echo "$ID_JOBS"
create_category "full-time" "Full-Time" "🏢" 1 "$ID_JOBS" \
"Festanstellung" "Full-Time" "CDI" > /dev/null
create_category "part-time" "Part-Time & Mini Jobs" "⏰" 2 "$ID_JOBS" \
"Teilzeit & Minijobs" "Part-Time & Mini Jobs" "Temps partiel" > /dev/null
create_category "freelance" "Freelance & Remote" "💻" 3 "$ID_JOBS" \
"Freelance & Remote" "Freelance & Remote" "Freelance & Télétravail" > /dev/null
create_category "services" "Services & Crafts" "🛠️" 4 "$ID_JOBS" \
"Dienstleistungen & Handwerk" "Services & Crafts" "Services & Artisanat" > /dev/null
echo " ✓ 4 subcategories"
# ── 10. Real Estate ──
echo "10/12 Real Estate..."
ID_REALESTATE=$(create_category "real-estate" "Real Estate" "🏘️" 10 "" \
"Immobilien" "Real Estate" "Immobilier")
echo "$ID_REALESTATE"
create_category "apartments" "Apartments" "🏢" 1 "$ID_REALESTATE" \
"Wohnungen" "Apartments" "Appartements" > /dev/null
create_category "houses" "Houses" "🏠" 2 "$ID_REALESTATE" \
"Häuser" "Houses" "Maisons" > /dev/null
create_category "rooms" "Rooms & WG" "🛏️" 3 "$ID_REALESTATE" \
"Zimmer & WG" "Rooms & WG" "Chambres & Colocation" > /dev/null
create_category "commercial" "Commercial" "🏪" 4 "$ID_REALESTATE" \
"Gewerbe" "Commercial" "Commercial" > /dev/null
echo " ✓ 4 subcategories"
# ── 11. Collectibles & Hobbies ──
echo "11/12 Collectibles..."
ID_COLLECT=$(create_category "collectibles" "Collectibles & Hobbies" "🏆" 11 "" \
"Sammeln & Hobby" "Collectibles & Hobbies" "Collections & Hobbies")
echo "$ID_COLLECT"
create_category "antiques" "Antiques" "🏺" 1 "$ID_COLLECT" \
"Antiquitäten" "Antiques" "Antiquités" > /dev/null
create_category "coins-stamps" "Coins & Stamps" "🪙" 2 "$ID_COLLECT" \
"Münzen & Briefmarken" "Coins & Stamps" "Monnaies & Timbres" > /dev/null
create_category "models" "Models & Figures" "🚂" 3 "$ID_COLLECT" \
"Modellbau & Figuren" "Models & Figures" "Modélisme & Figurines" > /dev/null
create_category "art-crafts" "Art & Handmade" "🎨" 4 "$ID_COLLECT" \
"Kunst & Handgemacht" "Art & Handmade" "Art & Fait main" > /dev/null
echo " ✓ 4 subcategories"
# ── 12. Other ──
echo "12/12 Other..."
ID_OTHER=$(create_category "other" "Other" "📦" 12 "" \
"Sonstiges" "Other" "Autres")
echo "$ID_OTHER"
create_category "free-stuff" "Free Stuff" "🎁" 1 "$ID_OTHER" \
"Zu verschenken" "Free Stuff" "Gratuit" > /dev/null
create_category "barter" "Barter & Trade" "🔄" 2 "$ID_OTHER" \
"Tauschen" "Barter & Trade" "Troc" > /dev/null
create_category "lost-found" "Lost & Found" "🔍" 3 "$ID_OTHER" \
"Fundsachen" "Lost & Found" "Objets trouvés" > /dev/null
echo " ✓ 3 subcategories"
echo ""
echo "=== Import complete! ==="
echo "12 main categories + 59 subcategories created."