Product question.

Ok. I've tried to do this and I'm not sure how to approach it.

we're a shop that does custom printing and framing. We have a ever growing image archive that we can make products from.

I'd like to have these images listed as well as create a defined set of products for them.



can be:

just a print - priced by size
a matted print - priced by size, choice of mat color (no effect on price)
a framed print - priced by size AND frame choice
stretched cavas, priced by size
other additional option priced by size with possible modifiers.

can I do this out of the box?

I started figuring the images would be products.

Now I'm thinking the images are a content type that the specific variants above reference as a node reference.


At the end of the day, people should be able to browse the images, and pick how they want to style it.

at the moment, I'm more worried about the functionality of the guts rather than the presentation.


Posted: Apr 26, 2014


mrconnerton on April 27, 2014

Hey James, I'm not sure if "out of the box" would apply here. I wouldn't be surprised if a combination of custom product types, line items, and rules you could achieve what you are going to do. I was doing a spec for something similar to this the other day and the part of the conclusion I came to was a lot of this was going to depend exactly how the pricing was going to work. This particular client had frames from 4-83” either side with specific pricing for each length which came out to something like ~3200 prices depending on size just for frames. Then add in matting, etc and the price calculations went crazy.

The way I had envisioned doing this in D7 was to create a sku for each frame, mat, canvas, etc. Next I was going to create a “Price Table” content type which would have a machine name for reference and field collection for WxH prices

A product entity would reference a price table entity. This means frames of the same “type” can reference the same price table if their prices are the same to cut down on data entry. I thought I might add that same field collection to the product entity as well for specific size overrides.

I would create a product bundle / package type for the different packages. Such as a “Print & Frame” would be a package product that would let the user select the width and height, frame (product reference), select a mat (product reference), and upload an image. As well as any other options.

The pricing part I assumed I would have to do in custom programming because screw doing that with rules. When I got a package I would calculate it something like this:
Load the product, if the WxH exists in price table override on the product use that, if not load the price table referenced by the product and load the price from there. Do the same for the mat. Calculate any other options added and poof there is your price.

A setup like this is pretty complicated but if you spend a good bit of time planning then D7 and Commerce can be a great solution. Try and think out of the box on potential problems like inside/outside dimension of frames, mats, images, etc. When they pick 8x10 do they mean that is the size of their image and you need to calculate the mat size and frame size from that and pass that on to the pricing.