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

ElementWhat it should doA typical AI mistake
Titlename the product in clear words, including key querieskeyword stuffing, invented properties
Attributeslist facts field by fieldinvented values that are not in the source data
Descriptionexplain who the product suits and whyfiller, generic words, promises that must not be made
Q&Asettle frequent doubts in advanceanswers 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:

bash
sku,name,category,brand,attributes,keywords
A-101,Phone case,Accessories,Nordik,"material: silicone; color: black; compatibility: model X",phone case; protection

The 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:

bash
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.

bash
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=8 limits 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:

  1. Every value in features occurs in the source attributes. Anything else is an invention.
  2. The text has none of the words from your forbidden list: "the best", "guarantee", "certified", if the data does not say so.
  3. Title length and field counts match the platform's rules.
  4. 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:

ModelInput / outputCalculationTotal
deepseek-v4.1-flash0.013 / 0.0380.6 × 0.013 + 0.7 × 0.038 = $0.0078 + $0.0266about $0.034
glm-5.3-flash0.04 / 0.040.6 × 0.04 + 0.7 × 0.04 = $0.024 + $0.028about $0.052
gpt-6.1-sol0.27 / 1.320.6 × 0.27 + 0.7 × 1.32 = $0.162 + $0.924about $1.09
claude-sonnet-5-50.4 / 20.6 × 0.4 + 0.7 × 2 = $0.24 + $1.4about $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.

Get API keyDocumentation

api.zukko.pro · fetch_*

AI to create marketplace product cards from a table · Zukko