anchor.diff:  	{_, AltUFM} = lists:keyfind("unitOfMeasure", 1, Alter),
   	ok.
   
  -patch_request(SslSock, Port, ContentType, AuthKey, ProdID, ReqBody) when is_list(ReqBody) ->
  +patch_request(SslSock, Port, ContentType, Etag, AuthKey, ProdID, ReqBody) when is_list(ReqBody) ->
   	BinBody = list_to_binary(ReqBody),
  -	patch_request(SslSock, Port, ContentType, AuthKey, ProdID, BinBody);
  -patch_request(SslSock, Port, ContentType, AuthKey, ProdID, ReqBody) ->
  +	patch_request(SslSock, Port, ContentType, Etag, AuthKey, ProdID, BinBody);
  +patch_request(SslSock, Port, ContentType, Etag, AuthKey, ProdID, ReqBody) ->
   	Timeout = 1500,
   	Length = size(ReqBody),
   	CatalogHref = "/catalogManagement/v2",
  
positive.code: 	{ok, Result} = httpc:request(post, Request1, [], []),
  	{{"HTTP/1.1", 201, _Created}, Headers, ResponseBody} = Result,
  	{_, _Href} = lists:keyfind("location", 1, Headers),
  	{struct, Product1} = mochijson:decode(ResponseBody),
  	RestPort = ?config(port, Config),
  	{_, ProductName} = lists:keyfind("name", 1, Product1),
  	Description = ocs:generate_password(),
  	SslSock = ssl_socket_open({127,0,0,1}, RestPort),
  	ok = update_product_description(SslSock, RestPort, ProductName, Description),
  	Status = "Pending Active",
  	ok = update_product_status(SslSock, RestPort, ProductName, Status),
  	ok = update_product_price(SslSock, RestPort, ProductName),
  	ok = ssl_socket_close(SslSock).
  
  %%---------------------------------------------------------------------
  
negative.code: 	ProdOfferPrice = {"productOfferingPrice", {array, [ProdOfferPrice1, ProdOfferPrice2]}},
  	[ProdName, ProdDescirption, IsBundle, IsCustomerVisible, ValidFor, ProdSpec, Status, ProdOfferPrice].
  
  update_product_description(SslSock, RestPort, ProdID, Description, Etag) ->
  	RestUser = ct:get_config(rest_user),
  	RestPass = ct:get_config(rest_pass),
  	Encodekey = base64:encode_to_string(string:concat(RestUser ++ ":", RestPass)),
  