function getVariationModel()

in process_api/cartridges/app_storefront_custom/cartridge/scripts/helpers/productHelpers.js [173:196]


function getVariationModel(product, productVariables) {
    var variationModel = product.variationModel;
    if (!variationModel.master && !variationModel.selectedVariant) {
        variationModel = null;
    } else if (productVariables) {
        var variationAttrs = variationModel.productVariationAttributes;
        Object.keys(productVariables).forEach(function (attr) {
            if (attr && productVariables[attr].value) {
                var dwAttr = collections.find(variationAttrs,
                    function (item) {
                        return item.ID === attr;
                    });
                var dwAttrValue = collections.find(variationModel.getAllValues(dwAttr),
                    function (item) {
                        return item.value === productVariables[attr].value;
                    });
                if (dwAttr && dwAttrValue) {
                    variationModel.setSelectedAttributeValue(dwAttr.ID, dwAttrValue.ID);
                }
            }
        });
    }
    return variationModel;
}