groovy script sample

import com.sst.datasync.cronjob.SstCatalogExportCronJob
import de.hybris.platform.core.model.product.ProductModel
import de.hybris.platform.variants.model.VariantProductModel
import com.sst.core.model.SSTVariantModel
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

// 1. Only set PIM  preview flag previewTableWeb
// 2. Only need to set staged catalog
// 3. Use same logic as model table service to determine value

catalogVersionService = spring.getBean("catalogVersionService")
productService = spring.getBean("productService")
modelService = spring.getBean("modelService")
modelTableHelper = spring.getBean("sstModelTableHelper")

final Logger logger = LoggerFactory.getLogger("PM-169_Groovy");

catalogVersion = catalogVersionService.getCatalogVersion("SST", "Staged")
Collection<ProductModel> products = productService.getAllProductsForCatalogVersion(catalogVersion)
println("Found " + products.size().toString() + " products.")
logger.info("Found " + products.size().toString() + " products.")
count = 0

for (ProductModel product : products) {
    if (SSTVariantModel.isInstance(product)) {
        variant = (SSTVariantModel)product
        if (variant.getPreviewTableWeb() == null) {
            Boolean flag = modelTableHelper.isValidModelToExpose(variant)

            if (flag) {
                ++count
                println(variant.getCode() + ": Setting previewTableWeb = " + flag.toString())
                logger.info(variant.getCode() + ": Setting previewTableWeb = " + flag.toString())
                variant.setPreviewTableWeb(flag)
                modelService.save(variant)
            } else {
                println(variant.getCode() + ": Leave previewTableWeb = null")
                logger.info(variant.getCode() + ": Leave previewTableWeb = null")
            }
        } else {
            println(variant.getCode() + ": previewTableWeb = " + variant.getPreviewTableWeb().toString() + " already")
            logger.info(variant.getCode() + ": previewTableWeb = " + variant.getPreviewTableWeb().toString() + " already")
        }
        
    } else {
        println(variant.getCode() + ": Not a SSTVariant")
        logger.info(variant.getCode() + ": Not a SSTVariant")
    }
}
logger.info ("previewTableWeb update complete. " + count.toString() + " variants updated.")

return "done"

Comments

Popular Posts