text: /*!
   @header    GAIProductAction.h
   @abstract  Google Analytics iOS SDK Hit Format Header
   @copyright Copyright 2014 Google Inc. All rights reserved.
   */
  
  #import <Foundation/Foundation.h>
  
  /*!
   * Class to construct transaction/checkout or other product interaction related information for a
   * Google Analytics hit. Use this class to report information about products sold, viewed or
   * refunded. This class is intended to be used with GAIDictionaryBuilder.
   * <br>
   * Typical usage:
   * <code>
   * [tracker set:kGAIScreenName value:@"MyScreen"];
   * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
   * GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
   * [action setAction:kGAIPAPurchase];
   * [action setTransactionId:@"TT-1234"];
   * [action setRevenue:@3.14];
   * [action setCouponCode:@"EXTRA100"];
   * [builder setProductAction:action];
   * GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
   * [product setId:@""PID-1234""];
   * [product setName:@"Space Monkeys!"];
   * [product setPrice:@100];
   * [product setQuantity:@2];
   * [builder addProduct:product];
   * [tracker send:[builder build]];
   * </code>
   */
  @interface GAIEcommerceProductAction : NSObject
  
  /*!
   Sets the product action field for this product action. Valid values can be found in
   GAIEcommerceFields.h under "product action values".
   */
  - (GAIEcommerceProductAction *)setAction:(NSString *)productAction;
  
  /*!
   The unique id associated with the transaction.  This value is used for kGAIPAPurchase and
   kGAIPARefund product actions.
   */
  - (GAIEcommerceProductAction *)setTransactionId:(NSString *)transactionId;
  
  /*!
   Sets the transaction's affiliation value.  This value is used for kGAIPAPurchase and
   kGAIPARefund product actions.
   */
  - (GAIEcommerceProductAction *)setAffiliation:(NSString *)affiliation;
  
  /*!
   Sets the transaction's total revenue.  This value is used for kGAIPAPurchase and kGAIPARefund
   product actions.
   */
  - (GAIEcommerceProductAction *)setRevenue:(NSNumber *)revenue;
  
  /*!
   Sets the transaction's total tax.  This value is used for kGAIPAPurchase and kGAIPARefund
   product actions.
   */
  - (GAIEcommerceProductAction *)setTax:(NSNumber *)tax;
  
  /*!
   Sets the transaction's total shipping costs.  This value is used for kGAIPAPurchase and
   kGAIPARefund product actions.
   */
  - (GAIEcommerceProductAction *)setShipping:(NSNumber *)shipping;
  
  /*!
   Sets the coupon code used in this transaction.  This value is used for kGAIPAPurchase and
   kGAIPARefund product actions.
   */
  - (GAIEcommerceProductAction *)setCouponCode:(NSString *)couponCode;
  
  /*!
   Sets the checkout process's progress.  This value is used for kGAICheckout and
   kGAICheckoutOptions product actions.
   */
  - (GAIEcommerceProductAction *)setCheckoutStep:(NSNumber *)checkoutStep;
  
  /*!
   Sets the option associated with the checkout.  This value is used for kGAICheckout and
   kGAICheckoutOptions product actions.
   */
  - (GAIEcommerceProductAction *)setCheckoutOption:(NSString *)checkoutOption;
  
  /*!
   Sets the list name associated with the products in Google Analytics beacons.  This value is
   used in kGAIPADetail and kGAIPAClick product actions.
   */
  - (GAIEcommerceProductAction *)setProductActionList:(NSString *)productActionList;
  
  /*!
   Sets the list source name associated with the products in Google Analytics beacons.  This value
   is used in kGAIPADetail and kGAIPAClick product actions.
   */
  - (GAIEcommerceProductAction *)setProductListSource:(NSString *)productListSource;
  
  /*!
   Builds an NSDictionary of fields stored in this instance representing this product action.
   <br>
   Normally, users will have no need to call this method.
   */
  - (NSDictionary *)build;
  @end
  