There are many ways to define data models in DynamoDB. The right data model for your application requires you to strike a delicate balance across all your access patterns. I'll illustrate one way to model what you're describing, but it is not the only way. I hope this helps get you un-stuck!
Take a look at the following data model:

In this example, I'm modeling the one-to-many relationship between sellers and products by establishing a seller partition. Each product exists within the seller partition.
I've chosen to model active/inactive sellers by introducing a global secondary index for each active Product. In the above example, notice that Joe Smith (SELLER#1) has GSIPK and GSISK attributes defined, which means Joe Smiths products are "active" and will show up in the GSI. The GSI would look like this:

If you want to search for products from active sellers, you would search the global secondary index. Notice that Jane Smith (SELLER#2) does not have any products in the GSI. That's because none of Jane Smiths Products have GSIPK and GSISK attributes defined. Therefore, if you want to mark a seller (or the sellers products) as active/inactive, you'd simply add/remove the GSIPK/GSISK attributes as needed.
In this example, marking a seller as inactive would require updating each of the sellers products (removing the GSIPK/GSISK). You'd do this with a batch call to update (or delete) multiple products. However, if this introduces a performance bottleneck, you may want a different approach.
You might consider using a time-to-live (TTL) attribute on inactive sellers/products and let DynamoDB handle removing the expired products from your product search. Since TTLs don't remove items immediately, you'd still need to filter for expired products when searching.
As you can see, there are many ways to handle data modeling in DynamoDB. The right fit for your use case depends on a deep understanding of your access patterns. I hope these approaches give you some ideas of the possibilities.