anchor.diff:  %% @doc Respond to `PATCH /catalogManagement/v2/productOffering/{id}'.
   %% 	Update a Product Offering using JSON patch method
   %% 	<a href="http://tools.ietf.org/html/rfc6902">RFC6902</a>.
  -patch_inventory(SubId, Etag, ReqData) ->
  +patch_inventory(ProdId, Etag, ReqData) ->
   	try
   		Etag1 = case Etag of
   			undefined ->
  
positive.code: 	of
  		{Etag2, {array, _} = Operations} ->
  			F = fun() ->
  					case mnesia:read(service, SubId, write) of
  						[Subscriber1] when
  								Subscriber1#service.last_modified == Etag2;
  								Etag2 == undefined ->
  							case catch ocs_rest:patch(Operations, inventory(Subscriber1)) of
  								{struct, _} = Subscriber2  ->
  									Subscriber3 = inventory(Subscriber2),
  									TS = erlang:system_time(?MILLISECOND),
  									N = erlang:unique_integer([positive]),
  									LM = {TS, N},
  									Subscriber4 = Subscriber3#service{last_modified = LM},
  									ok = mnesia:write(Subscriber4),
  									{Subscriber2, LM};
  								_ ->
  									throw(bad_request)
  							end;
  						[#service{}] ->
  							throw(precondition_failed);
  						[] ->
  							throw(not_found)
  					end
  			end,
  			case mnesia:transaction(F) of
  				{atomic, {Subscriber, Etag3}} ->
  					Location = "/productInventoryManagement/v1/product/" ++ SubId,
  					Headers = [{location, Location}, {etag, ocs_rest:etag(Etag3)}],
  					Body = mochijson:encode(Subscriber),
  					{ok, Headers, Body};
  				{aborted, {throw, bad_request}} ->
  					{error, 400};
  
negative.code: get_pla_spec(_Id, _Query) ->
  	{error, 400}.
  
  -spec patch_inventory(ProdId, Etag, ReqData) -> Result
  	when
  		ProdId :: string(),
  		Etag		:: undefined | list(),
  		ReqData	:: [tuple()],
  		Result	:: {ok, Headers, Body} | {error, Status},
  