💳 PPE billing via Actor.push_data(..., charged_event_name="row_result") instead of a separate Actor.charge("merchant-lead") call.
0.1.3 — 2026-05-19
🛡️ Strip <script>, <style>, <svg>, <noscript> and <template> blocks from the combined page HTML before phone/email extraction — eliminates SVG viewBox false positives like "0 0 1200 1200".
☎️ Tighter phone validator — each digit group must be 1–4 digits, rejecting tracking-pixel IDs like "11-1779190157" that contain 10-digit runs.
📦 Wrapped merged_output.json-shaped envelope is now also pushed into the dataset as a final row (alongside per-store lead rows) and saved to the Key-Value Store as OUTPUT / merged_output.
0.1.0 — 2026-05-19
🎉 Initial release of Shopify Merchant Scraper.
Per-store extraction: store name, contact email, phone, social profiles, product count, currency.
Smart proxy ladder: direct → datacenter → residential with sticky residential after escalation.
Live dataset writes — one row pushed per store as soon as the lead is ready.
Asynchronous concurrency with configurable worker count and polite delay.
Pay-per-event monetisation via row_result on each pushed lead row.