T-Soft Store Scraper | Products and Prices avatar

T-Soft Store Scraper | Products and Prices

Pricing

from $1.00 / 1,000 products

Go to Apify Store
T-Soft Store Scraper | Products and Prices

T-Soft Store Scraper | Products and Prices

Give a T-Soft store domain and get the catalogue: prices, discounts, stock, SKUs, barcodes, VAT, brands and images. No browser. Changes-only mode returns new, changed and removed products for price monitoring.

Pricing

from $1.00 / 1,000 products

Rating

0.0

(0)

Developer

Atesen Software

Atesen Software

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape any online store built on T-Soft, the Turkish e-commerce platform used by about 1,600 shops, many of them large brands. Give it a domain like direnc.net and get the whole catalogue as JSON, CSV or Excel: prices, discounts, stock, SKUs, barcodes, brands, categories and images. For price & stock monitoring, turn on changes only and schedule it to get just the new, changed and removed products.

  • Works on every T-Soft storefront: products are found through the store's sitemap and read from the data T-Soft embeds in each product page.
  • No browser, no login, no proxy. Fast and cheap (256 MB is enough).
  • Checks that each site really runs on T-Soft. Other sites get a free not_tsoft status row.
  • T-Soft pages also expose the stock quantity, VAT rate, supplier code and barcode of each product.

Use cases

  • Competitor price monitoring for brands and retailers on T-Soft (schedule it daily or weekly).
  • Stock, discount and assortment tracking: new products, sold-out items, campaigns.
  • Catalogue export / migration from a T-Soft store (with SKU and barcode).
  • Market research across many Turkish online shops; MAP / price-policy checks for distributors.

How do I know a store runs on T-Soft?

Usually pages carry T-Soft PRODUCT_DATA / PAGE_TYPE scripts. You don't have to check yourself: put any domain in and the scraper tells you.

Input

FieldDescription
storesStore domains or URLs (direnc.net, https://www.motorobit.com)
productUrlsIndividual product URLs, to track specific products
maxProductsPerStoreDefault 100; 0 = whole catalogue
includeDescriptionAdd the product description (plain text)
maxConcurrencyParallel page loads per store (default 3)
changesOnlyOff by default. On: save only new, changed and removed products since the previous run; unchanged ones are free (see Price & stock monitoring)
monitorKeyOptional name of the watch list; empty = derived from the input
{
"stores": ["direnc.net", "motorobit.com"],
"maxProductsPerStore": 100
}

Output

One row per product (type: "product"):

FieldDescription
store, platform, urlStore domain, T-Soft, product page
productId, sku, barcodeIdentifiers
name, brand, categoriesProduct info (category path from root to leaf)
priceCurrent selling price, VAT included (discounted price when there is one)
originalPrice, discountPercentCrossed-out list price and discount, when the shop shows one
currencyUsually TRY
inStock, totalStockAvailability and stock quantity when the store publishes it
imageUrl, imageUrlsProduct images
variantCount, variantsVariants (options, SKU, barcode, price, stock) where the platform exposes them
descriptionOnly with includeDescription

Prices are what a visitor of the store sees. Some shops show different currencies to visitors from abroad; check currency.

Status rows

The run doesn't fail on bad input. Problems become rows with type: "status" and are never charged:

statusmeaning
invalid_inputNo stores or product URLs given
invalid_urlNot a valid domain or URL
unreachable / failedThe site could not be loaded
not_tsoftThe site or page does not run on T-Soft
no_productsThe store's sitemap has no live product pages
not_foundThe product URL returns 404
not_a_productA T-Soft page that is not a product page
blockedThe shop showed a bot challenge; try again later

Use the Products and Status rows views in the dataset tab. RUN_SUMMARY in the key-value store has the counts.

Price & stock monitoring

Turn on Changes only (changesOnly: true) and schedule the Actor. Each run is compared with the previous run of the same input (or the same Monitor name, monitorKey), and only what changed is saved. Unchanged products are not saved and not charged; new and changed products cost the normal per-product price.

changeTypeMeaningCharged
newfirst time this product is seen (every product on the first run)yes, as a normal product
price_changedprice went up or down, also per variant (previousPrice, priceChange, priceChangePercent)yes
unavailablestill listed but sold out — temporarily unavailableyes
back_in_stocksold out last time, buyable againyes
stock_changedstock quantity changed, or a variant sold out / came backyes
variants_changeda variant (size, colour) was added or removedyes
removedproduct is gone: its page returns 404 (removedReason: not_found), or it was missing from the store's sitemap or a fully crawled store two runs in a row (not_listed)free
unchangednot savedfree

Every changed row keeps all the normal product fields and adds changeType, a changes list (e.g. {"field": "price", "from": 1299, "to": 1149}), previousPrice, priceChange, priceChangePercent, previousInStock, previousSeenAt and firstSeenAt. Products are matched by store + the platform's stable product ID (productId; variants by variantId), so a renamed product is not reported as new. A product that could not be loaded in one run (timeout, block) is never reported as removed. The Changes view in the Output tab shows just these columns; the run summary (RUN_SUMMARY) counts new, changed, unchanged and removed products.

Schedule example — every morning, get only the price and stock changes:

{
"stores": ["fantomshop.com"],
"maxProductsPerStore": 0,
"changesOnly": true,
"monitorKey": "fantomshop-daily"
}

Save the input as a task, then in Apify Console open Schedules → Create new, set cron 0 7 * * * (07:00 every day) and add the task. Connect a webhook, Google Sheets or Slack integration to receive only the changes. Use maxProductsPerStore: 0 (whole store) for complete removal detection; with a limit, the same first products of the sitemap are compared. Keep the input the same between runs: a different input or monitor name starts a new watch list (all products new again).

Pricing

Pay per event: $0.001 per product saved (that's $1 per 1,000 products), plus a tiny actor-start fee. Status rows are free.

Tips

  • Start with maxProductsPerStore: 20 to check a store, then raise it or set 0 for the full catalogue.
  • To monitor prices and stock, schedule the actor with Changes only on: you get (and pay for) only what changed.
  • Keep maxConcurrency low (2–4) for small shops.

This actor reads only public product pages and sitemaps, like a regular visitor. Please respect each shop's terms and scrape at a reasonable pace.

FAQ

Which stores work? Public T-Soft storefronts. Paste the domain. A store that is not T-Soft becomes a free status row.

How do I monitor price and stock? Turn on changesOnly and reuse the same monitorKey.

What does the first run return? The saved example reads two real T-Soft stores and returns product rows with price, stock, SKU and URL.