studio.insert_product_card
Put a stock item's name and selling price on the video as a product card: a price_tag text clip on the first text track (or the one track_id names), from start_ms for duration_ms. It reads the stock record as you, so the card shows what stock_item_read shows; the values are copied into the project, and later stock edits do not change a card already placed. The price prints with the currency code (SGD 12.90), taken from the business's sales_settings default_currency unless you pass currency. style: tag (name over price, lower left), banner (name and price on one line, bottom centre), price_only (the price alone, large, top right). Free. The result names the clip, its track and the text shown. Refuses, placing nothing: an unknown stock_item_id (stock_item_list lists the ids), a retired item (restore it with stock_item_update, is_active 1), an item with no sell_price_cents (set it with stock_item_update), no currency (pass currency, or save one with sales_settings_upsert), a token without the stock namespace (reconnect with stock in scope, or pass the values yourself to studio.place_product_card), a locked, unknown or non-text track, and an overlap with another clip (the refusal gives the nearest start_ms that fits).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | The card's layout; tag when left out. | |
| currency | No | The ISO code the price prints with; the business's sales_settings default_currency when left out. | |
| start_ms | Yes | Timeline millisecond where the card appears. | |
| track_id | No | A text track (vtr_) from studio.get_composition; the first text track when left out. | |
| project_id | Yes | The studio project (vp_...) the card goes into. | |
| duration_ms | No | How long the card shows, in milliseconds; 4000 when left out. | |
| stock_item_id | Yes | The stock item to show, from stock_item_list; its name and sell_price_cents are copied onto the card. |