Playphone Oman Product Facts
Pricing
from $3.00 / 1,000 successfully parsed product rows
Playphone Oman Product Facts
Public product and variant facts, SKU, exact OMR prices, inventory and initial catalog snapshot.
Pricing
from $3.00 / 1,000 successfully parsed product rows
Rating
0.0
(0)
Developer
Vixendata
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Read precise OMR prices, SKU, product/variant IDs and public inventory facts from Playphone Oman. Useful for product matching and bounded price/stock snapshots. No login or API keys for the source website. This independent tool is not affiliated with or endorsed by Playphone.
Quick start
Use smoke/direct.json to read the selected black AirPods Max variant (two source requests including robots). Use smoke/discovery.json for one product from the initial public catalog page. Install requirements.txt, then run python -m src.main in an Apify environment. Offline tests: python -m unittest discover -s tests -v.
Input
productUrls: up to 100 public HTTPS www.playphone.om/product/slug URLs, no queries or fragments. Empty/omitted stays empty. Supply URLs or enable discovery.discoverProducts: default false. Reads public /products once and extracts its initial rendered products. At research time this exposed 32 products against a reported total of 346. No pagination, completeness or all-variant catalog coverage is claimed. Initial catalog membership and count can change.includeAllVariants: default false. Direct URLs return the requested slug only. Enable to extract all variants embedded in each requested product page. Other variants haveselectedVariant: false; discovery is unaffected.maxProducts: maximum output variant records, 1–100, default 5. Variants count separately. Direct URLs run before discovery; discovery is skipped when the bound is already filled. Embedded variant order is source order when all variants are enabled.maxRequests: 2–150, default 15, including robots and redirects. Exhaustion fails rather than exceeding the budget.
Output semantics
One row per variant ID. Current storePrice becomes price, exactly three decimal places, plus integer priceBaisa (OMR 63.9 → 63.900, 63900 baisa). originalPrice retains the source field meaning, not a verified MSRP or historical price. Both raw numeric strings are preserved. Decimal conversion rejects negative, non-finite and overprecision prices.
quantity is the source inventory count; stock is derived only when quantity exists. isOutOfStockSellable and isPreOrderAvailable stay separate source flags, so out-of-stock inventory can still be sellable. Missing fields remain null and appear in missingFields. Availability is not a checkout or delivery promise. Listing data may lack brand and attributes; direct details contain richer facts. Rows include category names, attributes when present, image URLs, requested source URL, variant product URL, UTC timestamp and source mode. No long descriptions are copied.
The OUTPUT key-value record explains coverage and request counts. catalogComplete remains false. Dataset publication happens only after the whole bounded run succeeds; a failed source request does not silently publish an incomplete accumulation.
Access and respectful fetching
Public website HTML and embedded rendered Next.js Flight/RSC data only. No private APIs, login, proxies, challenge solving, credentials or restriction bypass. Robots is loaded first and enforced on each request and redirect. Single-request pacing is at least one second and honors greater crawl-delay/request-rate directives. Redirects must retain the same allowlisted public host and path type. Actual HTTP errors including 401/403/429, active CAPTCHA/challenge pages, malformed data, changed identity/currency, byte limits and budget exhaustion stop without retries. HTML is capped at 12 MB; robots at 1 MB.
Research on 7 October 2026 found robots allowing public access and purchasing-focused terms at https://www.playphone.om/terms_and_condition without an identified scraping prohibition. This is not legal permission or a license.
Validation and limitations
Sanitized real fixtures preserve relevant factual public props from one product detail and the 32-item initial listing; provenance and source hashes are in tests/fixtures/provenance.json. Synthetic regressions cover length-prefixed UTF-8 Flight records, missing stock, precision, redirects, budgets, robots and actual HTTP denials. Flight framing is parsed without evaluating JavaScript. Apify schemas are checked against official downloaded metaschemas. Fresh pinned runtime imports and offline tests are verified separately from hosted build/run validation.
No verified public pagination route is implemented. Use known product URLs for products beyond the initial listing; do not interpret the reported total as extracted coverage.
Pricing
The price is $3 per 1,000 product rows saved to the default dataset, plus $0.00005 per run start, with usage included; check the Store pricing panel for the price applying to your run.