anchor.diff:  				[Entry] when
   						Entry#product.last_modified == Etag;
   						Etag == undefined ->
  -					case target(Entry) of
  +					case offer(Entry) of
   						{error, Status} ->
   							throw(Status);
   						Target ->
   							Patched = ocs_rest:merge_patch(Target, Patch),
  -							case target(Patched) of
  +							case offer(Patched) of
   								{error, SC} ->
   									throw(SC);
   								Updatedentry ->
  
positive.code: prod_price_rc_period(Price) when is_list(Price) ->
  	case lists:keyfind("recurringChargePeriod", 1, Price) of
  		{_, RCPeriod} ->
  			rc_period(RCPeriod);
  		false ->
  			undefined
  	end;
  
negative.code: product_size(octets, mb, Size) -> Size div 1000000;
  product_size(_, _, Size) -> Size.
  
  -spec offer_status(Status) -> Status
  	when
  		Status :: offer_status() | string().
  %% @doc CODEC for life cycle status of Product instance.
  %% @private
  offer_status("In Study") -> in_study;
  offer_status("In Design") -> in_design;
  offer_status("In Test") -> in_test;
  offer_status("Active") -> active;
  offer_status("Rejected") -> rejected;
  offer_status("Launched") -> launched;
  offer_status("Retired") -> retired;
  offer_status("Obsolete") -> obsolete;
  offer_status(in_study) -> "In Study";
  offer_status(in_design) -> "In Design";
  offer_status(in_test) -> "In Test";
  offer_status(active) -> "Active";
  offer_status(rejected) -> "Rejected";
  offer_status(launched) -> "Launched";
  offer_status(retired) -> "Retired";
  offer_status("Obsolete") -> obsolete.
  
  -spec product_status(Status) -> Status
  	when
  