# SKU Feed

SKU Feed displays shoppable videos that contain specific products (SKUs). This feed type is perfect for product detail pages and shopping experiences where you want to show videos featuring particular products.

## Overview

The SKU Feed allows you to display videos that showcase one or more specific products. Videos are filtered to only include content that features the provided product SKUs, making it ideal for e-commerce integrations.

## Usage

### Required Parameters

* `channelId` - Your encoded channel identifier (required, non-empty)
* `productIds` - List of product SKU identifiers (required, non-empty list)

### Programmatic Configuration

```kotlin
val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)

val productIds = listOf("6009775390877", "6009775423645", "6009775325341")

val viewOptions = viewOptions {
    baseOptions {
        feedResource(
            FeedResource.Sku(
                channelId = "Your_Encoded_Channel_Id",
                productIds = productIds
            )
        )
    }
    layoutOptions {
        feedLayout(FeedLayout.HORIZONTAL)
    }
}

videoFeedView.init(viewOptions)
```

## Complete Examples

### Single Product on PDP

```kotlin
class ProductDetailActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_product_detail)
        
        val productSku = intent.getStringExtra("product_sku") ?: return
        
        val videoFeedView = findViewById<FwVideoFeedView>(R.id.productVideos)
        
        val viewOptions = viewOptions {
            baseOptions {
                feedResource(
                    FeedResource.Sku(
                        channelId = "fashion_channel_id",
                        productIds = listOf(productSku)
                    )
                )
            }
            layoutOptions {
                feedLayout(FeedLayout.HORIZONTAL)
            }
            titleOptions {
                showFeedTitle(true)
            }
        }
        
        videoFeedView.init(viewOptions)
    }
}
```

### Multiple Products (Related Items)

```kotlin
class RelatedProductsActivity : AppCompatActivity() {
    private fun showRelatedProductVideos(relatedSkus: List<String>) {
        val videoFeedView = findViewById<FwVideoFeedView>(R.id.relatedVideos)
        
        val viewOptions = viewOptions {
            baseOptions {
                feedResource(
                    FeedResource.Sku(
                        channelId = "my_channel_id",
                        productIds = relatedSkus
                    )
                )
            }
            layoutOptions {
                feedLayout(FeedLayout.GRID)
                columnCount(2)
            }
        }
        
        videoFeedView.init(viewOptions)
    }
}
```

## Important Notes

* **Encoded Channel ID Required** - Channel ID must be an encoded value from Firework
* **Non-Empty Product List** - The `productIds` list cannot be empty (will throw exception)
* **Multiple SKUs Supported** - You can provide one or multiple product SKUs
* **Video Filtering** - Only videos tagged with the specified SKUs are shown
* **Product Tagging** - Products must be tagged in videos through the Firework CMS
* **SKU Format** - Use your own product SKU format as it appears in your system

## See Also

* [Feed Sources Overview](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources) - All available feed types
* [BaseOption Configuration](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/configuration/base-options) - Detailed configuration
* [Shopping Integration](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/shoppable-videos) - Shopping features
* [FwVideoFeedView](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/configure-video-feed) - Video feed widget
