Nexscope Ozon Russia SKU full detail query for one product ID per call, returning price, discount, Ozon Card price, rating, review count, stock, sales, revenue, revenue potential/lost revenue, listing date, images, and the complete product card. Trigger for Ozon product or SKU detail, price/rating/sales/stock checks, competitor Ozon cards, Nexscope Ozon detail, or Russian marketplace product detail by a known SKU.
npx skills add https://github.com/nexscope-ai/nexscope-ecommerce-skills --skill ecommerce.ozon-product-detail
This skill fetches the full product card for one Ozon (Russia) SKU per call via Nexscope. Returned fields include price, Ozon Card price, discount, rating, reviews, stock, monthly sales units, monthly sales revenue, lost profit, potential revenue, first listing date, image, and more.
Single-SKU constraint: productId is a single Ozon product ID (integer or string). The former productIds array is deprecated and rejected. When several SKUs are requested, call the tool once per SKU and inform the user that each call consumes credits.
Fulfillment model per SKU: Each product card carries deliveryScheme:
FBO — Fulfillment by Ozon (stock in Ozon warehouses)FBS — Fulfillment by Seller (seller-shipped)Pass includeFbs: true to allow FBS SKUs and FBS-scoped metrics into the response; false (or omitted) keeps the result FBO-centric. This switch applies to the requested SKU.
Previous-period comparison: The card includes previousSalesUnits / previousRevenue — sales and revenue from the equal-length period immediately before [startDate, endDate] — ready for MoM / period-over-period diffs without extra calls.
Revenue potential: revenuePotential projects what the SKU could have earned if it had been in stock every day of the window; compare with monthlySalesRevenue to quantify stock-out drag, together with lostProfit / lostProfitPercent.
Date window: startDate / endDate define the period for all period-aggregated metrics. Latest selectable date is yesterday (T-1); today and future dates are rejected.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| productId | integer\|string | yes | One Ozon SKU ID, for example 1786874757 |
| startDate | string | no | Stats window start, YYYY-MM-DD; latest = yesterday |
| endDate | string | no | Stats window end, YYYY-MM-DD; latest = yesterday |
| includeFbs | boolean | no | true to include FBS data; false = FBO-only |
/mpstats/ozon/productDetail (full parameters/responses/error codes in references/api.md)python scripts/ozon_product_detail.py '<JSON params>' [--inline]Output strategy (script default behavior):
<cwd>/nexscope/<YYYY-MM-DD>/<session>/data/ecommerce.ozon-product-detail-<timestamp>.json (<cwd> is the working directory when the script executes, which in Claude Code is the current project directory; <session> is taken from the SESSION_ID environment variable, automatically grouped by user task; do not write to /tmp; error if the current directory is not writable)total/costToken, length of the largest list field + first 3 samples)--inline to force full output to stdout (still writes to disk)Reading data: Check the summary first to determine if it is sufficient. When specific fields are needed, use jq or ConvertFrom-Json to extract from the saved JSON file as needed, avoiding loading the entire JSON into context.
If you encounter authentication or credit issues:
NEXSCOPE_API_KEY environment variable is not set.NEXSCOPE_API_KEY environment variable with a valid API key.1. Single-SKU detail
{"productId": 1786874757}
2. Single-SKU lookup with period
{
"productId": 1786874757,
"startDate": "2025-03-01",
"endDate": "2025-03-31",
"includeFbs": true
}
3. FBO-only snapshot
{"productId": 1786874757, "includeFbs": false}
4. SKUs discovered upstream — full card
{"productId": <one productId from ecommerce.ozon-product-search>}
ecommerce.ozon-product-search to resolve a keyword / brand / seller into productIds, then query selected IDs here one at a time.ecommerce.ozon-product-trend.brand-products / category-products / seller-products — they already return aggregated metrics per SKU under that dimension.productId, title, price, monthlySalesUnits, monthlySalesRevenue, rating, reviewCount, balance, deliveryScheme, firstDate. Pull revenuePotential / lostProfit / lostProfitPercent in when the user asks about stock-out impact.currency field carries the symbol. Do not silently relabel.successCount / failedCount / failures; when the SKU fails, report its reason rather than silently dropping it.previous* fields are present, render them side-by-side or as diff; don't report a single-period number as "trend".salesPerDayWithStock / dailySalesRevenueWithStock only count days that had inventory; distinguish from the plain salesPerDay / dailySalesRevenue.deliveryScheme value over assuming FBO.productId per request. Never send an array or the deprecated productIds field.endDate must not be today or future.brandId, country, category, minPrice / maxPrice / averagePrice, balanceFbs, frozenStocks, warehousesCount, daysInSite / daysInStock / turnoverDays, position / categoryPosition / revenueSharePercent, isFbs. Use brand-products / category-products / seller-products if those are needed.Applicable — Per-SKU Ozon card lookup:
| User Says | Scenario |
|-----------|----------|
| "Pull Ozon details for these SKUs" | Query each selected SKU in a separate, user-approved paid call |
| "What's the price / rating / stock of Ozon SKU 1786874757" | Single-SKU card |
| "Competitor's Ozon listings, give me sales & rating" | Competitor card audit |
| "Compare FBO vs FBO+FBS metrics for this SKU set" | Fulfillment-model comparison |
Not applicable — Needs beyond per-SKU card:
ecommerce.ozon-product-searchecommerce.ozon-product-trendBoundary judgment: If the user already has a SKU and wants sales / price / stock / rating, this is the skill. For a list, process one SKU per call without silently multiplying paid requests. If they don't yet have SKUs, route through the search or drill-down skills first.
Take nexscope-ai/ecommerce.ozon-product-detail from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.