So I want to give customers a discount when their cart is +200 and they choose instore pickup and I can apply a coupon manually but I was wondering how I would go about creating a custom promotion that would include constraints of the cart being X dollars or more and they have to choose a specific shipping option.
For example the the customer has 3 options currently, ship, in-store pickup, and curb side pickup.
So if the customer chooses in-store pickup or curbside and the cart is 200+ then they get 5% off.
I believe you need to write a custom order-level promotion. In the Promotion processor, you can check specific shipping methods from context.OrderForm.Shipments
As Naveed suggested, you need to write a custom Order promotions (Spend for discount on order). You can refer promotions | Optimizely Developer Community (episerver.com) and Custom promotions | Optimizely Developer Community (episerver.com).