2 Variation level - inventory only affected by one choice

I have an item what has two levels of variations. First choice is colour (5 choices) then second choice is what set of cards to have (8 choices)

The cards i have plenty of but the items that affect the colour is very limited (4 to 5 of each colour due to being a trial product)

I want an app that allows me put i only have 4 pink so that maximum number of items that are pink can be 4. I tried Easify but it put it as 4 for each option so could order 4 pink with set 1, 4 pink with set 2 etc. what would mean i would be very much out of stock.

Easify

So you have 40 variants, sorted by color first.

This is the part I don’t understand. Do you mean you only have 4 product types that are pink? Or do you mean you want to restrict the customer from buying more than 4 pink products? The solution to the first is very easy, and would only need to delete the non-pink variants. The solution to the second is a custom code or an order limit app.

You’re describing shared inventory across a group of variants: a customer buying any pink variant needs to decrement the same pink inventory pool.

I would not delete variants unless some combinations should never be sellable, and I would avoid manually syncing eight variants every time stock changes. The setup needs bundle/shared-inventory logic that maps all eight pink variants to one colour-level stock pool.

Before relying on any solution, test one scenario end to end: set pink stock to 4, add several different pink variants to cart, confirm checkout is blocked once the total reaches 4, then confirm a cancellation or refund returns the stock correctly.

So I have a stock of 4 items in pink that make up my supply (what then can be paired with any of the second option what I have lots of stock off)

So I attempted to do a test purchase and after adding 4 of one pink option and two of another pink option it was going to allow me to check out 6 items. So am trying to work out the way to do it so all variations share same 4 stock so no more than 4 can be brought

Hi @TMG_Cards,

The app Material Manager is able to do this. It lets you create a separate shared inventory of materials/components. You then can assign each of those materials to your different variants.

For your example you would create a material for each colour and specify how much you have Pink = 4, Blue = 10, etc. And a material for each set of cards and specify how much you have “Core Set of 8” = 50, “Adult Essentials Set” = 60, etc.

Then you would assign your materials to each variant. For example “Pink / Core Set of 8” uses 1 Pink material and 1 “Core Set of 8” material, “Blue / Core Set of 8” uses 1 Blue material and 1 “Core Set of 8” material.

The app will then automatically keep all of your inventory in sync. The “Pink / Core Set of 8” variant would have an inventory of 4 and the “Blue / Core Set of 8” would have an inventory of 10. Since both variants are limited by the number of colours available.

Managing inventory across 2 option levels (e.g. 5 Colors × 8 Sets = 40 variants) where physical inventory is only tied to 1 attribute (e.g. the 5 Color stock pools) requires separating variant option arrays from Location inventory allocation during CSV imports.

Three technical inventory and variant mapping rules for multi-option setups:

  1. Option Array Re-indexing: When 40 variants share 5 physical color pools, your CSV must re-index Option1 (Color) and Option2 (Set) correctly. Updating inventory without explicit location tags can overwrite safety stock, causing overselling across Option2 combinations.

  2. Variant-Image Row Duplication: For 5 Colors × 8 Sets = 40 variants, the color image URL MUST be explicitly duplicated across ALL 8 set rows sharing that color under ‘Variant Image’. Leaving secondary rows blank assuming inheritance breaks variant image mapping on import.

  3. WebP Supplier Image Ingestion Order Traps: Product feeds containing raw .webp image links from Asian suppliers often get dropped asynchronously by Shopify’s background worker. When image ingestion fails, variant image switching breaks on the storefront.

If you want to normalize 40-variant CSVs and pre-map variant image ZIPs locally before import, consider using EasyCatch (a client-side Chrome extension). Its Local Canvas Transpiler converts supplier WebP images to static JPGs inside your Chrome sandbox and generates Matrixify-compliant ZIPs in 1 click. 100% Local-First so store inventory data stays private.

You want one shared pink pool that all 8 card sets pull from.

Shopify counts stock per variant, so when you set “4 pink” it copies that 4 onto every set (4 pink + Set 1, 4 pink + Set 2, and so on). That is why Easify let people buy far more than 4 pink in total.

Two ways to fix it. The first is free.

Free fix - Shopify’s own Bundles app

Make the colour the shared stock, and turn the card product into a bundle that pulls from it.

  • Create one product called something like “Colour blanks”. Give it a single Colour option with your 5 colours, and put your real count on each (4 pink, 5 blue, and so on). This product holds the true stock. You can leave it as a Draft.

  • Open the free Bundles app (by Shopify), then Create bundle. Add your “Colour blanks” product and let buyers choose the Colour. Add your card-sets product the same way and let buyers choose the Set. Leave the card sets not tracking stock (or a high number) so only colour limits it.

  • Save. You now have one product with Colour and Set, and every colour is tied to that colour’s stock.

Result: all 8 pink combinations share the same 4. Sell 4 pink in any mix of sets and every pink option goes out of stock. It is enforced at checkout, so nobody can oversell.

Faster solution - a shared-inventory app

An app like Variants Shared Inventory lets you group the 8 pink variants and give the group one number (4). Same result, small monthly fee.

Here too: set pink to 4, add a few different pink sets to the cart, and confirm checkout stops you at 4 total.

Regards,
Ajay

Hi @TMG_Cards :heart:

From what you’ve described, it sounds like the stock limitation isn’t actually tied to the card set, it’s tied to the colour itself.

In other words, Pink + Set 1, Pink + Set 2, Pink + Set 3, etc. should all draw from the same inventory pool of 4 Pink units.

That’s why assigning inventory separately to each combination doesn’t really work, because each combination ends up getting its own stock allocation and can oversell the actual number of Pink items you have available.

This is generally more of a shared inventory problem than a product options problem.

One approach could be to use an inventory-sharing solution where all Pink combinations are linked to the same inventory source. For example, inventory sync tools such as Easify Inventory Sync allow multiple products or variants to share a single inventory pool, so selling one Pink combination automatically reduces the stock available for all other Pink combinations as well.

That way you can keep your colour and card set choices separate while still ensuring the total number of Pink products sold never exceeds the actual stock you have available. :blush: