anchor.diff:  	try
   		ProdName = prod_price_name(erlang_term, Object),
   		{ProdSTime, ProdETime} = prod_price_vf(erlang_term, Object),
  -		if
  -			is_integer(ProdSTime) and is_integer(ProdETime) ->
  -
  -				ProdPriceType = prod_price_type(erlang_term, Object),
  -				{_, {struct, ProdPriceObj}} = lists:keyfind("price", 1, Object),
  -				ProdAmount = prod_price_price_amount(erlang_term, ProdPriceObj),
  -				CurrencyCode = prod_price_price_c_code(erlang_term, ProdPriceObj),
  -				ProdVF = prod_price_vf(erlang_term, Object),
  -				RCPeriod = prod_price_rc_period(erlang_term, Object),
  -				ProdDescirption = prod_price_description(erlang_term, Object),
  -				ProdValidity = ProdETime - ProdSTime,
  -				if
  -					ProdValidity =/= {error, format_error} ->
  -						{ProdUnits, ProdSize} = prod_price_ufm(erlang_term, Object),
  -						Size = product_size(ProdUnits, octets, ProdSize),
  -						Price1 = #price{name = ProdName, description = ProdDescirption,
  -							type = ProdPriceType, units = ProdUnits, size = Size, valid_for = ProdVF,
  -							currency = CurrencyCode, period = RCPeriod, validity = ProdValidity,
  -							amount = ProdAmount},
  -						case lists:keyfind("productOfferPriceAlteration", 1, Object) of
  -							false ->
  -								po_price(erlang_term, T, [Price1 | Prices]);
  -							{_, {struct, ProdAlterObj}} ->
  -								case po_alteration(erlang_term, ProdAlterObj) of
  -									{error, Status} ->
  -										{error, Status};
  -									Alteration ->
  -										Price2 = Price1#price{alteration = Alteration},
  -									po_price(erlang_term, T, [Price2 | Prices])
  -								end
  -						end;
  -				true ->
  -					{error, 400}
  -			end
  +		ProdPriceType = prod_price_type(erlang_term, Object),
  +		{_, {struct, ProdPriceObj}} = lists:keyfind("price", 1, Object),
  +		ProdAmount = prod_price_price_amount(erlang_term, ProdPriceObj),
  +		CurrencyCode = prod_price_price_c_code(erlang_term, ProdPriceObj),
  +		ProdVF = prod_price_vf(erlang_term, Object),
  +		RCPeriod = prod_price_rc_period(erlang_term, Object),
  +		ProdDescirption = prod_price_description(erlang_term, Object),
  +		ProdValidity = ProdETime - ProdSTime,
  +		{ProdUnits, ProdSize} = prod_price_ufm(erlang_term, Object),
  +		Size = product_size(ProdUnits, octets, ProdSize),
  +		Price1 = #price{name = ProdName, description = ProdDescirption,
  +				type = ProdPriceType, units = ProdUnits, size = Size, valid_for = ProdVF,
  +				currency = CurrencyCode, period = RCPeriod, validity = ProdValidity,
  +				amount = ProdAmount},
  +		case lists:keyfind("productOfferPriceAlteration", 1, Object) of
  +			false ->
  +				po_price(erlang_term, T, [Price1 | Prices]);
  +			{_, {struct, ProdAlterObj}} ->
  +				case po_alteration(erlang_term, ProdAlterObj) of
  +					{error, Status} ->
  +						{error, Status};
  +					Alteration ->
  +						Price2 = Price1#price{alteration = Alteration},
  +						po_price(erlang_term, T, [Price2 | Prices])
  +				end
   		end
   	catch
   		_:_ ->
  
positive.code: 		Name = prod_name(erlang_term, Object),
  		IsBundle = prod_isBundle(erlang_term, Object),
  		Status = prod_status(erlang_term, Object),
  		case prod_vf(erlang_term, Object) of
  			{error, Status} ->
  				{error, Status};
  			ValidFor ->
  				Descirption = prod_description(erlang_term, Object),
  				case prod_offering_price(erlang_term, Object) of
  					{error, StatusCode} ->
  						{error, StatusCode};
  					Price ->
  						Product = #product{price = Price, name = Name, valid_for = ValidFor,
  							is_bundle = IsBundle, status = Status, description = Descirption},
  						case add_product1(Product) of
  							ok ->
  								add_product2(Name, Object);
  							{error, StatusCode} ->
  								{error, StatusCode}
  						end
  				end
  		end
  	catch
  
negative.code: 		Prefix	:: erlang_term | json,
  		ProdAlterObj :: list(),
  		Result	:: #alteration{} | {error, Status},
  		Status	:: 400 | 500.
  %% @private
  po_alteration(erlang_term, ProdAlterObj) ->
  	try
  