We fetch the feed through the Shoptok proxy and detect DNS, timeout, WAF, Cloudflare, login, redirect, or permission problems.
Check if your product feed is ready for Shoptok
Paste the public URL of your XML or CSV product feed. We check access through our proxy, validate the format, inspect required fields, test sample product pages, and test sample images.
What happens next
We detect XML or CSV, check that the file can be parsed safely, and report malformed structure or encoding issues.
We inspect product rows for required fields, aliases, empty values, invalid prices, and examples of problematic products.
We try a small set of image URLs through the proxy and verify access, content type, dimensions, and obvious blocking.
What we check
The result page tells you what is OK, what needs work, and how to fix blocked access or feed data issues.
Field guide, XML structure, and resources
Use this as the practical checklist while preparing or exporting your merchant feed.
Feed specification
A good feed has one product per item, stable identifiers, public product URLs that open real product pages, numeric prices, UTF-8 text, and direct image URLs that can be fetched through the Shoptok proxy.
sku, product_category, product_brand, product_name, product_url, product_price, and product_image_url. When a model or MPN is available, add it as optional product_mpn. Aliases are detected, but official names make validation and support much clearer.
<products> root and one <product> element per product.
&, <, and >.
| Field | Accepted aliases | Requirement | Good example |
|---|---|---|---|
sku |
skuidproduct_idg:id |
Stable product identifier. Do not change it when price, image, or stock changes. | SKU-1001 |
kategorija_proizvoda |
product_categorycategoryg:product_typegoogle_product_category |
Category name or full category path that helps classify the product. | Home > Lighting > Lamps |
naziv_proizvoda |
product_nametitleg:title |
Readable product title in UTF-8. Avoid internal codes as the only title. | Oak desk lamp 45 cm |
proizvodjac |
product_brandbrandvendorg:brand |
Brand, manufacturer, vendor, or producer name. | Example Brand |
proizvod_url |
product_urllinkg:link |
Public product detail URL that opens without login, challenge, geo block, or private network access. | https://example.com/products/sku-1001 |
cena |
product_pricepriceregular_priceg:price |
Current positive product price. Values such as 129.90, 129,90 EUR, 1.299,00 RSD, or 129,90 KM are accepted. |
129.90 |
slika |
product_image_urlimage_urlimage_linkg:image_link |
Direct public product image URL. It must return image content, and should be at least 500 x 500 px. | https://example.com/images/sku-1001.jpg |
Recommended optional fields
product_mpn,mpn, ormodelfor a stable manufacturer model code and stronger matching.product_descriptionfor clean UTF-8 product details.product_ean,gtin, oreanfor stronger matching.product_stockorproduct_availabilityfor availability checks.product_delivery_priceand nestedattributes > attribute > key/valuetechnical specifications when available.
XML rules
- Start with
<?xml version="1.0" encoding="UTF-8"?>. - Use lowercase element names consistently across all products.
- Publish the feed on a stable URL and refresh it after product, price, stock, or URL changes.
- Keep the feed at or below 3 GB and allow
HEADplusGET.
Platform integrations
Most commerce platforms can publish a stable product feed URL. Use the platform export that gives you public XML or CSV, one product per row or element, and consistent field mapping.
WooCommerce
- Use the Woo Product Feed Pro plugin.
- Create an XML or CSV product feed with a stable public URL.
- Schedule refreshes after product imports, stock changes, or price updates.
- Allow
proxy.shoptok.com (IP: 46.224.2.158)in Wordfence, Cloudflare, CDN, cache, and bot-protection rules.
Shopify
- Use the Product Feed Shopify app.
- Export XML or CSV with one product per row or element.
- Use public storefront product URLs, not admin URLs.
- Use direct Shopify CDN image URLs for
product_image_url.
Google Merchant
- Common Google aliases are detected:
g:id,g:title,g:brand,g:mpn,g:link,g:price, andg:image_link. - Use stable IDs and direct public product URLs.
- Include brand, GTIN, MPN, category, price, and images whenever available.
- Check the Google product data specification when mapping fields.
Meta / Facebook catalog
- Common catalog fields are detected:
id,title,description,availability,condition,price,link, andimage_link. - Keep CSV or XML headers consistent across all rows.
- Use brand, GTIN, MPN, category, and image fields where possible.
- Review Meta catalog data feeds for platform-specific guidance.
Proxy allowlist
Feed and image access is tested through the Shoptok proxy, so merchant firewalls and bot-protection tools must allow that traffic.
proxy.shoptok.com (IP: 46.224.2.158) or by user-agent EponudaBot/1.0 (contact: support@eponuda.com). Best setup: allow both signals for feed, product page, and image URLs.
HTTP rules
- Allow
HEADandGETfor the feed URL. - Allow
GETfor product image URLs. - Do not redirect the feed to login, consent, or captcha pages.
- Keep redirect chains short and public.
WAF rules
- Bypass bot challenges for Cloudflare, Akamai, Imperva, DataDome, Sucuri, AWS WAF, and similar tools.
- Allow the proxy endpoint/IP or the Shoptok user-agent. If your WAF supports it, allow both together for a stricter rule.
- Check for geo, ASN, country, and rate-limit rules that may block server traffic.
- Return a clear
200response with XML or CSV content.
Cloudflare custom rule example
Create a WAF Custom Rule for the feed URL, product URLs, and image URLs:
(ip.src in {46.224.2.158}) or (http.user_agent contains "EponudaBot/1.0 (contact: support@eponuda.com)")
Action: skip managed WAF rules, bot challenges, and rate limiting for those feed-related paths only. Use or when Cloudflare can match either signal; use a stricter and rule only if both signals are always present in your setup.
FAQ
Short answers for the most common feed setup questions.
What feed URL should I submit?
Use a public XML or CSV URL that returns product data directly. The URL should not require login, cookies, a browser session, or manual captcha solving.
Can I use a Google or Meta feed?
Yes. Common Google Merchant and Meta catalog aliases are detected, including ID, title, brand, link, price, and image fields.
What if Cloudflare or another WAF blocks the check?
Allow proxy.shoptok.com (IP: 46.224.2.158) or the user-agent EponudaBot/1.0 (contact: support@eponuda.com). Best setup is to allow both. The feed URL, product URLs, and image URLs should allow HEAD and GET.
Which plugin should I use?
For Shopify use Product Feed. For WooCommerce use Woo Product Feed Pro.
How should prices and encoding look?
Use UTF-8. Prices must contain one positive numeric value. Common labels and symbols such as EUR, €, RSD, DIN, BAM, KM, HRK, kn, and USD are accepted and ignored.
Why do images matter?
Each product needs a direct image URL. The checker samples image URLs to verify access, content type, dimensions, and obvious blocking.