250000 Grouped products in Magento - magento

I've started working on a new Magento webshop which has roughly 250000 different products. Each product can have different conditions (new, used, damaged, etc., each with their own price.). Magento doesn't seem to have a method to implement this at the moment. Of those 250000 products, there are about 150000 different conditions in stock and another 150000 conditions which aren't in stock but do have a price (which can be put on the wishlist).
Some numbers: 1500 categories, drop down attributes (country) with > 300 options, integer attributes (year). Starting with two websites 6 languages each.
I've thought out two solutions to solve this problem:
Grouped / Simple product structure
We create a grouped product which is the container product, each condition will be a different simple product. We'll relate these products to the grouped product.
The nice thing about this solution is that is pretty easy to implement, we'll have to import the data in the correct way and all the information is exactly presented in the way we want.
New Product type
We create a new product type which can have multiple conditions, each with their own inventory. On checkout the inventory is substracted. The problem with this is that implementing the CatalogInventory model in this way probably is difficult and building a whole product type is time consuming and bugprone in general.
The advantage of this solution is this that there will be about 2-2.5x times less products in the system.
Others
Are there any other options to solve this? Maybe there is a module that does all this?
In conclusion: Of course I prefer the first solution but can Magento handle that? Does anyone have experience with this much Grouped Products? The system will have about 550000 products (grouped + simple) products in the system, what will be the performance implications of this? What happens when the site grows and we'll have twice the amount of products?

Without knowing more details I'd lean towards using a new product type or just adding the feature independently of product types if you have a use for configurable products (I definitely wouldn't try to duplicate the configurable product type). I'd disable inventory management and use some additional tables which hold individual item inventory with the per-item conditions and maintain a separate inventory that way. Use events and overrides to control the CatalogInventory stock status as needed. Creating new products constantly which are largely duplicates seems like a hassle worth avoiding if this is a long-term endeavor that needs to scale.
However, the Grouped/Simple method might be a viable short-term solution and appropriate if the project is in it's early stages and can't afford a huge initial expenditure. If well-planned, a script should be able to convert all of the old grouped/simple products into your new product type when ready to launch.

Related

How to handle price dynamic

We have requirement to handle price dynamic (referring external system).
We would like to know, what is the best way to handle dynamic pricing among below :
Approach 1 :
Creating Price factory extension and overriding getBasePrice() method of customPricefactoryManager. Please confirm if it uses jalo layer.
Approach 2 :
In DefaultSLFindPriceStrategy we can customize getBasePrice() method.
If any other way too, please lets know.
We would like to know which approach can help to handle prices in addtocart operation, checkout and product page details pricing.
It is not good getting price in another system with integration online. ERP system used by few sales people but ecommerce site can be used by hundred customer in same time. ERP cannot be handle huge amount of connections. I prefer pushing price from ERP not pulling them from hybris side. On the other hand customer will be hate changing price while surfing between hybris pages. You need to plan correct time for updating price and re-calculating existing carts.
It is highly unlikely that you would need to override the above classes to get dynamic prices.
Hybris already provides OTB functionality to get prices for different-
Users
User groups
Currencies
Time range
If you are trying to get different prices based on above criterions then you can simply use the OTB price row model.Getting dynamic prices on different pages has many caveats-
The price on different pages i.e. Homepage, PDP, Cart, Checkout,
etc. might show different values confusing the customer.
It cannot
be indexed so the PLP page will almost always show a different price
value.

How ETSY sellers manage stock of configurable products?

I want to integrate ETSY on my inventory management project but after little research I got to know that it didn't manage stock of variants for configurable product. It manages stock of overall product, not of its particular variant.
Now I am very curious how etsy seller manage stock particular variant?
Is there any way I can manage stock of my particular variant in etsy?
No, you cannot manage stock for a particular variant.
If it is really important you don't sell more than you have on stock (lots of time to make or impossible to reproduce) then it's best to make a different listing - this also has the advantage of SEO (you can add different keywords from the other variant).

Show simple product with all possible attribute combinations based on configurable product

I have an e-commerce site that provides made-to-order clothing. I've created a configurable product and just one associated product.
Is it possible to display all of the possible attribute combinations within just one associated product rather than manually add every combination?
I've tried allowing out of stock products to be displayed, but this didn't show all of the possible combinations.
I'm not hugely experienced with Magento, but I've used many CMS systems and inventory management products. I've never once seen a matrix / configurable / multi-variation / whatever you want to call it setup where you didn't have to create each combination as a distinct SKU. I'm not saying it's 100% impossible, but I'd view it as extremely unlikely and probably a waste of time to pursue.
Why not just create your configurable products and their sub SKUs via CSV import? It will be far easier and faster than creating them one at a time. Creating every combination will also be extremely easy. If you're not comfortable with Excel, you need to correct that yesterday if you want to be good at product management.
See this article:
https://www.siteground.com/tutorials/magento/import-products.htm

Product combinations from two or more products

I am trying to make something like in the following link, using Magento:
http://www.gemvara.com/jewelry/cushion-cut-candace-ring-8mm-gem/cushion-diamond-14k-white-gold-ring-with-diamond/2fgxv
You can see that product main images and all other details change.
Now I tried configuring a bundled product with combination of two or more simple products, but this will create too many products.
Suppose I configure the following:
1: 3 products of stones
2: 2 products of ring base
3: Than the total number of products that I will have to create will be 3(stones) + 2(stone base) +6(3*2 bundled product with all possible combinations) = 11 products
For more options, this will be to complicated to manage.
How can we use Magento to do this efficiently?
There are two ways to approach this scenario, depending on whether or not you need to manage inventory stock for each combination.
If you don't need to manage the inventory for each possible combination, then you can use a Simple Product type and use the Custom Options to provide the various options to customers. You can put in price adjustments as well as the SKU that is generated when various selections are shown.
If you do have to manage inventory stock for each combination, then you do have to create — in your example — 6 simple products. Then you can present them using the Configurable product type. In this way if one of the rings is out of stock, the remaining 5 possible combinations are still presented to the customer. Still allowing them to choose a stone and ring base, but not allowing the combination of the one out of stock to be chosen.
So, it really boils down to whether you need to manage stock or not. With Magento CE 1.9.1, there are also more robust swatch image functions that might be helpful with what you're trying achieve, as well.
If you want unique images for every permutation, you will need to create each simple product to achieve this. To make life easier, you could create all the products in a csv and them import with Magmi.
In order to achieve the image option links, check out the latest version of Magento (1.9.1) which now supports option swatches and will load the simple product's base image which would achieve the effect you are after.
Best
Tom

CodeIgniter Cart ID + Options

I have a situation:
I have products that are in a CodeIgniter Cart custom store.
Each product has an ID associated with it, but also has options for it (sizes).
These sizes all have different prices. (We're talking about photos being sold at different print sizes).
Because CI Cart updates, adds and deletes based on the product ID inserted, I am not able to insert one product with 2 different sizes.
As of now, the only solution I can think of is to pass the ID to the cart as IMAGEID_OPTIONID so that it contains both IDs.
However, I thought there might be an easier, more uniform way of doing this?
Or a better solution than an ID that isn't (on it's own) associated with anything specific unless i explode it..?
I recently built a site that had these constraints. In short, you'll want to create a distinction between "products" and "product groups". Think of it as managing the most discrete data units. In reality, shirt X sized medium is actually a different thing than shirt X sized large...doubly so if you have prices that are built on these qualities (this becomes more realistic when you consider cloth patterns or colors).
So anyway, if you have a "groups" table, a "product_groups" table, and a "products" table, you can keep all of these ideas distinct. On your products table, you can have columns for "size" and "color" (and any other distinguishing property you can think of) and a column for "price". Alternatively, you can go even more hardcore and make separate pricing tables that match up prices to unique products (this would be especially useful if you want to keep track of historical prices and discounts).
Then in your cart you can simply attach product_ids to cart_ids and perform a couple of joins to determine what "group" this product is a part of, what pictures are in that group (or exist for that product), and so on. It's not a simple problem, but following this line of thought should help get you on the right path.
One last point: keeping track of unique products like this also makes inventory accounting much, much more straightforward.

Resources