It’s best if you don’t change the URLs, but I know that changing from one shopping cart to another will usually result in new URLs. You’ll have to use 301 redirects for each of the pages of your site. Even so, you’ll likely run into lowered rankings for awhile until Google recognizes your site’s pages. It took me a few months to get my rankings back, but when I did, many of them were higher than they were before the cart change.
Remember that search engines will only be interested in the “product” pages, they won’t be following the purchase process through, so what happens after a user clicks “add to cart” (or whatever) is irrelevant in terms of SEO. Those pages should only be accessed through the purchase process, so it doesn’t matter if their URLs change.
In terms of the product/landing pages - if possible, try to keep the URLs the same. Search engines will probably notice that you’ve changed the page slightly, but as long as the page is still there and talking about the same products as it was before, your ranking shouldn’t change.
If you have to change the URLs but you are keeping the same kind of structure, you should set up ‘301’ redirects so that the old URL simply ‘forwards’ to the new one. That will ensure that search engines transfer all the ratings and rankings from the old URL to the new one, and that any out of date links (from search engines or other sites) or bookmarks will still work.
If you are changing the whole type of site architecture, so that you don’t have a nice simple way to map one page from the old structure to one page in the new structure, it’s going to be a bit more difficult. What I would do then is to create one page specifically for users landing at the old URLs, explaining the changes made to the site and signposting all the different areas people might be looking for, and then have all the old obsolete URLs redirected to this one page. It isn’t ideal, but it’s one way to avoid users coming to a dead-end when the search engines indexes don’t keep up with the changes.