code: def setProduct(self, cache=False, *args, **kwargs):
          
          if cache:
              try:
                  prods = self.allmambuproductsclass(*args, **kwargs)
              except AttributeError as ae:
                  from .mambuproduct import AllMambuProducts
                  self.allmambuproductsclass = AllMambuProducts
                  prods = self.allmambuproductsclass(*args, **kwargs)
              for prod in prods:
                  if prod['encodedKey'] == self['productTypeKey']:
                      self['product'] = prod
              try:
                  # asked for cache, but cache was originally empty
                  prods.noinit
              except AttributeError:
                  return 1
              return 0
          try:
              product = self.mambuproductclass(entid=self['productTypeKey'], *args, **kwargs)
          except AttributeError as ae:
              from .mambuproduct import MambuProduct
              self.mambuproductclass = MambuProduct
              product = self.mambuproductclass(entid=self['productTypeKey'], *args, **kwargs)
  
          self['product'] = product
  
          return 1
docs: Adds the product for this loan to a 'product' field.
  
          Product is a MambuProduct object.
  
          cache argument allows to use AllMambuProducts singleton to
          retrieve the products. See mambuproduct.AllMambuProducts code
          and pydoc for further information.
  
          Returns the number of requests done to Mambu.