Class: AftershipAPI::Model::Tracking

Inherits:
Object
  • Object
show all
Defined in:
lib/aftership-tracking-sdk/models/tracking.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ Tracking

Initializes the object

Parameters:

  • attributes (Hash) (defaults to: {})

    Model attributes in the form of hash



307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 307

def initialize(attributes = {})
  if (!attributes.is_a?(Hash))
    fail ArgumentError, "The input argument (attributes) must be a hash in `AftershipAPI::Tracking` initialize method"
  end

  attributes = attributes.each_with_object({}) { |(k, v), h|
    h[k.to_sym] = v
  }

  if attributes.key?(:'id')
    self.id = attributes[:'id']
  end

  if attributes.key?(:'legacy_id')
    self.legacy_id = attributes[:'legacy_id']
  end

  if attributes.key?(:'created_at')
    self.created_at = attributes[:'created_at']
  end

  if attributes.key?(:'updated_at')
    self.updated_at = attributes[:'updated_at']
  end

  if attributes.key?(:'tracking_number')
    self.tracking_number = attributes[:'tracking_number']
  end

  if attributes.key?(:'slug')
    self.slug = attributes[:'slug']
  end

  if attributes.key?(:'active')
    self.active = attributes[:'active']
  end

  if attributes.key?(:'custom_fields')
    self.custom_fields = attributes[:'custom_fields']
  end

  if attributes.key?(:'transit_time')
    self.transit_time = attributes[:'transit_time']
  end

  if attributes.key?(:'origin_country_region')
    self.origin_country_region = attributes[:'origin_country_region']
  end

  if attributes.key?(:'origin_state')
    self.origin_state = attributes[:'origin_state']
  end

  if attributes.key?(:'origin_city')
    self.origin_city = attributes[:'origin_city']
  end

  if attributes.key?(:'origin_postal_code')
    self.origin_postal_code = attributes[:'origin_postal_code']
  end

  if attributes.key?(:'origin_raw_location')
    self.origin_raw_location = attributes[:'origin_raw_location']
  end

  if attributes.key?(:'destination_country_region')
    self.destination_country_region = attributes[:'destination_country_region']
  end

  if attributes.key?(:'destination_state')
    self.destination_state = attributes[:'destination_state']
  end

  if attributes.key?(:'destination_city')
    self.destination_city = attributes[:'destination_city']
  end

  if attributes.key?(:'destination_postal_code')
    self.destination_postal_code = attributes[:'destination_postal_code']
  end

  if attributes.key?(:'destination_raw_location')
    self.destination_raw_location = attributes[:'destination_raw_location']
  end

  if attributes.key?(:'courier_destination_country_region')
    self.courier_destination_country_region = attributes[:'courier_destination_country_region']
  end

  if attributes.key?(:'courier_estimated_delivery_date')
    self.courier_estimated_delivery_date = attributes[:'courier_estimated_delivery_date']
  end

  if attributes.key?(:'note')
    self.note = attributes[:'note']
  end

  if attributes.key?(:'order_id')
    self.order_id = attributes[:'order_id']
  end

  if attributes.key?(:'order_id_path')
    self.order_id_path = attributes[:'order_id_path']
  end

  if attributes.key?(:'order_date')
    self.order_date = attributes[:'order_date']
  end

  if attributes.key?(:'shipment_package_count')
    self.shipment_package_count = attributes[:'shipment_package_count']
  end

  if attributes.key?(:'shipment_pickup_date')
    self.shipment_pickup_date = attributes[:'shipment_pickup_date']
  end

  if attributes.key?(:'shipment_delivery_date')
    self.shipment_delivery_date = attributes[:'shipment_delivery_date']
  end

  if attributes.key?(:'shipment_type')
    self.shipment_type = attributes[:'shipment_type']
  end

  if attributes.key?(:'shipment_weight')
    self.shipment_weight = attributes[:'shipment_weight']
  end

  if attributes.key?(:'signed_by')
    self.signed_by = attributes[:'signed_by']
  end

  if attributes.key?(:'source')
    self.source = attributes[:'source']
  end

  if attributes.key?(:'tag')
    self.tag = attributes[:'tag']
  end

  if attributes.key?(:'subtag')
    self.subtag = attributes[:'subtag']
  end

  if attributes.key?(:'subtag_message')
    self.subtag_message = attributes[:'subtag_message']
  end

  if attributes.key?(:'title')
    self.title = attributes[:'title']
  end

  if attributes.key?(:'tracked_count')
    self.tracked_count = attributes[:'tracked_count']
  end

  if attributes.key?(:'last_mile_tracking_supported')
    self.last_mile_tracking_supported = attributes[:'last_mile_tracking_supported']
  end

  if attributes.key?(:'language')
    self.language = attributes[:'language']
  end

  if attributes.key?(:'unique_token')
    self.unique_token = attributes[:'unique_token']
  end

  if attributes.key?(:'checkpoints')
    self.checkpoints = attributes[:'checkpoints']
  end

  if attributes.key?(:'subscribed_smses')
    self.subscribed_smses = attributes[:'subscribed_smses']
  end

  if attributes.key?(:'subscribed_emails')
    self.subscribed_emails = attributes[:'subscribed_emails']
  end

  if attributes.key?(:'return_to_sender')
    self.return_to_sender = attributes[:'return_to_sender']
  end

  if attributes.key?(:'order_promised_delivery_date')
    self.order_promised_delivery_date = attributes[:'order_promised_delivery_date']
  end

  if attributes.key?(:'delivery_type')
    self.delivery_type = attributes[:'delivery_type']
  end

  if attributes.key?(:'pickup_location')
    self.pickup_location = attributes[:'pickup_location']
  end

  if attributes.key?(:'pickup_note')
    self.pickup_note = attributes[:'pickup_note']
  end

  if attributes.key?(:'courier_tracking_link')
    self.courier_tracking_link = attributes[:'courier_tracking_link']
  end

  if attributes.key?(:'first_attempted_at')
    self.first_attempted_at = attributes[:'first_attempted_at']
  end

  if attributes.key?(:'courier_redirect_link')
    self.courier_redirect_link = attributes[:'courier_redirect_link']
  end

  if attributes.key?(:'tracking_account_number')
    self. = attributes[:'tracking_account_number']
  end

  if attributes.key?(:'tracking_key')
    self.tracking_key = attributes[:'tracking_key']
  end

  if attributes.key?(:'tracking_ship_date')
    self.tracking_ship_date = attributes[:'tracking_ship_date']
  end

  if attributes.key?(:'on_time_status')
    self.on_time_status = attributes[:'on_time_status']
  end

  if attributes.key?(:'on_time_difference')
    self.on_time_difference = attributes[:'on_time_difference']
  end

  if attributes.key?(:'order_tags')
    self.order_tags = attributes[:'order_tags']
  end

  if attributes.key?(:'aftership_estimated_delivery_date')
    self.aftership_estimated_delivery_date = attributes[:'aftership_estimated_delivery_date']
  end

  if attributes.key?(:'custom_estimated_delivery_date')
    self.custom_estimated_delivery_date = attributes[:'custom_estimated_delivery_date']
  end

  if attributes.key?(:'order_number')
    self.order_number = attributes[:'order_number']
  end

  if attributes.key?(:'first_estimated_delivery')
    self.first_estimated_delivery = attributes[:'first_estimated_delivery']
  end

  if attributes.key?(:'latest_estimated_delivery')
    self.latest_estimated_delivery = attributes[:'latest_estimated_delivery']
  end

  if attributes.key?(:'shipment_tags')
    self.shipment_tags = attributes[:'shipment_tags']
  end

  if attributes.key?(:'courier_connection_id')
    self.courier_connection_id = attributes[:'courier_connection_id']
  end

  if attributes.key?(:'carbon_emissions')
    self.carbon_emissions = attributes[:'carbon_emissions']
  end

  if attributes.key?(:'location_id')
    self.location_id = attributes[:'location_id']
  end

  if attributes.key?(:'shipping_method')
    self.shipping_method = attributes[:'shipping_method']
  end

  if attributes.key?(:'failed_delivery_attempts')
    self.failed_delivery_attempts = attributes[:'failed_delivery_attempts']
  end

  if attributes.key?(:'signature_requirement')
    self.signature_requirement = attributes[:'signature_requirement']
  end

  if attributes.key?(:'delivery_location_type')
    self.delivery_location_type = attributes[:'delivery_location_type']
  end

  if attributes.key?(:'aftership_tracking_url')
    self.aftership_tracking_url = attributes[:'aftership_tracking_url']
  end

  if attributes.key?(:'aftership_tracking_order_url')
    self.aftership_tracking_order_url = attributes[:'aftership_tracking_order_url']
  end

  if attributes.key?(:'first_mile')
    self.first_mile = attributes[:'first_mile']
  end

  if attributes.key?(:'last_mile')
    self.last_mile = attributes[:'last_mile']
  end

  if attributes.key?(:'customers')
    self.customers = attributes[:'customers']
  end
end

Instance Attribute Details

#activeObject

Whether or not AfterShip will continue tracking the shipment. Value is false when no further updates for a few days since last update. active?: Boolean;



31
32
33
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 31

def active
  @active
end

#aftership_estimated_delivery_dateObject

The estimated delivery date of the shipment provided by AfterShip’s AI and shown to the recipients. It uses the format ‘YYYY-MM-DD` based on the shipment recipient’s timezone. aftership_estimated_delivery_date?: TrackingAftershipEstimatedDeliveryDate;



235
236
237
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 235

def aftership_estimated_delivery_date
  @aftership_estimated_delivery_date
end

#aftership_tracking_order_urlObject

The order URL directs your customers to the order tracking page, which includes all shipments. It can display either the default or a customized page based on segmentation rules.- The universal URL is used by default, but you can opt for a custom domain if you have one. Learn how to set up a custom domain .The field is not automatically enabled in API & Webhook. Please contact support if you’d like to enable it. aftership_tracking_order_url?: String;



291
292
293
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 291

def aftership_tracking_order_url
  @aftership_tracking_order_url
end

#aftership_tracking_urlObject

The tracking URL directs your customers to the shipment tracking page which can display either the default or a customized page based on segmentation rules.- The universal URL is used by default, but you can opt for a custom domain if you have one. Learn how to set up a custom domain .The field is not automatically enabled in API & Webhook. Please contact support if you’d like to enable it. aftership_tracking_url?: String;



287
288
289
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 287

def aftership_tracking_url
  @aftership_tracking_url
end

#carbon_emissionsObject

The model contains the total amount of carbon emissions generated by the shipment. - AfterShip will provide this data only when it is available, and its availability is contingent upon the location and weight information that AfterShip can obtain.- The values will be accessible solely for shipments that have been successfully delivered. However, in the event of a shipping update after the delivery status has been achieved, the value may change.- It’s a paid service and only for Tracking Enterprise users, please contact your customer success manager if you want to know more. carbon_emissions?: TrackingCarbonEmissions;



263
264
265
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 263

def carbon_emissions
  @carbon_emissions
end

#checkpointsObject

Array of checkpoint object describes the checkpoint information. checkpoints?: Checkpoint[];



167
168
169
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 167

def checkpoints
  @checkpoints
end

#courier_connection_idObject

If you have multiple accounts connected for a single carrier on AfterShip, we have introduced the courier_connection_id field to allow you to specify the carrier account associated with each shipment. By providing this information, you enable us to accurately track and monitor your shipments based on the correct carrier account.(</br>In the event that you do not specify the courier_connection_id, we will handle your shipment using the connection that was created earliest among your connected accounts. courier_connection_id?: String;



259
260
261
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 259

def courier_connection_id
  @courier_connection_id
end

#courier_destination_country_regionObject

Destination country/region of the tracking detected from the courier. ISO Alpha-3 (three letters). Value will be ‘null` if the courier doesn’t provide the destination country. courier_destination_country_region?: String;



83
84
85
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 83

def courier_destination_country_region
  @courier_destination_country_region
end

#courier_estimated_delivery_dateObject

The field contains the estimated delivery date provided by the carrier. courier_estimated_delivery_date?: TrackingCourierEstimatedDeliveryDate;



87
88
89
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 87

def courier_estimated_delivery_date
  @courier_estimated_delivery_date
end

Delivery instructions (delivery date or address) can be modified by visiting the link if supported by a carrier. The language parameter of this link relies on the destination country/region and the language associated with the shipment, if the data regarding the destination country/region and language of the shipment is not available, AfterShip will set the language parameter of the link to “US” by default. courier_redirect_link?: String;



207
208
209
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 207

def courier_redirect_link
  @courier_redirect_link
end

Official tracking URL of the courier (if any). The language parameter of this link relies on the destination country/region and the language associated with the shipment, if the data regarding the destination country/region and language of the shipment is not available, AfterShip will set the language parameter of the link to “US” by default. courier_tracking_link?: String;



199
200
201
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 199

def courier_tracking_link
  @courier_tracking_link
end

#created_atObject

The date and time the shipment was imported or added to AfterShip. It uses the format ‘YYYY-MM-DDTHH:mm:ssZ` for the timezone GMT +0. created_at?: String;



15
16
17
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 15

def created_at
  @created_at
end

#custom_estimated_delivery_dateObject

Estimated delivery time of the shipment based on your . It uses the format ‘YYYY-MM-DD` based on the shipment recipient’s timezone. custom_estimated_delivery_date?: TrackingCustomEstimatedDeliveryDate;



239
240
241
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 239

def custom_estimated_delivery_date
  @custom_estimated_delivery_date
end

#custom_fieldsObject

Custom fields that accept an object with string field. In order to protect the privacy of your customers, do not include any in custom fields. custom_fields?: Object;



35
36
37
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 35

def custom_fields
  @custom_fields
end

#customersObject

The field contains the customer information associated with the tracking. A maximum of three customer objects are allowed. customers?: TrackingCustomers[];



303
304
305
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 303

def customers
  @customers
end

#delivery_location_typeObject

The delivery location type represents the secure area where the carrier leaves the package, such as a safe place, locker, mailbox, front porch, etc. This information helps ensure the shipment reaches the intended recipient efficiently, minimizing the risk of theft or damage. delivery_location_type?: String;



283
284
285
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 283

def delivery_location_type
  @delivery_location_type
end

#delivery_typeObject

Shipment delivery type- pickup_at_store- pickup_at_courier- door_to_door delivery_type?: String;



187
188
189
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 187

def delivery_type
  @delivery_type
end

#destination_cityObject

The city of the recipient’s address. destination_city?: String;



71
72
73
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 71

def destination_city
  @destination_city
end

#destination_country_regionObject

The for the destination country/region. E.g. USA for the United States. destination_country_region?: String;



63
64
65
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 63

def destination_country_region
  @destination_country_region
end

#destination_postal_codeObject

The postal code of the recipient’s address. destination_postal_code?: String;



75
76
77
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 75

def destination_postal_code
  @destination_postal_code
end

#destination_raw_locationObject

The shipping address that the shipment is shipping to. destination_raw_location?: String;



79
80
81
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 79

def destination_raw_location
  @destination_raw_location
end

#destination_stateObject

The state of the recipient’s address. destination_state?: String;



67
68
69
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 67

def destination_state
  @destination_state
end

#failed_delivery_attemptsObject

By dynamically tracking failed delivery attempts during shipment, this field allows you to pinpoint carriers accountable for the most failures. Analyzing the root cause of these failures enables you to improve carriers’ delivery standard operating procedures (SOP), leading to an overall enhancement in delivery service quality. failed_delivery_attempts?: Integer;



275
276
277
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 275

def failed_delivery_attempts
  @failed_delivery_attempts
end

#first_attempted_atObject

The date and time of the carrier’s first attempt to deliver the package to the recipient. It uses the shipment recipient’s timezone. The format may differ depending on how the carrier provides it:- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZ first_attempted_at?: String;



203
204
205
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 203

def first_attempted_at
  @first_attempted_at
end

#first_estimated_deliveryObject

The shipment’s original estimated delivery date. It could be provided by the carrier, AfterShip AI, or based on your custom settings. The format of carrier EDDs may differ depending on how the carrier provides it:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZ AfterShip AI and custom EDDs always use the format ‘YYYY-MM-DD`. All EDDs use the shipment recipient’s timezone. first_estimated_delivery?: TrackingFirstEstimatedDelivery;



247
248
249
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 247

def first_estimated_delivery
  @first_estimated_delivery
end

#first_mileObject

The field contains information about the first leg of the shipping starting from the carrier picking up the shipment from the shipper to the point where they hand it over to the last-mile carrier. Once AfterShip detects the shipment is multi-leg, we will populate the first-mile information under this object. first_mile?: TrackingFirstMile;



295
296
297
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 295

def first_mile
  @first_mile
end

#idObject

A system-generated tracking ID by default, which can be customized by the user when creating a tracking. id?: String;



7
8
9
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 7

def id
  @id
end

#languageObject

The recipient’s language. If you set up AfterShip notifications in different languages, we use this to send the recipient tracking updates in their preferred language. language?: String;



159
160
161
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 159

def language
  @language
end

#last_mileObject

This field contains information about the last leg of the shipment, starting from the carrier who hands it over to the last-mile carrier, all the way to delivery. Once AfterShip detects that the shipment involves multiple legs and identifies the last-mile carrier, we will populate the last-mile carrier information in this object. Alternatively, the user can provide this information in this field to specify the last-mile carrier, which is helpful if AfterShip is unable to detect it automatically. last_mile?: TrackingLastMile;



299
300
301
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 299

def last_mile
  @last_mile
end

#last_mile_tracking_supportedObject

Indicates if the shipment is trackable till the final destination.Three possible values:- true- false- null last_mile_tracking_supported?: Boolean;



155
156
157
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 155

def last_mile_tracking_supported
  @last_mile_tracking_supported
end

#latest_estimated_deliveryObject

The most recently calculated estimated delivery date. It could be provided by the carrier, AfterShip AI, or based on your custom settings. The format of carrier EDDs may differ depending on how the carrier provides it:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZ AfterShip AI and custom EDDs always use the format ‘YYYY-MM-DD`. All EDDs use the shipment recipient’s timezone. latest_estimated_delivery?: TrackingLatestEstimatedDelivery;



251
252
253
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 251

def latest_estimated_delivery
  @latest_estimated_delivery
end

#legacy_idObject

The length of the tracking ID has been increased from 24 characters to 32 characters. We will use the legacy_id field to store the original 24-character tracking ID to maintain compatibility with existing data. Therefore, all tracking endpoints will continue to work with the legacy_id field as before. legacy_id?: String;



11
12
13
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 11

def legacy_id
  @legacy_id
end

#location_idObject

The location_id refers to the place where you fulfilled the items. - If you provide a location_id, the system will automatically use it as the tracking’s origin address. However, passing both location_id and any origin address information simultaneously is not allowed.- Please make sure you add your locations . location_id?: String;



267
268
269
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 267

def location_id
  @location_id
end

#noteObject

Text field for the note. note?: String;



91
92
93
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 91

def note
  @note
end

#on_time_differenceObject

The difference days of the on time. on_time_difference?: Float;



227
228
229
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 227

def on_time_difference
  @on_time_difference
end

#on_time_statusObject

Whether the tracking is delivered on time or not. on_time_status?: String;



223
224
225
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 223

def on_time_status
  @on_time_status
end

#order_dateObject

The date and time the order was created in your system or store. It uses the format: ‘YYYY-MM-DDTHH:mm:ssZ` based on whichever timezone you provide. order_date?: String;



103
104
105
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 103

def order_date
  @order_date
end

#order_idObject

A globally-unique identifier for the order. order_id?: String;



95
96
97
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 95

def order_id
  @order_id
end

#order_id_pathObject

The URL for the order in your system or store. order_id_path?: String;



99
100
101
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 99

def order_id_path
  @order_id_path
end

#order_numberObject

A unique, human-readable identifier for the order. order_number?: String;



243
244
245
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 243

def order_number
  @order_number
end

#order_promised_delivery_dateObject

The promised delivery date of the order. It uses the formats:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZ order_promised_delivery_date?: String;



183
184
185
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 183

def order_promised_delivery_date
  @order_promised_delivery_date
end

#order_tagsObject

The tags of the order. order_tags?: String[];



231
232
233
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 231

def order_tags
  @order_tags
end

#origin_cityObject

The city of the sender’s address. origin_city?: String;



51
52
53
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 51

def origin_city
  @origin_city
end

#origin_country_regionObject

The for the origin country/region. E.g. USA for the United States. origin_country_region?: String;



43
44
45
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 43

def origin_country_region
  @origin_country_region
end

#origin_postal_codeObject

The postal code of the sender’s address. origin_postal_code?: String;



55
56
57
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 55

def origin_postal_code
  @origin_postal_code
end

#origin_raw_locationObject

The sender address that the shipment is shipping from. origin_raw_location?: String;



59
60
61
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 59

def origin_raw_location
  @origin_raw_location
end

#origin_stateObject

The state of the sender’s address. origin_state?: String;



47
48
49
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 47

def origin_state
  @origin_state
end

#pickup_locationObject

Shipment pickup location for receiver pickup_location?: String;



191
192
193
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 191

def pickup_location
  @pickup_location
end

#pickup_noteObject

Shipment pickup note for receiver pickup_note?: String;



195
196
197
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 195

def pickup_note
  @pickup_note
end

#return_to_senderObject

Whether or not the shipment is returned to sender. Value is ‘true` when any of its checkpoints has subtag `Exception_010` (returning to sender) or `Exception_011` (returned to sender). Otherwise value is `false`. return_to_sender?: Boolean;



179
180
181
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 179

def return_to_sender
  @return_to_sender
end

#shipment_delivery_dateObject

The date and time the shipment was delivered. It uses the shipment recipient’s timezone. The format may differ depending on how the carrier provides it:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZ shipment_delivery_date?: String;



115
116
117
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 115

def shipment_delivery_date
  @shipment_delivery_date
end

#shipment_package_countObject

Number of packages under the tracking. shipment_package_count?: Float;



107
108
109
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 107

def shipment_package_count
  @shipment_package_count
end

#shipment_pickup_dateObject

The date and time the shipment was picked up by the carrier. It uses the timezone where the pickup occured. The format may differ depending on how the carrier provides it:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZ shipment_pickup_date?: String;



111
112
113
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 111

def shipment_pickup_date
  @shipment_pickup_date
end

#shipment_tagsObject

Used to add tags to your shipments to help categorize and filter them easily. shipment_tags?: String[];



255
256
257
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 255

def shipment_tags
  @shipment_tags
end

#shipment_typeObject

The carrier service type for the shipment. shipment_type?: String;



119
120
121
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 119

def shipment_type
  @shipment_type
end

#shipment_weightObject

The shipment_weight field represents the total weight of the shipment. In scenarios where the carrier does not provide this information, you can provide the weight to AfterShip. We will prioritize the data provided by the carrier, if available. The shipment weight will be included in the Response and accessed through the GET API, Webhook, and CSV export. It will also be displayed on the AfterShip Tracking admin. Additionally, it plays a significant role in error-free shipment handling and carbon emission calculations, ensuring accurate and informed decision-making shipment_weight?: TrackingShipmentWeight;



123
124
125
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 123

def shipment_weight
  @shipment_weight
end

#shipping_methodObject

The shipping_method string refers to the chosen method for delivering the package. Merchants typically offer various shipping methods to consumers during the checkout process, such as, Local Delivery, Free Express Worldwide Shipping, etc. shipping_method?: String;



271
272
273
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 271

def shipping_method
  @shipping_method
end

#signature_requirementObject

The signature_requirement field serves the purpose of validating the service option type, specifically proof of delivery. By collecting the recipient’s signature upon delivery, it ensures the package reaches the intended recipient and prevents disputes related to non-delivery or lost packages.</br> signature_requirement?: TrackingSignatureRequirement;



279
280
281
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 279

def signature_requirement
  @signature_requirement
end

#signed_byObject

Signed by information for delivered shipment. signed_by?: String;



127
128
129
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 127

def signed_by
  @signed_by
end

#slugObject

Unique courier code. When importing a shipment with no courier slug and the tracking number can’t be recognized, the courier will be marked as ‘unrecognized`. Get courier codes . slug?: String;



27
28
29
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 27

def slug
  @slug
end

#sourceObject

Source of how this tracking is added. source?: String;



131
132
133
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 131

def source
  @source
end

#subscribed_emailsObject

Email address(es) subscribed to receive email notifications. subscribed_emails?: String[];



175
176
177
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 175

def subscribed_emails
  @subscribed_emails
end

#subscribed_smsesObject

Phone number(s) subscribed to receive sms notifications. subscribed_smses?: String[];



171
172
173
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 171

def subscribed_smses
  @subscribed_smses
end

#subtagObject

Current subtag of tracking. ( subtag?: String;



139
140
141
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 139

def subtag
  @subtag
end

#subtag_messageObject

Normalized tracking message. ( subtag_message?: String;



143
144
145
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 143

def subtag_message
  @subtag_message
end

#tagObject

Current status of tracking. ( tag?: Tag;



135
136
137
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 135

def tag
  @tag
end

#titleObject

By default this field shows the ‘tracking_number`, but you can customize it as you wish with any info (e.g. the order number). title?: String;



147
148
149
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 147

def title
  @title
end

#tracked_countObject

Number of attempts AfterShip tracks at courier’s system. tracked_count?: Float;



151
152
153
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 151

def tracked_count
  @tracked_count
end

#tracking_account_numberObject

Additional field required by some carriers to retrieve the tracking info. The shipper’s carrier account number. Refer to our article on for more details. tracking_account_number?: String;



211
212
213
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 211

def 
  
end

#tracking_keyObject

Additional field required by some carriers to retrieve the tracking info. A type of tracking credential required by some carriers. Refer to our article on for more details. tracking_key?: String;



215
216
217
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 215

def tracking_key
  @tracking_key
end

#tracking_numberObject

Tracking number. tracking_number?: String;



23
24
25
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 23

def tracking_number
  @tracking_number
end

#tracking_ship_dateObject

The date and time when the shipment is shipped by the merchant and ready for pickup by the carrier. The field supports the following formats:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZThe field serves two key purposes:- Calculate processing time metrics in the Order-to-delivery Analytics dashboard. To ensure accurate analytics, it’s recommended to include timezone information when configuring this value- Required by certain carriers to retrieve tracking information as an additional tracking field. tracking_ship_date?: String;



219
220
221
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 219

def tracking_ship_date
  @tracking_ship_date
end

#transit_timeObject

Total transit time in days.- For delivered shipments: Transit time (in days) = Delivered date - Pick-up date- For undelivered shipments: Transit time (in days) = Current date - Pick-up dateValue as ‘null` for the shipment without pick-up date. transit_time?: Integer;



39
40
41
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 39

def transit_time
  @transit_time
end

#unique_tokenObject

Deprecated unique_token?: String;



163
164
165
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 163

def unique_token
  @unique_token
end

#updated_atObject

The date and time the shipment was updated. It uses the format ‘YYYY-MM-DDTHH:mm:ssZ` for the timezone GMT +0. updated_at?: String;



19
20
21
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 19

def updated_at
  @updated_at
end

Class Method Details

._deserialize(type, value) ⇒ Object

Deserializes the data based on type

Parameters:

  • type (String)

    Data type

  • value (String)

    Value to be deserialized

Returns:

  • (Object)

    Deserialized data



806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 806

def self._deserialize(type, value)
  case type.to_sym
  when :Time
    Time.parse(value)
  when :Date
    Date.parse(value)
  when :String
    value.to_s
  when :Integer
    value.to_i
  when :Float
    value.to_f
  when :Boolean
    if value.to_s =~ /\A(true|t|yes|y|1)\z/i
      true
    else
      false
    end
  when :Object
    # generic object (usually a Hash), return directly
    value
  when /\AArray<(?<inner_type>.+)>\z/
    inner_type = Regexp.last_match[:inner_type]
    value.map { |v| _deserialize(inner_type, v) }
  when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
    k_type = Regexp.last_match[:k_type]
    v_type = Regexp.last_match[:v_type]
    {}.tap do |hash|
      value.each do |k, v|
        hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
      end
    end
  else # model
    klass = AftershipAPI::Model.const_get(type)
    klass.build_from_hash(value)
  end
end

.attribute_mapObject

Attribute mapping from ruby-style variable name to JSON key.



699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 699

def self.attribute_map
  {
    :'id' => :'id',
    :'legacy_id' => :'legacy_id',
    :'created_at' => :'created_at',
    :'updated_at' => :'updated_at',
    :'tracking_number' => :'tracking_number',
    :'slug' => :'slug',
    :'active' => :'active',
    :'custom_fields' => :'custom_fields',
    :'transit_time' => :'transit_time',
    :'origin_country_region' => :'origin_country_region',
    :'origin_state' => :'origin_state',
    :'origin_city' => :'origin_city',
    :'origin_postal_code' => :'origin_postal_code',
    :'origin_raw_location' => :'origin_raw_location',
    :'destination_country_region' => :'destination_country_region',
    :'destination_state' => :'destination_state',
    :'destination_city' => :'destination_city',
    :'destination_postal_code' => :'destination_postal_code',
    :'destination_raw_location' => :'destination_raw_location',
    :'courier_destination_country_region' => :'courier_destination_country_region',
    :'courier_estimated_delivery_date' => :'courier_estimated_delivery_date',
    :'note' => :'note',
    :'order_id' => :'order_id',
    :'order_id_path' => :'order_id_path',
    :'order_date' => :'order_date',
    :'shipment_package_count' => :'shipment_package_count',
    :'shipment_pickup_date' => :'shipment_pickup_date',
    :'shipment_delivery_date' => :'shipment_delivery_date',
    :'shipment_type' => :'shipment_type',
    :'shipment_weight' => :'shipment_weight',
    :'signed_by' => :'signed_by',
    :'source' => :'source',
    :'tag' => :'tag',
    :'subtag' => :'subtag',
    :'subtag_message' => :'subtag_message',
    :'title' => :'title',
    :'tracked_count' => :'tracked_count',
    :'last_mile_tracking_supported' => :'last_mile_tracking_supported',
    :'language' => :'language',
    :'unique_token' => :'unique_token',
    :'checkpoints' => :'checkpoints',
    :'subscribed_smses' => :'subscribed_smses',
    :'subscribed_emails' => :'subscribed_emails',
    :'return_to_sender' => :'return_to_sender',
    :'order_promised_delivery_date' => :'order_promised_delivery_date',
    :'delivery_type' => :'delivery_type',
    :'pickup_location' => :'pickup_location',
    :'pickup_note' => :'pickup_note',
    :'courier_tracking_link' => :'courier_tracking_link',
    :'first_attempted_at' => :'first_attempted_at',
    :'courier_redirect_link' => :'courier_redirect_link',
    :'tracking_account_number' => :'tracking_account_number',
    :'tracking_key' => :'tracking_key',
    :'tracking_ship_date' => :'tracking_ship_date',
    :'on_time_status' => :'on_time_status',
    :'on_time_difference' => :'on_time_difference',
    :'order_tags' => :'order_tags',
    :'aftership_estimated_delivery_date' => :'aftership_estimated_delivery_date',
    :'custom_estimated_delivery_date' => :'custom_estimated_delivery_date',
    :'order_number' => :'order_number',
    :'first_estimated_delivery' => :'first_estimated_delivery',
    :'latest_estimated_delivery' => :'latest_estimated_delivery',
    :'shipment_tags' => :'shipment_tags',
    :'courier_connection_id' => :'courier_connection_id',
    :'carbon_emissions' => :'carbon_emissions',
    :'location_id' => :'location_id',
    :'shipping_method' => :'shipping_method',
    :'failed_delivery_attempts' => :'failed_delivery_attempts',
    :'signature_requirement' => :'signature_requirement',
    :'delivery_location_type' => :'delivery_location_type',
    :'aftership_tracking_url' => :'aftership_tracking_url',
    :'aftership_tracking_order_url' => :'aftership_tracking_order_url',
    :'first_mile' => :'first_mile',
    :'last_mile' => :'last_mile',
    :'customers' => :'customers',
  }
end

.build_from_hash(attributes) ⇒ Object

Builds the object from hash

Parameters:

  • attributes (Hash)

    Model attributes in the form of hash

Returns:

  • (Object)

    Returns the model itself



782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 782

def self.build_from_hash(attributes)
  return nil unless attributes.is_a?(Hash)
  attributes = attributes.transform_keys(&:to_sym)
  transformed_hash = {}
  openapi_types.each_pair do |key, type|
    if attributes.key?(key) && attributes[key].nil?
      transformed_hash["#{key}"] = nil
    elsif type =~ /\AArray<(.*)>/i
      # check to ensure the input is an array given that the attribute
      # is documented as an array but the input is not
      if attributes[key].is_a?(Array)
        transformed_hash["#{key}"] = attributes[key].map { |v| _deserialize($1, v) }
      end
    elsif !attributes[key].nil?
      transformed_hash["#{key}"] = _deserialize(type, attributes[key])
    end
  end
  new(transformed_hash)
end

.openapi_typesObject

Attribute type mapping.



618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 618

def self.openapi_types
  {
    :'id' => :'String',
    :'legacy_id' => :'String',
    :'created_at' => :'String',
    :'updated_at' => :'String',
    :'tracking_number' => :'String',
    :'slug' => :'String',
    :'active' => :'Boolean',
    :'custom_fields' => :'Object',
    :'transit_time' => :'Integer',
    :'origin_country_region' => :'String',
    :'origin_state' => :'String',
    :'origin_city' => :'String',
    :'origin_postal_code' => :'String',
    :'origin_raw_location' => :'String',
    :'destination_country_region' => :'String',
    :'destination_state' => :'String',
    :'destination_city' => :'String',
    :'destination_postal_code' => :'String',
    :'destination_raw_location' => :'String',
    :'courier_destination_country_region' => :'String',
    :'courier_estimated_delivery_date' => :'TrackingCourierEstimatedDeliveryDate',
    :'note' => :'String',
    :'order_id' => :'String',
    :'order_id_path' => :'String',
    :'order_date' => :'String',
    :'shipment_package_count' => :'Float',
    :'shipment_pickup_date' => :'String',
    :'shipment_delivery_date' => :'String',
    :'shipment_type' => :'String',
    :'shipment_weight' => :'TrackingShipmentWeight',
    :'signed_by' => :'String',
    :'source' => :'String',
    :'tag' => :'Tag',
    :'subtag' => :'String',
    :'subtag_message' => :'String',
    :'title' => :'String',
    :'tracked_count' => :'Float',
    :'last_mile_tracking_supported' => :'Boolean',
    :'language' => :'String',
    :'unique_token' => :'String',
    :'checkpoints' => :'Array<Checkpoint>',
    :'subscribed_smses' => :'Array<String>',
    :'subscribed_emails' => :'Array<String>',
    :'return_to_sender' => :'Boolean',
    :'order_promised_delivery_date' => :'String',
    :'delivery_type' => :'String',
    :'pickup_location' => :'String',
    :'pickup_note' => :'String',
    :'courier_tracking_link' => :'String',
    :'first_attempted_at' => :'String',
    :'courier_redirect_link' => :'String',
    :'tracking_account_number' => :'String',
    :'tracking_key' => :'String',
    :'tracking_ship_date' => :'String',
    :'on_time_status' => :'String',
    :'on_time_difference' => :'Float',
    :'order_tags' => :'Array<String>',
    :'aftership_estimated_delivery_date' => :'TrackingAftershipEstimatedDeliveryDate',
    :'custom_estimated_delivery_date' => :'TrackingCustomEstimatedDeliveryDate',
    :'order_number' => :'String',
    :'first_estimated_delivery' => :'TrackingFirstEstimatedDelivery',
    :'latest_estimated_delivery' => :'TrackingLatestEstimatedDelivery',
    :'shipment_tags' => :'Array<String>',
    :'courier_connection_id' => :'String',
    :'carbon_emissions' => :'TrackingCarbonEmissions',
    :'location_id' => :'String',
    :'shipping_method' => :'String',
    :'failed_delivery_attempts' => :'Integer',
    :'signature_requirement' => :'TrackingSignatureRequirement',
    :'delivery_location_type' => :'String',
    :'aftership_tracking_url' => :'String',
    :'aftership_tracking_order_url' => :'String',
    :'first_mile' => :'TrackingFirstMile',
    :'last_mile' => :'TrackingLastMile',
    :'customers' => :'Array<TrackingCustomers>',
  }
end

Instance Method Details

#_to_hash(value) ⇒ Hash

Outputs non-array value in the form of hash For object, use to_hash. Otherwise, just return the value

Parameters:

  • value (Object)

    Any valid value

Returns:

  • (Hash)

    Returns the value in the form of hash



873
874
875
876
877
878
879
880
881
882
883
884
885
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 873

def _to_hash(value)
  if value.is_a?(Array)
    value.compact.map { |v| _to_hash(v) }
  elsif value.is_a?(Hash)
    {}.tap do |hash|
      value.each { |k, v| hash[k] = _to_hash(v) }
    end
  elsif value.respond_to? :to_hash
    value.to_hash
  else
    value
  end
end

#to_bodyHash

to_body is an alias to to_hash (backward compatibility)

Returns:

  • (Hash)

    Returns the object in the form of hash



852
853
854
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 852

def to_body
  to_hash
end

#to_hashHash

Returns the object in the form of hash

Returns:

  • (Hash)

    Returns the object in the form of hash



858
859
860
861
862
863
864
865
866
867
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 858

def to_hash
  hash = {}
  self.class.attribute_map.each_pair do |attr, param|
    value = self.send(attr)
    next if value.nil?

    hash[param] = _to_hash(value)
  end
  hash
end

#to_json(*a) ⇒ Object



887
888
889
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 887

def to_json(*a)
  to_hash.to_json(*a)
end

#to_sString

Returns the string representation of the object

Returns:

  • (String)

    String presentation of the object



846
847
848
# File 'lib/aftership-tracking-sdk/models/tracking.rb', line 846

def to_s
  to_hash.to_s
end