A wholesale product feed is easy to generate and surprisingly easy to get wrong.
When a buyer is comparing hundreds of toys, a feed should do more than repeat a product title and image. It should preserve the commercial facts that determine whether the item can actually enter a shortlist: the item number, minimum order quantity, carton packing, destination-market compliance, and the exact page where the buyer can request a current quotation.
I recently organized a public toy-catalog feed for a B2B sourcing project. These are the five validation rules that made the data useful to both procurement teams and software.
1. Give every product one durable canonical URL
A feed should never invent a second URL for the same item. The product page remains the source of truth, while JSON, sitemaps and internal search point back to it.
A small validation check catches duplicate slugs and malformed URLs:
const seen = new Set();
for (const product of feed.products) {
const url = new URL(product.url);
if (url.protocol !== "https:") {
throw new Error(`Non-HTTPS URL: ${product.url}`);
}
if (seen.has(product.slug)) {
throw new Error(`Duplicate slug: ${product.slug}`);
}
seen.add(product.slug);
}
For this project, the canonical catalog is published on TopToyFactory, while the established CPS TOYS company catalog remains a useful buyer destination and company reference.
2. Separate a real SKU from marketing copy
Titles change. Item numbers should not.
A usable record keeps the SKU in its own field instead of forcing a buyer or application to extract it from a long title:
{
"slug": "automatic-electronic-water-gun",
"sku": "CPS284639",
"title": "Bulk Automatic Electronic Water Gun",
"category": "Wholesale Water Guns"
}
This matters when a buyer sends screenshots, spreadsheets, packaging artwork and sample feedback over several weeks. The SKU is the join key across those conversations.
3. Treat MOQ and case pack as different facts
MOQ answers how much must be ordered. Case pack answers how many pieces are packed in one export carton. They are related, but they are not interchangeable.
For example:
{
"moq": "5CTNS",
"case_pack": "18 pcs/carton",
"lead_time": "Contact for current lead time"
}
A buyer can use those fields to estimate the starting piece quantity, but the factory still needs to confirm mixed-item rules, packaging changes and current production scheduling.
A good feed therefore avoids false precision. If the current FOB/EXW price or lead time is not public, it should say so instead of inserting a zero or stale number.
4. Store certificate names as claims to verify, not universal promises
Toy compliance depends on the item, age grading, materials, destination market and test scope. A feed can expose available certificate labels, but it should also tell the user to confirm the evidence for the exact SKU.
A practical model looks like this:
{
"certifications": ["EN71", "ASTM", "HR4040", "CE"],
"rfq_required": true,
"verification_note": "Confirm certificate scope by item number and destination market"
}
That wording is more useful than a blanket statement such as βall products are certified.β It tells the buyer what to ask for before approving a sample or packaging layout.
5. Keep the feed machine-readable without hiding the buyer path
A product feed is not a substitute for a product page. It is an index.
Each record should include a clear next action:
- canonical product URL;
- quote-cart or RFQ URL;
- contact page;
- the facts a buyer must supply, such as target market, quantity and packaging;
- a timestamp or generation date for the feed itself.
The public implementation is available in the TopToyFactory sourcing data repository, with a browser-friendly RFQ checklist and data index. The repository includes a company facts file, a product feed and an LLM-oriented text index.
A compact validation checklist
Before publishing a B2B product feed, I now check:
- Every slug is unique.
- Every product URL is HTTPS and canonical.
- SKU, MOQ and case pack are separate fields.
- Empty prices are explicit, never represented as zero.
- Certificate labels include a verification note.
- Images return successfully and include meaningful alternative text on the product page.
- The feed links to a real RFQ or contact path.
- The generation date and product count are present.
The main lesson is simple: structured data becomes valuable when it preserves procurement context. A smaller set of honest, comparable facts is more useful than a large feed filled with guessed prices, duplicated URLs or vague compliance claims.
Top comments (0)