{"id":1904,"date":"2018-09-02T07:58:58","date_gmt":"2018-09-02T11:58:58","guid":{"rendered":"http:\/\/www.thatsoftwareguy.com\/blog\/?p=1904"},"modified":"2018-09-02T07:58:58","modified_gmt":"2018-09-02T11:58:58","slug":"opencart-and-the-nuc-problem","status":"publish","type":"post","link":"https:\/\/www.thatsoftwareguy.com\/blog\/2018\/09\/02\/opencart-and-the-nuc-problem\/","title":{"rendered":"OpenCart and the NUC problem"},"content":{"rendered":"<p>NUC &#8211; not upwardly compatible &#8211; means you&#8217;ll have problems using older code and data on a newer version of the code.\u00a0 Most software developers take great pains to avoid NUC changes, or at least document them carefully so that upgraders won&#8217;t be stung by them.<\/p>\n<p>But not <a href=\"https:\/\/www.opencart.com\/\">OpenCart<\/a>, sadly.\u00a0 This post from long time Zen Cart developer RodG sums it up:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1909 size-full\" src=\"http:\/\/www.thatsoftwareguy.com\/blog\/wp-content\/uploads\/2018\/09\/rodg_rant.png\" alt=\"\" width=\"2048\" height=\"581\" srcset=\"https:\/\/www.thatsoftwareguy.com\/blog\/wp-content\/uploads\/2018\/09\/rodg_rant.png 2048w, https:\/\/www.thatsoftwareguy.com\/blog\/wp-content\/uploads\/2018\/09\/rodg_rant-300x85.png 300w, https:\/\/www.thatsoftwareguy.com\/blog\/wp-content\/uploads\/2018\/09\/rodg_rant-768x218.png 768w, https:\/\/www.thatsoftwareguy.com\/blog\/wp-content\/uploads\/2018\/09\/rodg_rant-1024x291.png 1024w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/p>\n<p>I initially created <a href=\"https:\/\/www.thatsoftwareguy.com\/opencart_better_together.html\">Better Together for OpenCart<\/a> to work with OpenCart 1.5.\u00a0 I came back several years later, and found that it needed significant changes for OpenCart 2.0.\u00a0 OK &#8211; then came OpenCart 2.3, and again, significant changes were required, and the old code was not upwardly compatible.\u00a0 OpenCart 2.0 to 2.3 is a minor version number update, and there should <strong>never<\/strong> be a NUC change in a minor version update (per <a href=\"https:\/\/semver.org\/\">semantic versioning<\/a>). Is the expectation really that I should maintain multiple copies of the source for each minor version change?\u00a0 As Rod points out, this would be unique among the open source carts I have worked with.<\/p>\n<p>So a few years pass, and along comes OpenCart 3, which contains &#8211; you guessed it &#8211; yet more NUC changes.\u00a0 Guys, you&#8217;re killing me.\u00a0 But at least there will be compelling business drivers to encourage people to do this upgrade, right?<\/p>\n<p>Well, no, not really, according to\u00a0Martin Boss of MultiMerch.\u00a0 \u00a0He says vendors considering\u00a0 <a href=\"https:\/\/multimerch.com\/blog\/opencart-3-vs-opencart-2-2018\/\">upgrading from OpenCart 2.3 to 3.0<\/a> face\u00a0significant drawbacks and limited advantages.<\/p>\n<p>So where does this leave independent software vendors like That Software Guy?\u00a0 In a pretty bad spot &#8211; I am actually getting requests to support Better Together on OpenCart 1.x, because people don&#8217;t want to upgrade to 2.3, never mind 3.0.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NUC &#8211; not upwardly compatible &#8211; means you&#8217;ll have problems using older code and data on a newer version of the code.\u00a0 Most software developers take great pains to avoid NUC changes, or at least document them carefully so that upgraders won&#8217;t be stung by them. But not OpenCart, sadly.\u00a0 This post from long time &hellip; <a href=\"https:\/\/www.thatsoftwareguy.com\/blog\/2018\/09\/02\/opencart-and-the-nuc-problem\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">OpenCart and the NUC problem<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[83,58],"tags":[],"class_list":["post-1904","post","type-post","status-publish","format-standard","hentry","category-opencart","category-that-software-guy"],"_links":{"self":[{"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/posts\/1904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/comments?post=1904"}],"version-history":[{"count":6,"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/posts\/1904\/revisions"}],"predecessor-version":[{"id":1914,"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/posts\/1904\/revisions\/1914"}],"wp:attachment":[{"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/media?parent=1904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/categories?post=1904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thatsoftwareguy.com\/blog\/wp-json\/wp\/v2\/tags?post=1904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}