Marketplace product cards with AI: title, attributes and texts
The whole text part of a product card and a script that builds it from a product table. At the end, what it costs to run 1000 SKUs.
5 min · · бизнес · автоматизация
A product card on a marketplace is not one description but a set of texts: a title, a list of attributes, a description and sometimes answers to frequent questions. With hundreds of products, doing it by hand turns into weeks. AI for creating marketplace product cards removes the bulk of the routine if you give it structured data and strict rules. Below is how to build the process from a table to finished texts and what it costs for 1000 SKUs.
What the text part of a card consists of
| Element | What it should do | A typical AI mistake |
|---|---|---|
| Title | name the product in clear words, including key queries | keyword stuffing, invented properties |
| Attributes | list facts field by field | invented values that are not in the source data |
| Description | explain who the product suits and why | filler, generic words, promises that must not be made |
| Q&A | settle frequent doubts in advance | answers about things the data does not contain |
The main risk here is not style but invented facts: dimensions, composition, certificates, warranty. A model will gladly add what you did not give it. So the whole process is built around one rule: the source of truth is your table, and the model only turns it into text.
Specific constraints (title length, forbidden words, required category fields) differ between marketplaces and change. Take them from the platform's own rules and put them in the prompt as numbers and lists. We do not list them here so as not to give outdated ones.
Step 1. Prepare the table
You need a CSV or Excel file where one row is one product. A minimal set of columns:
sku,name,category,brand,attributes,keywords
A-101,Phone case,Accessories,Nordik,"material: silicone; color: black; compatibility: model X",phone case; protectionThe attributes column holds what you really know about the product. The fuller it is, the less temptation for the model to invent. The keywords column holds queries to use naturally, not to list.
Step 2. Write the rules in the prompt
Rules are best written as verifiable points:
You write marketplace product cards. Use ONLY data from the attributes field.
If there is no data for an item, do not invent it, skip the item.
Return JSON with the keys: title, features, description, faq.
title: at most 60 characters, starts with the product name.
features: a list of {"name": ..., "value": ...} objects from attributes only.
description: 3 paragraphs, no promises like "the best" or "guarantee" and no invented certificates.
faq: up to 3 {"q": ..., "a": ...} pairs, answers based only on attributes.
Write in Russian, no emoji.The number 60 here is an example: replace it with your platform's requirement.
Step 3. A bulk generation script
The script reads the CSV, calls the model, validates the answer and saves the result. The address is the OpenAI format with /v1.
import csv
import json
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")
MODEL = "deepseek-v4.1-flash"
REQUIRED = {"title", "features", "description", "faq"}
FENCE = "`" * 3 # triple backtick the model may wrap the JSON in
RULES = """You write marketplace product cards. Use ONLY data from the attributes field.
If there is no data for an item, do not invent it, skip the item.
Return only JSON with the keys: title, features, description, faq.Worth knowing:
- Validating the answer is mandatory: a model sometimes wraps the JSON in a code block or forgets a key. The script makes up to three attempts and marks failures.
max_workers=8limits parallelism. If the provider answers with a 429 error, reduce the thread count and add a pause between retries: handling 429 and retries.- On strict JSON: getting a structured answer.
- Save results as they arrive rather than at the very end: if the script fails on product 900, you will not have to regenerate the first 899.
Step 4. Automatic checks and manual control
After generation, check what code can check:
- Every value in
featuresoccurs in the sourceattributes. Anything else is an invention. - The text has none of the words from your forbidden list: "the best", "guarantee", "certified", if the data does not say so.
- Title length and field counts match the platform's rules.
- No repeats between cards of one product family: two identical descriptions for different sizes do not help a shop.
Then read 5% of cards by eye. Marketplace rules and legal requirements for the text are the seller's responsibility, not the model's. A similar task with a focus on descriptions: generating descriptions for Wildberries and Ozon.
What 1000 SKUs cost
Assumptions for the example: per product about 600 input tokens (rules plus the table row) and 700 output tokens (a card in JSON). For 1000 products that is 600,000 input tokens and 700,000 output tokens. Zukko prices as of 18 October 2026, $ per 1M tokens:
| Model | Input / output | Calculation | Total |
|---|---|---|---|
deepseek-v4.1-flash | 0.013 / 0.038 | 0.6 × 0.013 + 0.7 × 0.038 = $0.0078 + $0.0266 | about $0.034 |
glm-5.3-flash | 0.04 / 0.04 | 0.6 × 0.04 + 0.7 × 0.04 = $0.024 + $0.028 | about $0.052 |
gpt-6.1-sol | 0.27 / 1.32 | 0.6 × 0.27 + 0.7 × 1.32 = $0.162 + $0.924 | about $1.09 |
claude-sonnet-5-5 | 0.4 / 2 | 0.6 × 0.4 + 0.7 × 2 = $0.24 + $1.4 | about $1.64 |
Here 0.6 and 0.7 are millions of tokens. Retries after invalid JSON will increase the spend, so add a 10–20% reserve. The rules at the start of each request are identical, so on models with a cache read price the repeated part may cost less, but we do not count the cache in this calculation. For GPT cache reads are visible in the OpenAI format; details on the limits and cache page.
Which model writes better cards we cannot say in advance. By the strength index in the table claude-sonnet-5-5 has 48, gpt-6.1-sol 52, deepseek-v4.1-flash 39 and glm-5.3-flash 42, but your test decides: run 20 products on two or three models and compare the results.
FAQ
Can AI invent attributes itself?
It can, and that is the main risk. So the prompt forbids inventing and the script checks the values against the source table. The product data comes from you.
Can images for cards be generated with the same key?
This article covers only the text part; image generation is not discussed here. You can, however, pass a product photo as input to a model that accepts images (per the table as of October 18, 2026, for example claude-sonnet-5-5 and gpt-6.1-sol) so it can help describe the look. Still take the attributes from the table, not from the photo.
Do I need to state that the text was written by AI?
The requirements depend on the platform and your jurisdiction, see the marketplace rules.
How do I start?
Create a key in the Zukko dashboard, take 20 products from your table and run the script on a cheap model. Spending is visible on the "Usage" page.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- AI for testers: test cases, checklists and bug reportsHow a QA engineer can use a model for test cases, checklists and bug reports, check coverage, and avoid requirements the model made up.
- Anonymizing data before sending it to a neural network: a practical wayYou do not have to send personal data to a model for it to process a document. How to replace it with labels, restore it in the answer and check that nothing leaked.
- A neural network for HR: job posts, candidate emails and resume reviewA model can draft job posts and emails and do a first-pass resume review. What to hand over, how to treat candidates' personal data and how to prevent biased decisions.
- Generating an FAQ with a neural network from tickets and a knowledge baseA good FAQ is built on what customers really ask. A pipeline: group the tickets, answer from the knowledge base with a source reference, and verify the result.