YES, but....
In fact, you don't need to delete the promo code itself, but the association to the product. However, it's always good to delete the promo code as well, for the reasons below:
- Make your user's life easier
You're building this for an user, and you're building an usability paradigm, thus this paradigm has to keep the user in mind. One of the things that will happen if you don't delete promo codes is the user will lose track of them. Figure this scenario: your user forgets about the promo codes and 1 year later someone buys an item and uses this promo code for a product. This could be a HUGE issue, depending on promo code, it could mean a big loss.
- Promos are.... PROMOS
Sounds stupid, but well, it's exactly that. A promotional campaign (and a promo code is ALWAYS part of a promotional campaign) has limits in time, location, availability and such. Not deleting your promo codes would mean promos are infinite... if this is the case, why don't you simply adapt your
price structure?
- A promo code belongs to something
This is a given! Let's say you have a product with 1 or more promo codes. If you delete the product... why do you need the promo code? Take a look to this visual aid that illustrates the concept:
- Psychology Reasons
When you use a Promo Code, you're appealing to the customer's psychology. When available, the promo code appeals to the sense of Urgency, Scarcity, and even Illusion of Control. If not available, you communicate the user the promo code is not available anymore and can use this as a selling tool. Now think what would happen if you let that promo code live, yet not working. The sense of frustration for the user will go to the roof, it's like saying to your customers: "OK, I see you have a 10 dollars bill but I won't accept it. Just because"
However...
The above being said, keep in mind this doesn't deal with implementation, or at least only deals with it tangentially. For your admin users, it could be useful to offer an option like this:
Bottom line, you need to provide your user with an usability structure that helps them, and this includes their admin tasks as well as dealing with their customers without problems and financial/support issues. So always try to look the different aspects of the problem and if in doubt.... test, test, test!
Finally...
Some literature and testing that may help you see how deleting your coupon codes affects your flow. While a bit off the direct question, you'll see most articles, research and testing recommend NOT to have a coupon code box, so this is something you may consider and even use as additional help for your users. You'll also find what to do with codes, which has direct relation to your question
The One Little Box That’s Costing You Big Dollars
Do Coupon Codes INCREASE Checkout Abandonment?
The Sad Tale of Abandoned Shopping Carts
9 Things Designers Can Learn from Target’s Checkout Form