 
 public struct GDAXOrder: JSONInitializable {
 	
+	/* Some fields are optional. E.g. pending market orders might not 
+	   have price and size or funds. timeInForce is also not always set. */
 	public let id: String
-	public let price: Double
-	public let size: Double
+	public let price: Double?
+	public let size: Double?
+	public let funds: Double?
 	public let productID: String
 	public let side: GDAXSide
 	public let stp: GDAXSelfTradePrevention
 	public let type: GDAXOrderType
-	public let timeInForce: GDAXTimeInForce
+	public let timeInForce: GDAXTimeInForce?
 	public let postOnly: Bool
 	public let createdAt: Date
 	public let fillFees: Double

		self.createdAt = createdAt
		self.fillFees = fillFees
		self.filledSize = filledSize
		self.executedValue = executedValue
		self.status = status
		self.settled = settled

			throw GDAXError.responseParsingFailure("id")
		}
		
		let price = Double(json["price"] as? String ?? "")
		let size = Double(json["size"] as? String ?? "")
		let funds = Double(json["funds"] as? String ?? "")
		
		guard let productID = json["product_id"] as? String else {
			throw GDAXError.responseParsingFailure("product_id")
