You can do this with Rules. Here is an example:
{
"rules_auto_add_shipping_service" : {
"LABEL" : "Auto-add shipping service",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "commerce_order", "commerce_shipping", "entity" ],
"ON" : { "commerce_order_update" : [] },
"IF" : [
{ "data_is" : { "data" : [ "commerce-order:type" ], "value" : "commerce_order" } },
{ "commerce_order_contains_product" : {
"commerce_order" : [ "commerce_order" ],
"product_id" : "YOUR-SKU-HERE",
"operator" : "\u003E=",
"value" : "1"
}
}
],
"DO" : [
{ "commerce_shipping_delete_shipping_line_items" : { "commerce_order" : [ "commerce_order" ] } },
{ "commerce_shipping_method_collect_rates" : {
"shipping_method_name" : "flat_rate",
"commerce_order" : [ "commerce_order" ]
}
},
{ "commerce_shipping_rate_apply" : {
"commerce_order" : [ "commerce_order" ],
"shipping_service_name" : [ "" ]
}
}
]
}
}
Just change the SKU or the other conditions to suit your needs.