dhl_ecommerce_api 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +133 -10
- data/lib/dhl_ecommerce_api/resources/shipment.rb +2 -2
- data/lib/dhl_ecommerce_api/version.rb +1 -1
- data/lib/dhl_ecommerce_api.rb +4 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a2f1d2a269383e70ae8d3e1790d26a84cf75914195f112d1228030f18f46304
|
4
|
+
data.tar.gz: c7c5739d014fb7f1785b1d2da4531c50891e5c634a0adbe376978adab3850ec3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7888364e05e7bd7eec4f778cbcb241451643907c93e73d3f6cca7d57803d2528611567612fa8b3515069eef889332d041704e0084b51b05dcdeaddd7db6e7bf
|
7
|
+
data.tar.gz: 0de0dd3a612306fda95c9892ceece8b08fcc37ba2720f984c7905a71cbc01cb65702ba897cecb25dbad6f416760ee0a5622662d6431b66cc2653580371064ff7
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Welcome to your new gem! In this directory, you'll find the files you need to be
|
|
4
4
|
|
5
5
|
TODO: Delete this and the text above, and describe your gem
|
6
6
|
|
7
|
-
|
7
|
+
# Installation
|
8
8
|
|
9
9
|
Add this line to your application's Gemfile:
|
10
10
|
|
@@ -20,33 +20,156 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
$ gem install dhl_ecommerce_api
|
22
22
|
|
23
|
-
|
23
|
+
# Configuration
|
24
24
|
In `config/initializers` create a `dhl_ecommerce_api.rb` config file
|
25
25
|
```ruby
|
26
26
|
DHLEcommerceAPI.configure do |config|
|
27
|
-
config.env = ENV["DHL_ECOMMERCE_API_ENV"]
|
28
27
|
config.client_id = ENV["DHL_ECOMMERCE_API_CLIENT_ID"]
|
29
28
|
config.password = ENV["DHL_ECOMMERCE_API_PASSWORD"]
|
29
|
+
config.pickup_account_id = ENV["DHL_ECOMMERCE_API_PICKUP_ACCOUNT_ID"]
|
30
|
+
config.sold_to_account_id = ENV["DHL_ECOMMERCE_API_SOLD_TO_ACCOUNT_ID"]
|
31
|
+
|
32
|
+
# optional, will refer to Rails.env
|
33
|
+
# config.env = ENV["DHL_ECOMMERCE_API_ENV"]
|
30
34
|
end
|
31
35
|
```
|
32
|
-
|
33
|
-
|
36
|
+
# Usage
|
37
|
+
## Create Shipment with Pickup
|
38
|
+
[DHL Shipment Documentation](https://sandbox.dhlecommerce.asia/API/docs/v2/pickup.html)
|
39
|
+
```ruby
|
40
|
+
# Shipment::Pickup params
|
41
|
+
{
|
42
|
+
"pickup_date_time": DateTime.now.to_s,
|
43
|
+
"pickup_address": {
|
44
|
+
"company_name": "Pickup From Company",
|
45
|
+
"name": "Pickup From Name",
|
46
|
+
"address1": "Holistic Pharmacy PostCo, 55, Jalan Landak",
|
47
|
+
"city": " Kuala Lumpur",
|
48
|
+
"state": " Kuala Lumpur",
|
49
|
+
"post_code": "55100",
|
50
|
+
"country": "MY",
|
51
|
+
"phone": "0123456789",
|
52
|
+
"email": "hello@example.com"
|
53
|
+
},
|
54
|
+
"shipment_items": [
|
55
|
+
{
|
56
|
+
"shipment_id": "MYPTC00001", # unique
|
57
|
+
"package_desc": "Laptop Sleeve",
|
58
|
+
"total_weight": 500,
|
59
|
+
"total_weight_uom": "G",
|
60
|
+
"dimension_uom": "CM",
|
61
|
+
"product_code": "PDO",
|
62
|
+
"total_value": 300,
|
63
|
+
"currency": "MYR",
|
64
|
+
"is_routing_info_required": "Y",
|
65
|
+
"consignee_address": {
|
66
|
+
"company_name": "Sleeve Company",
|
67
|
+
"name": "Sleeve Sdn Bhd",
|
68
|
+
"address1": "No. 3, Jalan Bangsar, Kampung Haji Abdullah Hukum",
|
69
|
+
"city": "Kuala Lumpur",
|
70
|
+
"state": "Kuala Lumpur",
|
71
|
+
"country": "MY",
|
72
|
+
"postCode": "57000",
|
73
|
+
"phone": "0123456789"
|
74
|
+
}
|
75
|
+
},
|
76
|
+
]
|
77
|
+
}
|
78
|
+
```
|
79
|
+
|
34
80
|
```ruby
|
35
|
-
DHLEcommerceAPI::Shipment.create(params)
|
81
|
+
DHLEcommerceAPI::Shipment::Pickup.create(params)
|
82
|
+
```
|
83
|
+
|
84
|
+
|
85
|
+
## Create Shipment w/o Pickup
|
86
|
+
Create a Shipment in DHLs system only. Used when we want to create a Shipment but not book a pickup. I.e. Generate the Shipment label for customers to print. (Use in conjunction with Pickup API.)
|
87
|
+
```ruby
|
88
|
+
# Shipment::Dropoff params
|
89
|
+
{
|
90
|
+
"shipment_items" => [
|
91
|
+
{
|
92
|
+
"shipment_id" => "MYPTC00002", # unique
|
93
|
+
"package_desc" => "Bread Materials",
|
94
|
+
"total_weight" => 2000,
|
95
|
+
"total_weight_uom" => "G",
|
96
|
+
"dimension_uom" => "CM",
|
97
|
+
"product_code" => "PDO",
|
98
|
+
"total_value" => 300,
|
99
|
+
"currency" => "MYR",
|
100
|
+
"is_routing_info_required" => "Y",
|
101
|
+
"consignee_address" => {
|
102
|
+
"company_name" => "Test",
|
103
|
+
"name" => "Test1",
|
104
|
+
"address1" => "NO 3 JALAN PPU 1",
|
105
|
+
"address2" => "TAMAN PERINDUSTRIAN PUCHONG UTAMA",
|
106
|
+
"city" => "PUCHONG",
|
107
|
+
"state" => "SELANGOR",
|
108
|
+
"country" => "MY",
|
109
|
+
"post_code" => "57000",
|
110
|
+
"phone" => "0123456798"
|
111
|
+
}
|
112
|
+
}
|
113
|
+
]
|
114
|
+
}
|
115
|
+
```
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
DHLEcommerceAPI::Shipment::Dropoff.create(params)
|
119
|
+
```
|
120
|
+
|
121
|
+
## Create Pickup
|
122
|
+
DHL will send a courier to pickup parcels from the `shipper_details` address. The courier will only pickup parcels with a valid DHL label.
|
123
|
+
|
124
|
+
[DHL Pickup Documentation](https://sandbox.dhlecommerce.asia/API/docs/v2/pickup.html)
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
# Pickup params
|
128
|
+
{
|
129
|
+
"handover_items": [
|
130
|
+
{
|
131
|
+
"pickup_date": "2022-03-09",
|
132
|
+
"pickup_start_time": "09:00",
|
133
|
+
"pickup_end_time": "18:00",
|
134
|
+
"shipment_type": "1",
|
135
|
+
"shipper_details": {
|
136
|
+
"company": "PostCo",
|
137
|
+
"name": "PostCo",
|
138
|
+
"phone_number": "0123456789",
|
139
|
+
"address_line_1": "No 31, Jalan 123/123",
|
140
|
+
"city": "Petaling Jaya",
|
141
|
+
"state": "Selangor",
|
142
|
+
"postal_code": "57000",
|
143
|
+
"country": "MY",
|
144
|
+
},
|
145
|
+
"shipments": {
|
146
|
+
"quantity": 1,
|
147
|
+
"totalWeight": 100
|
148
|
+
}
|
149
|
+
}
|
150
|
+
]
|
151
|
+
}
|
36
152
|
```
|
37
|
-
### Create Pickup
|
38
153
|
```ruby
|
39
154
|
DHLEcommerceAPI::Pickup.create(params)
|
40
155
|
```
|
156
|
+
## Tracking
|
157
|
+
[DHL Tracking Documentation](https://sandbox.dhlecommerce.asia/API/docs/v2/pickup.html)
|
158
|
+
```ruby
|
159
|
+
DHLEcommerceAPI::Tracking.find('MYPOS0001')
|
160
|
+
# => [ShipmentItem]
|
161
|
+
```
|
41
162
|
|
42
|
-
### Tracking
|
43
163
|
```ruby
|
44
|
-
DHLEcommerceAPI::Tracking.
|
164
|
+
DHLEcommerceAPI::Tracking.find(['MYPOS0001', 'MYPOS0002'])
|
165
|
+
# => [...ShipmentItems]
|
45
166
|
```
|
46
167
|
|
47
168
|
|
48
|
-
|
169
|
+
___
|
49
170
|
|
171
|
+
|
172
|
+
## Development
|
50
173
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
51
174
|
|
52
175
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
data/lib/dhl_ecommerce_api.rb
CHANGED
@@ -12,6 +12,10 @@ module DHLEcommerceAPI
|
|
12
12
|
require "dhl_ecommerce_api/resources/authentication"
|
13
13
|
|
14
14
|
require "dhl_ecommerce_api/resources/shipment"
|
15
|
+
require "dhl_ecommerce_api/resources/shipment/pickup"
|
16
|
+
require "dhl_ecommerce_api/resources/shipment/dropoff"
|
17
|
+
require "dhl_ecommerce_api/resources/shipment/shipment_item"
|
18
|
+
|
15
19
|
require "dhl_ecommerce_api/resources/pickup"
|
16
20
|
|
17
21
|
require "dhl_ecommerce_api/resources/tracking"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dhl_ecommerce_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Er Whey
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeresource
|
@@ -164,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
164
|
requirements:
|
165
165
|
- - ">="
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: 2.
|
167
|
+
version: '2.5'
|
168
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
170
|
- - ">="
|