I am looking at configurable products where each sub-simple product has its own weight (impacting shipping cost)

The weight of the simple products does not seem to be passed on to the configurable product so shipping cost shows up incorrectly in the shopping basket.

When I add-up enough items to reach shipping threshold I conclude that weight of the configurable product must be 1.000

Am I missing a configuration option ??? Can't find any issues like this explained on line so my guess is I am missing something here...

recently installed magento community 1.9.1


1 Answer 1


It should work. This is the code that returns the weight for a configurable product:

 * Return product weight based on simple product
 * weight or configurable product weight
 * @param  Mage_Catalog_Model_Product $product
 * @return decimal
public function getWeight($product = null)
    if ($this->getProduct($product)->hasCustomOptions() &&
        ($simpleProductOption = $this->getProduct($product)->getCustomOption('simple_product'))
    ) {
        $simpleProduct = $simpleProductOption->getProduct($product);
        if ($simpleProduct) {
            return $simpleProduct->getWeight();
    return $this->getProduct($product)->getData('weight');

Source: Mage_Catalog_Model_Product_Type_Configurable

You see that if a simple product has been chosen (which is the case as soon as the product gets added to cart), the weight of the simple product is used.

So it seems something else goes wrong so that the simple product is not correctly attached to the configurable product in the quote.

To confirm, add a configurable product to the cart and look at the sales_flat_quote_item_options table. You should see a row for the item with the option simple_product and the id of the simple product as value. If not, this is the source of the error and something has messed up your quote.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.