โ† All skills
Tencent SkillHub ยท Communication & Collaboration

Online Shopping

Browse and buy products from online stores, including Cloudflare-protected sites. Use when the user asks to find, compare, or order products online. Handles...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Browse and buy products from online stores, including Cloudflare-protected sites. Use when the user asks to find, compare, or order products online. Handles...

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, references/preferences-template.md, references/setup.md, references/sites-template.md, references/sites.md, scripts/browse.mjs

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 13 sections Open source page

Overview

Search for products, compare options, and complete purchases on online stores โ€” even those protected by Cloudflare. Uses Patchright (stealth Playwright) to avoid bot detection.

First-Time Setup

Run the setup script to install all dependencies: bash <skill-dir>/scripts/setup.sh This installs xvfb, Patchright, and Chromium, then verifies everything works. See references/setup.md for manual steps or troubleshooting.

Workflow

Understand the request โ€” product type, specs, size, brand preference, budget Browse the store โ€” use stealth browser script to search and extract product listings Recommend โ€” present options with price, availability, ratings. Give a clear recommendation. Confirm โ€” get explicit approval before adding to cart Checkout โ€” fill shipping/contact details, select delivery and payment Stop before paying โ€” always confirm with the user before completing a purchase

Using the Stealth Browser

All browsing goes through Patchright scripts executed with xvfb-run. Do NOT use OpenClaw's built-in browser tool for Cloudflare-protected sites โ€” it connects via CDP which leaks Runtime.enable calls that Cloudflare detects.

Quick browse (bundled script)

xvfb-run --auto-servernum node <skill-dir>/scripts/browse.mjs "<url>" --screenshot /tmp/page.png --text

Custom scripts

Write .mjs scripts in /tmp/ for multi-step flows. Auto-detect Patchright path: import { createRequire } from 'module'; import { execSync } from 'node:child_process'; import { existsSync } from 'node:fs'; function findPatchright() { const root = execSync('npm root -g 2>/dev/null').toString().trim(); const candidates = [ root + '/openclaw/node_modules/patchright', process.env.HOME + '/.npm-global/lib/node_modules/openclaw/node_modules/patchright', root + '/patchright', ]; for (const p of candidates) { try { if (existsSync(p)) return p; } catch {} } throw new Error('Patchright not found. Run setup.sh first.'); } const require = createRequire(import.meta.url); const { chromium } = require(findPatchright()); const browser = await chromium.launchPersistentContext('/tmp/patchright-ctx', { headless: false, // REQUIRED โ€” Cloudflare detects headless viewport: null, // REQUIRED โ€” use real viewport, not default 800x600 args: ['--no-sandbox', '--disable-gpu'], }); const page = browser.pages()[0] || await browser.newPage(); // ... your automation here ... await browser.close(); Execute with: xvfb-run --auto-servernum node /tmp/my-script.mjs

Critical best practices (from Patchright docs)

These are essential for avoiding bot detection: headless: false โ€” always. Cloudflare fingerprints headless mode. Use xvfb for servers without a display. viewport: null โ€” let the browser use its natural viewport. Custom viewports are a detection signal. Do NOT set custom userAgent or HTTP headers โ€” fingerprint injection makes you more detectable, not less. Use persistent context (launchPersistentContext) โ€” retains cookies, localStorage, and session state between runs. Also more closely resembles real browser behavior. Prefer Google Chrome over Chromium where available (x86_64: npx patchright install chrome, then channel: "chrome"). Chromium has subtle fingerprint differences. ARM64 only supports Chromium. Do NOT use connectOverCDP() โ€” connecting via raw CDP bypasses Patchright's patches. Always use chromium.launch() or chromium.launchPersistentContext().

Why Patchright works where Playwright doesn't

Patchright patches three key detection vectors: Runtime.enable leak โ€” Playwright uses Runtime.enable CDP call which sites detect. Patchright executes JS in isolated execution contexts instead. Command flag leaks โ€” Removes --enable-automation, adds --disable-blink-features=AutomationControlled. Console.enable leak โ€” Disables console API to avoid detection (console.log won't work in page context).

Script workflow for shopping

Search script โ€” navigate to store, search for product, extract listings as text Product script โ€” click into a product page, get details Cart script โ€” add to cart, navigate to checkout Checkout script โ€” dump form fields with page.evaluate(), fill details, select shipping/payment Screenshot โ€” always screenshot before completing purchase for user confirmation Write each step as a separate .mjs script in /tmp/. Persistent context means the cart and session carry over between scripts.

Debugging tips

Use page.screenshot() liberally to see what the page looks like Use page.evaluate(() => document.body.innerText) to dump page text Dump form fields with page.evaluate(() => { ... querySelectorAll('input') ... }) before filling Some fields may be read-only (auto-filled from other fields) โ€” check before trying to fill Use page.waitForTimeout() generously โ€” sites need time to load/render Close cookie banners early โ€” they can block interactions

User Details & Preferences

Check references/preferences.md for saved shopping data (addresses, payment methods, delivery preferences, order history). If it doesn't exist yet, copy references/preferences-template.md to references/preferences.md and fill it in. Fall back to USER.md for basic contact/address info. When checkout requires info not on file, ask the user. After a successful order, update references/preferences.md with: Any new address or delivery preference The order in the history table Never store card numbers or sensitive payment credentials. Only store method names (e.g. "Swish", "PayPal", "Visa ending 4321").

Safety

Never complete a purchase without explicit user confirmation Show the cart summary, total price, and shipping cost before final step Screenshot the checkout page and describe it to the user If something looks wrong (wrong product, unexpected charges), stop and ask

Site-Specific Notes

See references/sites.md for store-specific quirks and tips. If the file doesn't exist yet, copy references/sites-template.md to get started.

Category context

Messaging, meetings, inboxes, CRM, and teammate communication surfaces.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
5 Docs1 Scripts
  • SKILL.md Primary doc
  • references/preferences-template.md Docs
  • references/setup.md Docs
  • references/sites-template.md Docs
  • references/sites.md Docs
  • scripts/browse.mjs Scripts