/**
   * Creates a new product.
   *
   * @param destCatalog catalog.
   * @param taxCode tax code.
   * @return created product.
   */
  protected Product createSimpleProduct(final Catalog destCatalog, final TaxCode taxCode) {
    final Product product = new ProductImpl();
    product.initialize();
    product.setLastModifiedDate(new Date());
    product.setStartDate(new Date());
    product.setCode(Utils.uniqueCode("product"));

    ProductLocaleDependantFieldsImpl f = createDependentField();
    f.setLocale(Locale.ENGLISH);
    product.addOrUpdateLocaleDependantFields(f);

    ProductType productType = new ProductTypeImpl();
    productType.setName(Utils.uniqueCode("productName"));
    productType.initialize();
    productType.setCatalog(destCatalog);
    productType.setTemplate("template1");
    productType.setTaxCode(taxCode);

    productType = persist(productType);

    productType = getPersistenceEngine().load(ProductTypeImpl.class, productType.getUidPk());
    product.setProductType(productType);

    return product;
  }