anchor.diff:  get_pla_spec(_Id, _Query) ->
   	{error, 400}.
   
  --spec patch_inventory(SubId, Etag, ReqData) -> Result
  -	when
  -		SubId	:: string(),
  +-spec patch_inventory(ProdId, Etag, ReqData) -> Result
  +	when
  +		ProdId :: string(),
   		Etag		:: undefined | list(),
   		ReqData	:: [tuple()],
   		Result	:: {ok, Headers, Body} | {error, Status},
  
positive.code: %% @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) ->
  	try
  		Etag1 = case Etag of
  			undefined ->
  
negative.code: 	of
  		{Etag2, {array, _} = Operations} ->
  			F = fun() ->
  					case mnesia:read(product, ProdId, write) of
  						[Product1] when
  								Product1#product.last_modified == Etag2;
  								Etag2 == undefined ->
  							case catch ocs_rest:patch(Operations, inventory(Product1)) of
  								{struct, _} = Product2 ->
  									Product3 = inventory(Product2),
  									TS = erlang:system_time(?MILLISECOND),
  									N = erlang:unique_integer([positive]),
  									LM = {TS, N},
  									Product4 = Product3#product{last_modified = LM},
  									ok = mnesia:write(Product4),
  									{Product2, LM};
  								_ ->
  									throw(bad_request)
  							end;
  						[#product{}] ->
  							throw(precondition_failed);
  						[] ->
  							throw(not_found)
  					end
  			end,
  			case mnesia:transaction(F) of
  				{atomic, {Product, Etag3}} ->
  					Location = "/productInventoryManagement/v1/product/" ++ ProdId,
  					Headers = [{location, Location}, {etag, ocs_rest:etag(Etag3)}],
  					Body = mochijson:encode(Product),
  					{ok, Headers, Body};
  				{aborted, {throw, bad_request}} ->
  					{error, 400};
  