Quote Originally Posted by Earthenware View Post
... I fixed this by running "Reset SEO URLs Cache", so I assume that there was a cache of URLs for product_ids somewhere.

I don't want to have to do this on a regular basis so would disabling caching (i.e. changing "Enable SEO cache to save queries" to false) prevent this from happening in future? ...
The better question is WHY do you feel you need to change around product_id's? What business purpose does changing an internal number used to identify a product within the Zen Cart software serve?

Best practice for a website (and e-commerce site) is to NOT change the product_id (or URLs unless they are 301'ed / canonical linked - which this module does for you based upon the product_id remaining the same).

Quote Originally Posted by Earthenware View Post
Clicking a product brought up a URL for another product, although the actual page was correct.
Changing the internal id used by Zen Cart will have this effect. This holds true for Zen Cart in general as well as all of the alternative URL generation tools. It affects far more than just the "URL" and the one issue you quickly identified.

For example (even when not using a module to generate alternative URLs): when customer logs into their account on the site, pulls up their invoice, and then clicks a link to see the product details... If one has changed the product a product_id points to, the customer is sent to a completely different product from the one purchased.

I could go on with other reasons / issues caused by re-assigning product_id's to different products, but there are plenty of articles / threads on the forums here and internet in general on the subject.

When adding new products it is almost always better to not manually edit the PRODUCTS table (and let a new product_id be assigned). If one needs to import from a spreadsheet, use a tool such as "ez-populate". The first time this module see's a new product_id it will generate the appropriate URL based upon the product title / category and save the URL in the cache.

If one no longer carries a product, simply turn it off in the admin interface - or - set the quantity to zero and add a big bold colored line indicating the product has been replaced with a newer / comparable product (with link). There are a few additional ways to handle products "no longer being sold", but such a discussion would be better suited for a new thread.

Quote Originally Posted by Earthenware View Post
... Would it have any other side-effects?
Yes. For every page load Zen Cart would need to rebuild the list of URLs for every URL appearing on the page (usually every category enabled in the database, every enabled EZ-Page, and any product URL showing on the page). This list basically includes every URL on the page including in the header, footer, and menus. The cache reduces the amount of processing time by saving a copy of the URL <--> product / category / ez-page mappings.

Of course if one is not on a server with limited CPU resources... The impact might be minimal... But on most shared and VPS hosting packages the CPU usage is limited and having the cache enabled will have a significant performance impact during peak website usage.