def set_order_attributes(
      amazon_order_reference_id,
      amount: nil,
      currency_code: @currency_code,
      platform_id: nil,
      seller_note: nil,
      seller_order_id: nil,
      payment_service_provider_id: nil,
      payment_service_provider_order_id: nil,
      request_payment_authorization: nil,
      store_name: nil,
      order_item_categories: nil,
      custom_information: nil,
      supplementary_data: nil,
      merchant_id: @merchant_id,
      mws_auth_token: nil
    )

      parameters = {
        'Action' => 'SetOrderAttributes',
        'SellerId' => merchant_id,
        'AmazonOrderReferenceId' => amazon_order_reference_id
      }

      optional = {
        'OrderAttributes.OrderTotal.Amount' => amount,
        'OrderAttributes.OrderTotal.CurrencyCode' => currency_code,
        'OrderAttributes.PlatformId' => platform_id,
        'OrderAttributes.SellerNote' => seller_note,
        'OrderAttributes.SellerOrderAttributes.SellerOrderId' => seller_order_id,
        'OrderAttributes.PaymentServiceProviderAttributes.PaymentServiceProviderId' => payment_service_provider_id,
        'OrderAttributes.PaymentServiceProviderAttributes.PaymentServiceProviderOrderId' => payment_service_provider_order_id,
        'OrderAttributes.RequestPaymentAuthorization' => request_payment_authorization,
        'OrderAttributes.SellerOrderAttributes.StoreName' => store_name,
        'OrderAttributes.SellerOrderAttributes.CustomInformation' => custom_information,
        'OrderAttributes.SellerOrderAttributes.SupplementaryData' => supplementary_data,
        'MWSAuthToken' => mws_auth_token
      }

      optional['OrderAttributes.OrderTotal.CurrencyCode'] = nil if amount.nil?

      if order_item_categories
        optional.merge!(
          get_categories_list(
            'OrderAttributes',
            order_item_categories
          )
        )
      end

      operation(parameters, optional)
    end
def set_order_attributes(
      amazon_order_reference_id,
      amount: nil,
      currency_code: @currency_code,
      platform_id: nil,
      seller_note: nil,
      seller_order_id: nil,
      payment_service_provider_id: nil,
      payment_service_provider_order_id: nil,
      request_payment_authorization: nil,
      store_name: nil,
      order_item_categories: nil,
      custom_information: nil,
      supplementary_data: nil,
      merchant_id: @merchant_id,
      mws_auth_token: nil
    )

      parameters = {
        'Action' => 'SetOrderAttributes',
        'SellerId' => merchant_id,
        'AmazonOrderReferenceId' => amazon_order_reference_id
      }

      optional = {
        'OrderAttributes.OrderTotal.Amount' => amount,
        'OrderAttributes.OrderTotal.CurrencyCode' => currency_code,
        'OrderAttributes.PlatformId' => platform_id,
        'OrderAttributes.SellerNote' => seller_note,
        'OrderAttributes.SellerOrderAttributes.SellerOrderId' => seller_order_id,
        'OrderAttributes.PaymentServiceProviderAttributes.PaymentServiceProviderId' => payment_service_provider_id,
        'OrderAttributes.PaymentServiceProviderAttributes.PaymentServiceProviderOrderId' => payment_service_provider_order_id,
        'OrderAttributes.RequestPaymentAuthorization' => request_payment_authorization,
        'OrderAttributes.SellerOrderAttributes.StoreName' => store_name,
        'OrderAttributes.SellerOrderAttributes.CustomInformation' => custom_information,
        'OrderAttributes.SellerOrderAttributes.SupplementaryData' => supplementary_data,
        'MWSAuthToken' => mws_auth_token
      }

      optional['OrderAttributes.OrderTotal.CurrencyCode'] = nil if amount.nil?

      if order_item_categories
        optional.merge!(
          get_categories_list(
            'OrderAttributes',
            order_item_categories
          )
        )
      end

      operation(parameters, optional)
    end
Sets order attributes such as the order total and a description
 for the order
 @see https://pay.amazon.com/documentation/apireference/201751630#201751960
 @param amazon_order_reference_id [String]
 @optional amount [String]
 @optional currency_code [String]
 @optional platform_id [String]
 @optional seller_note [String]
 @optional seller_order_id [String]
 @optional request_payment_authorization [Boolean]
 @optional store_name [String]
 @optional order_item_categories Array[String]
 @optional custom_information [String]
 @optional supplementary_data [String]
 @optional merchant_id [String]
 @optional mws_auth_token [String]