Some products need other products to complete the picture. A flashlight is nothing without batteries. Inform your customers about this and show them the products that complement the main product.
How do we do that? By organizing your product groups properly, we can set up rules like: if the customer adds product X from product category A to the shopping cart, show a product from product category B. But if there's already a product from product category B in the cart, then show a product from product category C. This process can be endlessly configured.
Moreover, it can be made even smarter by matching certain price ranges. For example, show expensive batteries for expensive flashlights and cheap batteries for affordable flashlights. This is just an example, but it can be configured according to your preferences for an optimal customer experience.