skills/google-merchant-feed/SKILL.md
Generate a valid Google Merchant Center product feed (RSS 2.0 / XML) from any backend. Use this skill when the user needs to create or fix a Google Merchant feed, product XML feed, Google Shopping feed, or integrate products with Google Merchant Center. Covers all required and recommended fields, validation rules, common pitfalls, and backend-specific implementations for Django/Python, Node.js, and Next.js API routes.
npx skillsauth add agusabas/django-skills google-merchant-feedInstall 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.
This skill guides the creation of a valid Google Merchant Center product feed (XML/RSS 2.0) from any backend stack. It encodes lessons learned from production implementations and Google's official specification.
Supported backends:
g:availability, g:price, g:gtin, g:google_product_categoryAsk or detect which backend the user is working with:
references/django-python.mdreferences/nodejs.mdreferences/nextjs.mdAlways read references/google-requirements.md before any implementation.
It contains field-by-field validation rules that apply to all backends.
Before delivering any implementation, verify against this checklist:
Queryset / data source:
is_active=True (or equivalent)price <= 0Required fields — all must be present and non-empty:
g:id — stable unique identifierg:title — Title Case, max 150 chars, no HTMLg:description — max 5000 chars, fallback to title if emptyg:link — absolute HTTPS URL using the canonical frontend domaing:image_link — absolute HTTPS URL; fallback to default image if empty, never empty stringg:availability — exactly in stock or out of stockg:price — format {number:.2f} {ISO-currency} e.g. 1500.00 ARSg:condition — exactly new, used, or refurbishedRecommended fields:
g:brand — only if present, skip if nullg:gtin — validate: numeric only, length in (8, 12, 13, 14); skip if invalidg:mpn — product code/SKUg:google_product_category — numeric ID from Google taxonomyg:product_type — local category nameChannel metadata:
<link> points to the frontend domain (not the API domain)xmlns:g="http://base.google.com/ns/1.0" namespace presentapplication/xmlCommon pitfalls to avoid:
g:image_link with empty string — Google rejects it; always use a fallback image URLg:gtin with "0", "000000000" or non-numeric strings — validate strictly.title() or equivalentg:link pointing to the API domain instead of the frontendg:sale_price with same value as g:price — only emit if actually different| File | Content |
|------|---------|
| references/google-requirements.md | Full field spec, validation rules, Google taxonomy tips |
| references/django-python.md | Complete Django view using ElementTree |
| references/nodejs.md | Express route using xmlbuilder2 |
| references/nextjs.md | Next.js App Router API route |
development
Refactor Django/Python code to improve maintainability, readability, and adherence to best practices. Transforms fat views into Clean Architecture with Use Cases and Services. Applies SOLID principles, Clean Code patterns, Python 3.12+ features like type parameter syntax and @override decorator, Django 5+ patterns like GeneratedField and async views. Fixes N+1 queries, extracts business logic from views, separates Read/Write serializers, and converts exception-based error handling to explicit return values. Use when refactoring Django code, applying Clean Architecture, or modernizing legacy Django projects.
development
Create production-quality Django REST Framework APIs using Clean Architecture and SOLID principles. Covers layered architecture (views, use cases, services, models), query optimization (N+1 prevention), pagination/filtering, JWT authentication, permissions, and production deployment. Use when building new Django APIs, implementing domain-driven design, optimizing queries, or configuring authentication. Applies Python 3.12+ and Django 5+ patterns.
development
Expert Django and Celery guidance for asynchronous task processing. Use when designing background tasks, configuring workers, handling retries and errors, optimizing task performance, implementing periodic tasks, or setting up production monitoring. Follows Celery best practices with Django integration patterns.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.