active_fulfillment 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -0
- data/VERSION +1 -1
- data/active_fulfillment.gemspec +1 -1
- data/lib/active_fulfillment/fulfillment/services/shipwire.rb +9 -1
- data/test/unit/services/shipwire_test.rb +17 -1
- metadata +3 -3
data/CHANGELOG
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
= ActiveFulfillment CHANGELOG
|
2
2
|
|
3
|
+
== Version 1.0.3 (Jan 21, 2010)
|
4
|
+
|
5
|
+
* Include "pending" counts in stock levels for Shipwire [wisq]
|
6
|
+
* Add option to include pending stock in Shipwire inventory calculations [jessehk]
|
7
|
+
|
3
8
|
== Version 1.0.2 (Jan 12, 2010)
|
4
9
|
|
5
10
|
* Include "pending" counts in stock levels for Shipwire [wisq]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.3
|
data/active_fulfillment.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{active_fulfillment}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Cody Fauser", "James MacAulay"]
|
@@ -3,6 +3,7 @@ require 'cgi'
|
|
3
3
|
module ActiveMerchant
|
4
4
|
module Fulfillment
|
5
5
|
class ShipwireService < Service
|
6
|
+
|
6
7
|
SERVICE_URLS = { :fulfillment => 'https://api.shipwire.com/exec/FulfillmentServices.php',
|
7
8
|
:inventory => 'https://api.shipwire.com/exec/InventoryServices.php',
|
8
9
|
:tracking => 'https://api.shipwire.com/exec/TrackingServices.php'
|
@@ -67,6 +68,10 @@ module ActiveMerchant
|
|
67
68
|
true
|
68
69
|
end
|
69
70
|
|
71
|
+
def include_pending_stock?
|
72
|
+
@options[:include_pending_stock]
|
73
|
+
end
|
74
|
+
|
70
75
|
private
|
71
76
|
def build_fulfillment_request(order_id, shipping_address, line_items, options)
|
72
77
|
xml = Builder::XmlMarkup.new :indent => 2
|
@@ -196,7 +201,10 @@ module ActiveMerchant
|
|
196
201
|
document = REXML::Document.new(xml)
|
197
202
|
document.root.elements.each do |node|
|
198
203
|
if node.name == 'Product'
|
199
|
-
|
204
|
+
to_check = ['quantity']
|
205
|
+
to_check << 'pending' if include_pending_stock?
|
206
|
+
|
207
|
+
amount = to_check.sum { |a| node.attributes[a].to_i }
|
200
208
|
response[:stock_levels][node.attributes['code']] = amount
|
201
209
|
else
|
202
210
|
response[node.name.underscore.to_sym] = node.text
|
@@ -60,12 +60,28 @@ class ShipwireTest < Test::Unit::TestCase
|
|
60
60
|
assert_equal 'US', country_node.text
|
61
61
|
end
|
62
62
|
|
63
|
-
def
|
63
|
+
def test_stock_levels_dont_include_pending_by_default
|
64
64
|
@shipwire.expects(:ssl_post).returns(xml_fixture('shipwire/inventory_get_response'))
|
65
65
|
|
66
66
|
response = @shipwire.fetch_stock_levels
|
67
67
|
assert response.success?
|
68
68
|
assert_equal 926, response.stock_levels['BlackDog']
|
69
|
+
assert_equal -1, response.stock_levels['MoustacheCat']
|
70
|
+
assert_equal 677, response.stock_levels['KingMonkey']
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_stock_levels_include_pending_when_set
|
74
|
+
@shipwire = ShipwireService.new(
|
75
|
+
:login => 'cody@example.com',
|
76
|
+
:password => 'test',
|
77
|
+
:include_pending_stock => true
|
78
|
+
)
|
79
|
+
@shipwire.expects(:ssl_post).returns(xml_fixture('shipwire/inventory_get_response'))
|
80
|
+
|
81
|
+
response = @shipwire.fetch_stock_levels
|
82
|
+
assert response.success?
|
83
|
+
assert @shipwire.include_pending_stock?
|
84
|
+
assert_equal 926, response.stock_levels['BlackDog']
|
69
85
|
assert_equal 805, response.stock_levels['MoustacheCat']
|
70
86
|
assert_equal 921, response.stock_levels['KingMonkey']
|
71
87
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_fulfillment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 3
|
10
|
+
version: 1.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Cody Fauser
|