Hello Everyone,

 

Recently, I started to work with the Product Kit functionality in Ubercart 3 on a Drupal 7 installation.  A desire to implement this functionality has always been on my list, but I never got around to messing with it seriously until now, mostly because it displayed a seemingly endless series of "problematic" behaviours on my heavily customized site.  

Product Kit(s) are a useful way to bundle at least two individual Products together into a meaningful unit that can then be treated as a "new" product in the Ubercart system.  A Product Kit, once created, is treated by Ubercart as a distinct and unique Product in Ubercart, which means that it can be assigned many of the useful attributes and processing that individual Products get (a custom discount, for example).  Another very useful functionality is SKU breakout when moving past the sales cycle to the fulfillment cycle.  

I have been tracking issues with Product Kit for about 5 years now, and banging away at them when I have time.  Until recently, this functionality was a "nice to have" so I would attempt to fix whatever was wrong with it, then bump into another problem and turn it off again.   My partner is tired of manually breaking up the SKUs that compose what I would call the "synthetic Product Kit" approach we have been historically using, that attempts to emulate the Product Kit functionality by simply creating a new Product that lists what a Product Kit would list if that functionality were to be working properly for us in the first place.  

What has prompted this work is the fact that we recently shifted to using a "Third Party Logistics Provider" (3PL) to physically pick, pack and ship our orders.  Order processing is no longer in-house and a mistake on that front quickly turns into a complicated mess.  We also recognize the power of the Product Kit functionality and would like to take advantage of it.  

So far, I have run into about 10 issues with respect to Product Kit.  I suspect that most of them had more to do with my own site configuration than anything else, so they were not really something I would consider suitable for public consumption.  However, in the last 24 hours I have bumped into a couple of issues that MAY be worth sharing publicly - and I would like to take advantage of other people's experience and perspective to accelerate through getting Product Kit working properly.  

But is there an audience?  www.ubercart.org is long-dead and www.drupal.org is not exactly pining to support D7U3 installations.  Google is starting to fade in terms of uncovering now-ancient discussion of Ubercart in general and Product Kit specifically.   

Does anyone else at www.backdropcms.org use the Product Kit functionality?  If so, is it working for you?  What problems are you experiencing?  Would it be worthwhile to assign a "focus of attention" somewhere on www.backdropcms.org at the Product Kit functionality?  Does one already exist somewhere that I am unaware of?  

Thanks,  

Graham Leach

Most helpful answers

Hi Graham

Nice to see you around again. Steve Moorhouse (aka Dr Albany) started work on a dedicated documentation site. He is open to collaborators:

http://ubercart.dev/

Comments

bugfolder's picture

Graham, I've been using Product Kit for many years on D7 and have continued to use it on Backdrop Ubercart for the past few years. (I'm also one of the Backdrop Ubercart maintainers.) UC-Backdrop is actively maintained, with both bug fixes and feature improvements, and a growing collection of contrib modules, both those ported from D7 (like UC Price per Role) and some additional Backdrop-only UC modules.

The only issue I recall running into with Product Kits is that since the SKU of the synthetic product is made by concatenating all the SKUs of the constituents, the result can exceed the db column size for really large collections (we found this when bundling 100 individual file download products into a single collection). But that was easily fixable by expanding the relevant "model" columns of some db tables.

If you find bugs in Product Kit, please post issues in the Ubercart Issue Queue: http://github.com/backdrop-contrib/ubercart/issues. We'll definitely take a look at them! (Of course, instructions on how to reproduce the problem on a stock, non-customized installation would be most helpful.)

Hello @bugfolder,

Thanks for such a speedy response.

I don't doubt that a lot of the issues I am facing at the moment with respect to my implementation of D7U3 UC Product Kit is the result of an ancient, highly customized site and niggling issues with configuration(s), the base theme, undocumented customization(s) and the like.  Thank you for your comments, especially the assurance(s) that UC Product Kit was/is indeed working as designed.  Now, if I could only find the design documentation.....  :(

Problem 1:  Lack of documentation (Design, Admin, Programmer, User)

Q:  Is there any documentation that we can pool together to speed up the writing / troubleshooting / improving process go more quickly?  I may have some stuff to throw in - but where does it go?  To what area(s) of the WWW do these seeds of information need to be propagated?

Problem 2:  Code Base Divergence

I had a quick look at the source of the BCMS implementation of UC Price Kit.  There's quite a divergence between the code base from what I'm seeing in my own D7U3 code.  For example, there's no JSON .settings files in my D7U3 UC Price Kit code base, and some important function calls are no longer "portable" between D7U3 and B?U? (heck, I don't even know what the major/minor version numbers of BCMS and UC on BCMS are these days).

 Q:  How many D7U3 "refugees" are you seeing these days and is it worthwhile to create a "pre-BCMS" discussion/support area for those who are not (yet) ready to be ported to BCMS?

For me, Problem 1 is the highest priority, and likely the biggest "bang for the buck" effort concerning BCMS is (and will be) straddling D7U3 and B?U?

Any Design, Admin, User and Programmer Documentation would be greatly helpful.

Many thanks

g.

Hi Graham

Nice to see you around again. Steve Moorhouse (aka Dr Albany) started work on a dedicated documentation site. He is open to collaborators:

http://ubercart.dev/

hello @yorkshirepudding

It's nice to be in contact again!

Wonderful information!  Thanks! 

 

Will definitely check it out!

 

g

----

bugfolder's picture

Hi Graham,

I don't have answers to all your questions, but I do for some: answers inline below.

Thank you for your comments, especially the assurance(s) that UC Product Kit was/is indeed working as designed.  Now, if I could only find the design documentation.....  :(

If you find it, let me know! ;o) When I got started with UC dev't, it was mostly reading and trying the code and going "oh, so that's why they did this...I think."

Q:  Is there any documentation that we can pool together to speed up the writing / troubleshooting / improving process go more quickly?  I may have some stuff to throw in - but where does it go?  To what area(s) of the WWW do these seeds of information need to be propagated?

As @yorkshirepudding noted, https://ubercart.dev is the UC-B team's start to collect documentation for UC-B. For developer-oriented issues, the GitHub issue queue somewhat serves that purpose (at least, the troubleshooting parts).

Problem 2:  Code Base Divergence I had a quick look at the source of the BCMS implementation of UC Price Kit.  There's quite a divergence between the code base from what I'm seeing in my own D7U3 code.  For example, there's no JSON .settings files in my D7U3 UC Price Kit code base, and some important function calls are no longer "portable" between D7U3 and B?U?

Some, probably most, of what you're seeing are the differences between D7 and B; for example, the .json files get created automatically when you upgrade a website from D7 to BackdropCMS. (In Backdrop, configuration information that was stored in the variables table in D7 are stored in .json configuration files; the upgrade process will perform that conversion for you.)

The challenges of having a "customized" site depend a lot on how your site was customized. The preferred way in D7 was to write custom modules that make use of hooks to provide custom behavior. The non-preferred way was to patch the module files directly (and, one hopes, keep a list of all the patches so you can reapply them when modules are updated).

If you did the preferred way, then moving your customizations to B should involve minimal pain. You'll need to create B versions of your custom modules, which you can do with the assistance of the Coder Upgrade module (which, for example, automatically inserts the code that converts variable_set/variable_get calls to create the relevant .json files). For my own D7-to-B upgrade (about 2 years ago), that's what I did (and gained enough experience with UC innards to join the maintainer team).

If you did the non-preferred way, it's tougher, but still doable (and I had to do that with one module, a heavily-modified version of uc_usps); once again, Coder Upgrade does a lot of the heavy lifting for code modification, but there is definitely some manual cleanup that needs to be done.

The documentation site, https://docs.backdropcms.org, has a lot of valuable information on upgrading a D7 module to work with B. In particular, take a look at https://docs.backdropcms.org/documentation/upgrading-from-drupal.

(heck, I don't even know what the major/minor version numbers of BCMS and UC on BCMS are these days).

Current major/minor version of B is always on the front page of https://backdropcms.org (currently it's 1.28.2).

Current major/minor version of UC-B is always on its project page, https://backdropcms.org/project/ubercart (currently it's 1.x-3.14.6).

Q:  How many D7U3 "refugees" are you seeing these days

The number of downloads and usages (for people who allow that data collection) is on the UC project page, but we don't know how many of those are D7 refugees versus new sites (anecdotally, there are many of both).

and is it worthwhile to create a "pre-BCMS" discussion/support area for those who are not (yet) ready to be ported to BCMS?

There is a discussion area for all things Backdrop, which is our Zulip chat, https://backdrop.zulipchat.com/. There are regularly threads with the topic "Ubercart" (or something related), and the UC maintainers regularly monitor and post. So feel free to post questions, observations, or anything else related there! HTH,

Robert (bugfolder)

Hi..., Our ubercart.dev  site is a work in progress...  I'm happy to add you as a contributor etc... UC is something I use and want to help the documentation live on... but as always, having time is the issue :-(

Heya @DrAlbany,  

Yes, if you could add me as a contributor that would be great.  

I'm doing a bunch of "triage" on my site these days, fixing stuff and (slowly) getting ready for the cut-over from D7U3 to something else, an event I am dreading.

 

Over the years I have amassed a bunch of solutions to problems, but many of them may be somewhat unique to my situation - a highly-customized  multi-lingual site.  

I'll  do what I can to help out.  Not sure it'll be worth much, but happy to try.  

g.

----

Wow! @bugfolder 

What a fantastic response!  I am so grateful for the effort you obviously put in. I just wanted to give you some FF on the sheer size and depth of your response before attempting digest and act on what you wrote.  Honestly, I am blown away! g.