Join the TERKCreatives link

Benefits for applying Free clothes: You will receive free clothes from our brand to style and promote on your social media channels. Exposure: You will be featured on our website and social media pages, which will give you exposure to our large audience. This can help you to grow your following and reach new fans. Opportunities: You will have the opportunity to collaborate with us on new product designs. This is a great way to put your own stamp on our brand and create something unique. Terknation: You will be part of our growing Terknation of creators. This is a great way to connect with other creators and learn from each other. Key Requirements *1-3 videos the same size as an Instagram reel or TikTok *2-3 images: The images should be high-quality and visually appealing. *Product reviews: We would like the creators to write product reviews of terkclothing. *Tutorials: We would also like the creators to create tutorials on how to style terk

Apply now

Partnership opportunities

  • Content creation
  • Usage rights
  • Campaigns
  • Affiliate marketing
  • Gifting
  • Discount codes
// update-shopify-weights.js // Run: node update-shopify-weights.js const SHOP = "your-store.myshopify.com"; const TOKEN = "your_admin_api_token"; const API_VERSION = "2026-04"; // Estimated TERK weights in pounds const WEIGHT_RULES = [ { match: ["jersey"], weight: 0.65 }, { match: ["tank"], weight: 0.35 }, { match: ["bikini"], weight: 0.25 }, { match: ["sports bra"], weight: 0.30 }, { match: ["leggings"], weight: 0.55 }, { match: ["hoodie", "crewneck"], weight: 1.20 }, { match: ["scrub", "scrubs"], weight: 1.00 }, { match: ["hat", "cap"], weight: 0.40 }, { match: ["bag", "duffle"], weight: 1.50 }, { match: ["slide", "slides"], weight: 1.10 }, { match: ["t-shirt", "tee"], weight: 0.45 }, ]; function guessWeight(productTitle, productType, tags) { const text = `${productTitle} ${productType} ${tags.join(" ")}`.toLowerCase(); for (const rule of WEIGHT_RULES) { if (rule.match.some(word => text.includes(word))) { return rule.weight; } } return 0.50; // default weight if product is unknown } async function shopifyGraphQL(query, variables = {}) { const res = await fetch(`https://${SHOP}/admin/api/${API_VERSION}/graphql.json`, { method: "POST", headers: { "Content-Type": "application/json", "X-Shopify-Access-Token": TOKEN, }, body: JSON.stringify({ query, variables }), }); const json = await res.json(); if (json.errors) console.error(json.errors); return json.data; } async function getProducts(cursor = null) { const query = ` query GetProducts($cursor: String) { products(first: 50, after: $cursor) { pageInfo { hasNextPage endCursor } nodes { id title productType tags variants(first: 100) { nodes { id title } } } } } `; return shopifyGraphQL(query, { cursor }); } async function updateProductWeights(product) { const weight = guessWeight(product.title, product.productType || "", product.tags || []); const mutation = ` mutation UpdateWeights($productId: ID!, $variants: [ProductVariantsBulkInput!]!) { productVariantsBulkUpdate(productId: $productId, variants: $variants) { product { id } userErrors { field message } } } `; const variants = product.variants.nodes.map(variant => ({ id: variant.id, inventoryItem: { requiresShipping: true, measurement: { weight: { value: weight, unit: POUNDS } } } })); const result = await shopifyGraphQL(mutation, { productId: product.id, variants, }); const errors = result.productVariantsBulkUpdate.userErrors; if (errors.length) { console.log("ERROR:", product.title, errors); } else { console.log(`Updated: ${product.title} → ${weight} lb`); } } async function run() { let cursor = null; let hasNextPage = true; while (hasNextPage) { const data = await getProducts(cursor); const products = data.products.nodes; for (const product of products) { await updateProductWeights(product); } hasNextPage = data.products.pageInfo.hasNextPage; cursor = data.products.pageInfo.endCursor; } console.log("All product weights updated."); } run();