Question

I have a system which has a set of products of three "types":

  1. Simple products without associated products;
  2. Group products;
  3. Simple products, which are associated to group products.

I need to:

  • convert type 1 into bundle product and create associated simple product.
  • convert type 2 into bundle product and keep it's associated simple products.

I know already about this extension http://www.magentocommerce.com/magento-connect/displaze-change-product-type.html but seems be capable of only converting simple -> bundle, while I also need grouped -> bundle conversion.

UPDATE 2: Since it is not possible to change product types with avs-fastsimpleimport, I removed anything about it from the question.

UPDATE 1: Based on this questions and answers I made up my solution: 1, 2, 3, 4. Here is the MySQL update code, which actually does the trick for me:

/*
 * preparing list of simple products,
 * which are not associated with any other
 * complex products (group, bundle, configurable and so on)
 */
SET @simpleSkuList = (
    SELECT
        GROUP_CONCAT(sku)
    FROM
        catalog_product_entity
    WHERE
        type_id = 'simple'
        AND LENGTH(sku) = 8
        AND(
            entity_id NOT IN(
                SELECT DISTINCT
                    (product_id)
                FROM
                    catalog_product_super_link /* associated product ids of configurable */
                UNION
                    SELECT DISTINCT
                        (linked_product_id)
                    FROM
                        catalog_product_link /* associated product ids of grouped */
                UNION
                    SELECT DISTINCT
                        (child_id)
                    FROM
                        catalog_product_relation /* associated product ids of bundled and grouped */
            )
        )
    GROUP BY type_id
);

/* changing simple products type to be 'bundle' products */
UPDATE
    catalog_product_entity
SET
    type_id = 'bundle'
WHERE find_in_set(sku, @simpleSkuList);

And the question now sound like, does anybody think that this MySQL query can be improved somehow?

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top