skills/marketing-growth/social-commerce/SKILL.md
Sync your catalog to Instagram, TikTok, and Facebook to enable shoppable posts and in-app checkout directly from your social content
npx skillsauth add finsilabs/awesome-ecommerce-skills social-commerceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Social commerce integrates your product catalog with Instagram, TikTok, and Facebook so customers can discover and purchase products without leaving those platforms. Shopify, WooCommerce, and BigCommerce all have official integrations that sync your catalog automatically — no custom code required. The strategic work is setting up the catalog correctly, enabling product tagging in posts, and monitoring catalog health.
| Platform | Setup Via | In-App Checkout | Best For | |----------|----------|----------------|---------| | Instagram Shopping | Meta Commerce Manager | Yes (US only) | Fashion, beauty, lifestyle | | Facebook Shop | Meta Commerce Manager | Yes (US only) | All categories | | TikTok Shop | TikTok Seller Center | Yes | Viral/impulse products | | Pinterest Shopping | Pinterest Ads Manager | No (links to your store) | Home, fashion, food |
Shopify users: One integration (Facebook & Instagram channel) enables both Instagram and Facebook Shopping simultaneously. TikTok requires a separate integration.
For TikTok Shop:
Generate a Meta-compatible XML feed and register it in Meta Commerce Manager:
import { XMLBuilder } from 'fast-xml-parser';
export async function generateMetaCatalogFeed(req: Request, res: Response) {
const products = await db.products.findAll({
where: { status: 'active', availableForSale: true },
include: ['variants', 'images'],
});
const items = products.flatMap((p) =>
p.variants.map((v) => ({
id: v.sku, // Use SKU as the catalog item ID — must be stable
title: p.name,
description: p.description.slice(0, 9999),
availability: v.inventory > 0 ? 'in stock' : 'out of stock',
condition: 'new',
price: `${(v.priceInCents / 100).toFixed(2)} USD`,
link: `${process.env.STORE_URL}/products/${p.slug}?variant=${v.id}`,
image_link: p.images[0]?.url,
brand: p.brand ?? process.env.STORE_NAME,
google_product_category: p.googleProductCategory,
item_group_id: p.id, // Required: groups variants together in Meta
color: v.color,
size: v.size,
}))
);
const builder = new XMLBuilder({ arrayNodeName: 'item', ignoreAttributes: false });
const xml = builder.build({ rss: { channel: { item: items } } });
res.setHeader('Content-Type', 'application/xml');
res.setHeader('Cache-Control', 'public, max-age=3600');
res.send(xml);
}
Register the feed URL in Meta Commerce Manager → Catalog → Data Sources → Add Data Feed with hourly refresh schedule.
For real-time price and inventory updates (rather than waiting for the hourly crawl), use Meta's Catalog Batch API:
// Push individual product updates immediately when price or inventory changes
async function pushProductUpdateToMeta(variantSku: string, inventory: number, priceInCents: number) {
await fetch(`https://graph.facebook.com/v18.0/${process.env.META_CATALOG_ID}/items_batch`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
access_token: process.env.META_ACCESS_TOKEN,
item_type: 'PRODUCT_ITEM',
requests: [{
method: 'UPDATE',
retailer_id: variantSku,
data: {
availability: inventory > 0 ? 'in stock' : 'out of stock',
price: `${(priceInCents / 100).toFixed(2)} USD`,
},
}],
}),
});
}
After catalog is approved in Instagram Shop:
For Stories: tap the sticker icon → Product → search your catalog
For Reels: same as video posts — add the product link sticker
After TikTok Seller Central is approved and catalog is synced:
Catalog errors prevent products from being tagged or shown in shops. Check weekly:
Meta Commerce Manager:
TikTok Seller Center:
| Metric | Where to Find | |--------|---------------| | Revenue from Instagram Shopping | Meta Commerce Manager → Analytics → Sales | | Revenue from TikTok Shop | TikTok Seller Center → Analytics | | Product tag click-through rate | Meta Business Suite → Content → Posts | | Catalog item rejection rate | Commerce Manager → Catalog → Diagnostics |
item_group_id for variant products — Meta and TikTok use this to group color/size options into a single product display instead of showing duplicates| Problem | Solution | |---------|----------| | Products stuck "under review" in Instagram Shop | Ensure product images show the item clearly with no overlaid text; review Meta's Commerce Policies for prohibited categories | | Price mismatch error in Meta | The price in your feed must exactly match the price on the landing page; if running a sale, update both simultaneously | | TikTok catalog items not appearing in TikTok Shop | TikTok requires separate Seller Center account approval — catalog sync is not sufficient; apply for TikTok Shop separately | | Product tags not showing on Instagram posts | Your Instagram Shop must be approved before tagging works; check Instagram → Settings → Business → Shopping for status | | Feed URL returns 403 after deployment | Add the Meta crawler's IP range to your CDN allowlist, or ensure the feed URL is publicly accessible without authentication |
tools
Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price
development
Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode
development
Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch
development
Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion