<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[TopToyFactory Data & Sourcing Notes]]></title><description><![CDATA[TopToyFactory Data & Sourcing Notes]]></description><link>https://toptoyfactory-data.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 03 Nov 2026 07:06:36 GMT</lastBuildDate><atom:link href="https://toptoyfactory-data.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Designing an AI-Readable Product Feed for a Wholesale Toy Catalog]]></title><description><![CDATA[A practical JSON product-feed structure for wholesale catalogs, covering canonical URLs, company facts, product facts, missing-price states and AI/search…]]></description><link>https://toptoyfactory-data.hashnode.dev/designing-an-ai-readable-product-feed-for-a-wholesale-toy-catalog</link><guid isPermaLink="true">https://toptoyfactory-data.hashnode.dev/designing-an-ai-readable-product-feed-for-a-wholesale-toy-catalog</guid><category><![CDATA[ecommerce]]></category><category><![CDATA[SEO]]></category><dc:creator><![CDATA[TopToyFactory Sourcing Team]]></dc:creator><pubDate>Fri, 10 Jul 2026 04:41:26 GMT</pubDate><content:encoded><![CDATA[<p>A B2B wholesale catalog needs to serve three audiences at the same time: human buyers, search crawlers, and AI systems that extract factual product information. A traditional catalog page can look good to a buyer while still making automated extraction unnecessarily difficult.</p>
<p>This article describes a practical product-feed structure for a wholesale toy catalog. The example is based on the public TopToyFactory sourcing data repository:</p>
<p><a href="https://github.com/kxxxyyy/toptoyfactory-sourcing-data">https://github.com/kxxxyyy/toptoyfactory-sourcing-data</a></p>
<h2>Separate company facts from product facts</h2>
<p>Company-level data changes slowly. Product-level data changes often. Keeping them in separate documents avoids repeating legal names, contact channels and factory capabilities on every product object.</p>
<p>A company-facts document can contain:</p>
<ul>
<li><p>frontend brand name</p>
</li>
<li><p>legal company name</p>
</li>
<li><p>canonical website</p>
</li>
<li><p>product scope</p>
</li>
<li><p>OEM and ODM capabilities</p>
</li>
<li><p>supported certificates</p>
</li>
<li><p>public contact channels</p>
</li>
<li><p>major collection URLs</p>
</li>
</ul>
<p>The public company facts page for the catalog is available at:</p>
<p><a href="https://www.toptoyfactory.com/company-facts.json">https://www.toptoyfactory.com/company-facts.json</a></p>
<h2>Use a compact product object</h2>
<p>An AI-readable product feed should prioritize verified facts instead of marketing paragraphs. Useful fields include:</p>
<ul>
<li><p>slug and canonical URL</p>
</li>
<li><p>product title and category</p>
</li>
<li><p>SKU or item number</p>
</li>
<li><p>MOQ</p>
</li>
<li><p>case pack</p>
</li>
<li><p>unit-price state or public price range</p>
</li>
<li><p>certificates</p>
</li>
<li><p>lead-time state</p>
</li>
<li><p>image URLs</p>
</li>
<li><p>short factual summary</p>
</li>
</ul>
<p>The public product feed is available at:</p>
<p><a href="https://www.toptoyfactory.com/product-feed.json">https://www.toptoyfactory.com/product-feed.json</a></p>
<h2>Keep URLs canonical</h2>
<p>Every object should point to the same canonical URL used in the HTML page, XML sitemap and JSON-LD. Mixed domains or legacy paths create duplicate signals. During a domain migration, the old domain should redirect path-for-path while the feed only emits the new canonical host.</p>
<p>For TopToyFactory, the canonical B2B catalog starts at:</p>
<p><a href="https://www.toptoyfactory.com/">https://www.toptoyfactory.com/</a></p>
<p>The established CPS TOYS domain remains available as a historical company and product resource:</p>
<p><a href="https://www.cps-toys.com/">https://www.cps-toys.com/</a></p>
<h2>Represent missing data honestly</h2>
<p>Wholesale products often do not have a fixed public price. Do not emit a fake zero. A feed can use a clear state such as contact_for_fob_exw_price, then expose MOQ, case pack and quotation context. This is more useful to buyers and avoids misleading structured data.</p>
<p>The same rule applies to lead time and certificates. If a value must be confirmed by item number, say so explicitly.</p>
<h2>Make category facts easy to extract</h2>
<p>Category pages should publish a short sourcing summary with product scope, typical MOQ range, packaging options, certificate context and OEM support. This gives AI systems a clean answer block and helps human buyers understand the collection before opening individual products.</p>
<p>For example, a Hot Sellers collection can combine squishy toys, stress relief toys, bubble toys and other current products while retaining item-level facts:</p>
<p><a href="https://www.toptoyfactory.com/collections/hot-sellers/">https://www.toptoyfactory.com/collections/hot-sellers/</a></p>
<h2>Version and validate the feed</h2>
<p>A production feed should be generated from the same catalog model as the website. Validation checks should confirm:</p>
<ol>
<li><p>every product URL returns 200;</p>
</li>
<li><p>every image URL is public;</p>
</li>
<li><p>every canonical uses the production domain;</p>
</li>
<li><p>no product emits a fake price;</p>
</li>
<li><p>duplicate slugs are rejected;</p>
</li>
<li><p>redirects stay outside the canonical feed;</p>
</li>
<li><p>structured data matches visible page facts.</p>
</li>
</ol>
<p>A compact public feed is not a replacement for HTML product pages, XML sitemaps or JSON-LD. It is an additional machine-readable surface that makes verified facts easier to reuse across search, AI assistants and buyer tools.</p>
]]></content:encoded></item></channel></rss>