Template
TikTok Shop product feed template
TikTok has two places product data goes: a catalog in Ads Manager, fed by a file, which powers catalog ads and product links; and TikTok Shop listings in Seller Center, which have their own rules. This page is the catalog feed template: the nine required fields, the optional ones that matter, example rows from four stores, a CSV to download, and how the Shop listing rules differ.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- Nine fields are required in a TikTok catalog feed: sku_id, title, description, availability, condition, price, link, image_link and brand.
- availability is written with a space (in stock, out of stock, preorder) and price carries a currency that must match the catalog's currency.
- Optional fields worth filling: google_product_category, video_link, item_group_id with color and size, sale_price, and ios_url / android_url for app deep links.
- Formats: CSV or XML (RSS or Atom), optionally zipped. Delivery: a scheduled URL fetch (hourly or daily), a one-time upload, or a Shopify sync.
- We set up Textfinity's TikTok channel template, which pre-fills the headers, and the software publishes the file on a URL TikTok fetches on schedule.
What a TikTok Shop product feed template contains
A TikTok catalog feed is a flat file with one row per item and TikTok's field names in the header. The field set deliberately mirrors Google's and Meta's, with one difference people trip over: the identifier column is sku_id, not id. Duplicate sku_id values are ignored, so variants need their own ids. TikTok's catalog parameters page lists nine required fields and 27 optional ones; the table covers the required set and the optional fields that change what ads can do.
| Column | Requirement | Format | Example |
|---|---|---|---|
| sku_id | Required | Unique string per item; duplicates are dropped | DRS-2210-BLK-M |
| title | Required | Product name; keep it short enough for the card | Linen Wrap Dress, Black, M |
| description | Required | Plain text; keep within about 1,000 characters | Midi wrap dress in washed linen with a tie waist. |
| availability | Required | in stock, out of stock, preorder | in stock |
| condition | Required | new, used, refurbished | new |
| price | Required | Number with currency matching the catalog | 89.00 USD |
| link | Required | URL of the product page | https://store.example/products/linen-wrap-dress |
| image_link | Required | JPEG or PNG, at least 500 × 500 px | https://cdn.example/drs-2210-blk.jpg |
| brand | Required | Brand or manufacturer name | Marlowe |
| google_product_category | Optional, recommended | Google taxonomy path or ID | Apparel & Accessories > Clothing > Dresses |
| video_link | Optional, recommended | Direct URL to a product video | https://cdn.example/drs-2210.mp4 |
| item_group_id | Optional; needed for variants | Same value across variants | DRS-2210 |
| color / size / material / pattern | Optional; variant attributes | Free text; sizes may be comma-separated | Black / M |
| sale_price | Optional | Number with currency | 69.00 USD |
| sale_price_effective_date | Optional | ISO 8601 start/end | 2026-11-27T00:00/2026-11-30T23:59 |
| ios_url / android_url | Optional; required for app deep links | Deep link scheme | myapp://product/DRS-2210 |
| custom_label_0 … custom_label_4 | Optional | Free text for product sets | new-season |
| shipping | Optional | Country:Region:Method:Price | US:NY:Ground:3.99 USD |
Field list and required set as described by TikTok's catalog product parameters page and confirmed across three feed-vendor references, checked 2026-10-27; verify limits against your Ads Manager catalog template.
TikTok Shop listings versus the catalog feed
TikTok Shop products, the ones with in-app checkout, are created in Seller Center: one at a time, by bulk upload of up to 1,000 products, or through a platform integration. They follow listing rules that the catalog feed does not enforce: titles of 25 to 200 characters with each word capitalized and numerals instead of words, descriptions of at least 500 characters, at least five images of 600 × 600 px or larger with a clean front view first, a category from Seller Center's tool, and a brand picked from the dropdown or registered. Bundles need their own GTIN; each variation is its own SKU.
The catalog feed on this page is what you send to Ads Manager when shoppers check out on your own site, or when you want product data for catalog ads beyond what the Shop sync provides. If you already run a TikTok Shop, its products reach a catalog through the Shop connection; the feed template still helps when you need titles and descriptions that meet the Seller Center rules, because the same mapping produces both.
| Rule | Catalog feed (Ads Manager) | TikTok Shop listing (Seller Center) |
|---|---|---|
| Title | Required, no stated limit | 25 to 200 characters, Title Case, numerals, no ALL CAPS |
| Description | Required, about 1,000 characters | At least 500 characters, measurements and care included |
| Images | One image_link, 500 × 500 px minimum | At least 5, up to 9, 600 × 600 px minimum, first a clean front view |
| Category | google_product_category optional | Seller Center category, wrong category triggers a violation |
| Brand | Free text | From the dropdown or registered; unbranded selects No brand |
| Variants | item_group_id + color/size | Each variation a SKU under one anchor product |
| Bulk upload | Any size; scheduled URL fetch | Up to 1,000 products per bulk upload |
CSV or XML: the TikTok product feed file
TikTok accepts CSV and XML in RSS or Atom form, and zipped versions of either (tar archives are not supported). The CSV is comma-delimited by default with a header row of field names; quote any value that contains a comma, which in practice means every title with a color and size. Catalog ads need at least 20 items in the catalog, so very small stores should include every variant as a row rather than one row per product. The first three rows of the download look like this:
tiktok-catalog.csv
sku_id,title,description,availability,condition,price,link,image_link,brand
DRS-2210-BLK-M,"Linen Wrap Dress, Black, M","Midi wrap dress in washed linen.",in stock,new,89.00 USD,https://store.example/products/linen-wrap-dress?variant=blk-m,https://cdn.example/drs-2210-blk.jpg,Marlowe
SER-30,Vitamin C Serum 30 ml,"15% L-ascorbic acid serum.",in stock,new,34.00 USD,https://store.example/products/vitamin-c-serum,https://cdn.example/ser-30.jpg,Juno SkinKeeping the TikTok feed in sync with the store
TikTok fetches a scheduled feed hourly or daily, so what matters is that the URL always holds a current file. Textfinity connects the store (Shopify natively, or a CSV or Google Shopping XML export URL), re-pulls it on the shop's schedule and rebuilds every feed, including the TikTok one. The TikTok channel template creates the nine required columns and the optional ones with TikTok's spelling, and each is mapped from the store's own fields: rename for sku_id, link, image_link and brand; combine for title; add suffix for the currency; replace from regexp or an advanced rule for availability from stock; a merged Google Sheet for video URLs or categories the store does not hold.
Filters keep out gift cards, items with no image and anything you do not want in catalog ads. The feed hygiene profile flags image URLs that do not resolve and descriptions in a mixed language, which TikTok's catalog diagnostics would otherwise report after the first fetch.
Examples
Worked examples, by situation
Four stores, four rows. Each one shows the store's data, the TikTok row and the rule that connects them.
Variant row with item_group_id
Before
Handle,Title,Option1 Value,Option2 Value,Variant SKU,Variant Price linen-wrap-dress,Linen Wrap Dress,Black,M,DRS-2210-BLK-M,89.00
After
sku_id,item_group_id,title,price,availability,color,size DRS-2210-BLK-M,DRS-2210,"Linen Wrap Dress, Black, M",89.00 USD,in stock,Black,M
How we set it up
rename Variant SKU onto sku_id and the product id onto item_group_id; combine title, option 1 and option 2 with ", "; add suffix " USD" on price; availability from the advanced rule if calc{[variant_inventoryQuantity]} > 0 then "in stock" else "out of stock" (advanced expressions name Shopify fields with underscores).
video_link joined from a Google Sheet
Before
sku,name,price SER-30,Vitamin C Serum 30 ml,34.00
After
sku_id,title,price,video_link SER-30,Vitamin C Serum 30 ml,34.00 USD,https://cdn.example/videos/ser-30.mp4
How we set it up
A merged source joins a Google Sheet with columns sku and video_url onto the catalog; video_link is a rename from the joined column. Rows with no video stay empty, which TikTok accepts since the field is optional.
Timed sale price and category
Before
SKU,Name,Categories,Regular price,Sale price VAS-33,Stoneware Vase 33 cm,Decor > Vases,54.00,43.00
After
sku_id,title,price,sale_price,sale_price_effective_date,google_product_category VAS-33,Stoneware Vase 33 cm,54.00 USD,43.00 USD,2026-11-27T00:00/2026-11-30T23:59,Home & Garden > Decor > Vases
How we set it up
sale_price is a conditional rule: Sale price matches regexp ^\s*$ → leave empty, otherwise add suffix " USD"; sale_price_effective_date is add static value for the window; google_product_category is a replace from google sheet lookup from the WooCommerce category path (it replaces substrings, so list full paths).
ios_url and android_url built from the SKU
Before
sku,title,url HDMI-2M,HDMI 2.1 Cable 2 m,https://store.example/p/hdmi-2m
After
sku_id,title,link,ios_url,android_url HDMI-2M,"HDMI 2.1 Cable, 2 m, 8K",https://store.example/p/hdmi-2m,storeapp://product/HDMI-2M,storeapp://product/HDMI-2M
How we set it up
We add the prefix "storeapp://product/" to a copy of sku for both deep-link columns; the title gets its spec from combine (name, length, resolution). A filter excludes rows where the source image column is blank so the catalog never shows a grey placeholder.
Copy this plan
From template to a catalog TikTok refreshes on schedule
Six steps. Catalog creation and the fetch schedule happen in TikTok Ads Manager; the rest is one feed we set up in Textfinity.
01
Connect the store
Shopify directly, or the URL of a CSV or Google Shopping XML export from WooCommerce, Magento, PrestaShop or BigCommerce. Textfinity profiles the columns and counts the products.
What we set up: We connect your Shopify store, or read the CSV or XML export URL you send us, and check the column profile.02
Start from the TikTok channel template
The template creates the nine required columns and the optional variant, video, sale and deep-link columns with TikTok's spelling.
What we set up: We create the feed from the TikTok channel template.03
Map the required nine
rename for sku_id, link, image_link, brand; combine for title; add suffix for the currency on price; replace from regexp or advanced for availability and condition.
What we set up: We map sku_id as a rename of the variant SKU and availability as an advanced rule on stock.04
Add variants, videos and categories
item_group_id from the parent id with color and size from options; video_link from a merged Google Sheet; google_product_category from a sheet lookup on your product type.
What we set up: We join your video sheet as a merged source keyed on sku and map video_link as a rename of the joined column.05
Filter and check
Exclude gift cards, items without images and anything under your minimum price. Run feed hygiene for broken URLs and mixed-language descriptions.
What we set up: We add exclude filters where the source image column is blank and where the source price is less than 5 (product.featuredImage.url and variant.price on Shopify).06
Publish and schedule the fetch in Ads Manager
Copy the feed URL. In TikTok Ads Manager: Assets → Catalogs → create or open the catalog → Add products → Data feed schedule → paste the URL and pick hourly or daily. Diagnostics appear in the catalog after the first fetch.
What we set up: We publish the feed and add the URL to your catalog's data feed schedule with access you give us, or walk you through it on a call.
Customization tips
Make it yours
Match the catalog currency before the first fetch
A catalog has one currency; prices in another currency are rejected row by row. For multi-market stores create one catalog per currency and one Textfinity feed per catalog, with a filter on the market or a merged price sheet per country.
Send a video even when the ad will use a creator's clip
video_link is optional, but catalog formats that fall back to a product video render better than a static image. A 10-second product loop hosted on your CDN is enough; keep the URL stable so TikTok does not re-download it every fetch.
Write descriptions for the Shop rules once
If you also list on TikTok Shop, the 500-character minimum applies there but not to the catalog. Generating one description that meets it (a Textfinity AI description runs 500 to 1,000 characters, so an accepted one clears the minimum; include measurements among its source fields) means the same text passes both places, instead of two versions drifting apart.
Keep out-of-stock rows, flip availability
Removing a sku_id makes TikTok treat the item as deleted and lose its history. Keeping the row with availability out of stock preserves it and brings the item back automatically when stock returns. Filter out only what will never come back.
Downloads
Take the files
FAQ
Questions about tiktok shop product feed template
What fields are required in a TikTok product feed?
Nine: sku_id, title, description, availability, condition, price, link, image_link and brand. A row missing any of them is not published. TikTok lists 27 more optional fields, including google_product_category, video_link, item_group_id, color, size, sale_price, custom labels and the ios_url and android_url deep links.
Is a TikTok Shop product feed the same as a TikTok catalog feed?
No. The catalog feed is a file you give TikTok Ads Manager to populate a catalog for ads and product links; it uses the fields on this page. TikTok Shop listings are created in Seller Center, follow stricter listing rules (title 25 to 200 characters, description of 500 or more, five or more images) and sync to a catalog on their own. Stores that check out on their own site use the feed; stores that sell through TikTok Shop checkout list in Seller Center.
What file formats does TikTok accept for a catalog?
CSV and XML (RSS or Atom), plain or compressed as .zip or .gz. You can upload once, schedule a fetch from a URL hourly or daily, import from Google Merchant Center, or connect a Shopify store.
How many products does a TikTok catalog need?
TikTok recommends at least 20 items for catalog formats such as Video Shopping Ads and collection ads. There is no practical upper limit for a feed-fed catalog; scheduled feeds are documented up to 20 million products.
Set up for you
Have us build this TikTok catalog feed from your store
Send us your store or export URL. We map the nine required columns once in Textfinity, and the software publishes the file on a URL TikTok fetches hourly or daily.
Tell us your store and channels. We reply within 24 hours.