mws-orders 0.4.0 → 0.5.0

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +3 -3
  4. data/lib/mws/orders/address.rb +38 -0
  5. data/lib/mws/orders/buyer_customized_info.rb +14 -0
  6. data/lib/mws/orders/buyer_tax_info.rb +23 -0
  7. data/lib/mws/orders/collection.rb +1 -0
  8. data/lib/mws/orders/document.rb +6 -4
  9. data/lib/mws/orders/entity.rb +26 -15
  10. data/lib/mws/orders/invoice_data.rb +5 -4
  11. data/lib/mws/orders/message.rb +3 -2
  12. data/lib/mws/orders/order.rb +82 -33
  13. data/lib/mws/orders/order_item.rb +67 -30
  14. data/lib/mws/orders/order_items.rb +1 -0
  15. data/lib/mws/orders/orders.rb +1 -0
  16. data/lib/mws/orders/parser.rb +6 -14
  17. data/lib/mws/orders/payment_execution_detail_item.rb +3 -2
  18. data/lib/mws/orders/points_granted.rb +18 -0
  19. data/lib/mws/orders/product_info.rb +14 -0
  20. data/lib/mws/orders/service_status.rb +4 -3
  21. data/lib/mws/orders/tax_classification.rb +18 -0
  22. data/lib/mws/orders/tax_collection.rb +18 -0
  23. data/lib/mws/orders/tokenable.rb +2 -2
  24. data/lib/mws/orders/version.rb +1 -1
  25. metadata +11 -38
  26. data/lib/mws/orders/payment_execution_detail.rb +0 -16
  27. data/lib/mws/orders/shipping_address.rb +0 -37
  28. data/test/fixtures/order_items.xml +0 -83
  29. data/test/fixtures/orders.xml +0 -112
  30. data/test/fixtures/service_status.xml +0 -19
  31. data/test/mws/orders/test_entity.rb +0 -96
  32. data/test/mws/orders/test_message.rb +0 -18
  33. data/test/mws/orders/test_order.rb +0 -99
  34. data/test/mws/orders/test_order_item.rb +0 -74
  35. data/test/mws/orders/test_order_items.rb +0 -21
  36. data/test/mws/orders/test_orders.rb +0 -21
  37. data/test/mws/orders/test_parser.rb +0 -9
  38. data/test/mws/orders/test_payment_execution_detail.rb +0 -19
  39. data/test/mws/orders/test_payment_execution_detail_item.rb +0 -19
  40. data/test/mws/orders/test_service_status.rb +0 -28
  41. data/test/mws/orders/test_shipping_address.rb +0 -37
  42. data/test/mws/orders/test_tokenable.rb +0 -33
  43. data/test/test_helper.rb +0 -19
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/orders/collection'
4
- require 'mws/orders/payment_execution_detail_item'
5
-
6
- module MWS
7
- module Orders
8
- class PaymentExecutionDetail < Collection
9
- def each
10
- xpath('PaymentExecutionDetailItem').each do |node|
11
- yield PaymentExecutionDetailItem.new(node)
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/orders/entity'
4
-
5
- module MWS
6
- module Orders
7
- class ShippingAddress < Entity
8
- attribute(:name) do
9
- text_at_xpath('Name')
10
- end
11
-
12
- attribute(:address_lines) do
13
- 1.upto(3).map { |i| text_at_xpath("AddressLine#{i}") }.compact
14
- end
15
-
16
- attribute(:city) do
17
- text_at_xpath('City')
18
- end
19
-
20
- attribute(:state_or_region) do
21
- text_at_xpath('StateOrRegion')
22
- end
23
-
24
- attribute(:postal_code) do
25
- text_at_xpath('PostalCode')
26
- end
27
-
28
- attribute(:country_code) do
29
- text_at_xpath('CountryCode')
30
- end
31
-
32
- attribute(:phone) do
33
- text_at_xpath('Phone')
34
- end
35
- end
36
- end
37
- end
@@ -1,83 +0,0 @@
1
- <?xml version="1.0"?>
2
- <ListOrderItemsResponse xmlns="https://mws.amazonservices.com
3
- /Orders/2011-01-01">
4
- <ListOrderItemsResult>
5
- <NextToken>MRgZW55IGNhcm5hbCBwbGVhc3VyZS6=</NextToken>
6
- <AmazonOrderId>058-1233752-8214740</AmazonOrderId>
7
- <OrderItems>
8
- <OrderItem>
9
- <ASIN>BT0093TELA</ASIN>
10
- <OrderItemId>68828574383266</OrderItemId>
11
- <SellerSKU>CBA_OTF_1</SellerSKU>
12
- <Title>Example item name</Title>
13
- <QuantityOrdered>1</QuantityOrdered>
14
- <QuantityShipped>1</QuantityShipped>
15
- <PromotionIds>
16
- <PromotionId>SSOF SSS-25</PromotionId>
17
- </PromotionIds>
18
- <ItemPrice>
19
- <CurrencyCode>USD</CurrencyCode>
20
- <Amount>25.99</Amount>
21
- </ItemPrice>
22
- <ItemTax>
23
- <CurrencyCode>USD</CurrencyCode>
24
- <Amount>0.00</Amount>
25
- </ItemTax>
26
- <ShippingPrice>
27
- <CurrencyCode>USD</CurrencyCode>
28
- <Amount>1.26</Amount>
29
- </ShippingPrice>
30
- <ShippingTax>
31
- <CurrencyCode>USD</CurrencyCode>
32
- <Amount>0.00</Amount>
33
- </ShippingTax>
34
- <PromotionDiscount>
35
- <CurrencyCode>USD</CurrencyCode>
36
- <Amount>0.00</Amount>
37
- </PromotionDiscount>
38
- <ShippingDiscount>
39
- <CurrencyCode>USD</CurrencyCode>
40
- <Amount>0.00</Amount>
41
- </ShippingDiscount>
42
- <ScheduledDeliveryEndDate>2013-01-01T01:30:00.000-06:00
43
- </ScheduledDeliveryEndDate>
44
- <ScheduledDeliveryStartDate>2012-12-31T02:00:00.000-06:00
45
- </ScheduledDeliveryStartDate>
46
- <CODFee>
47
- <CurrencyCode>USD</CurrencyCode>
48
- <Amount>10.00</Amount>
49
- </CODFee>
50
- <CODFeeDiscount>
51
- <CurrencyCode>USD</CurrencyCode>
52
- <Amount>1.00</Amount>
53
- </CODFeeDiscount>
54
- <GiftMessageText>For you!</GiftMessageText>
55
- <GiftWrapPrice>
56
- <CurrencyCode>USD</CurrencyCode>
57
- <Amount>1.99</Amount>
58
- </GiftWrapPrice>
59
- <GiftWrapLevel>Classic</GiftWrapLevel>
60
- </OrderItem>
61
- <OrderItem>
62
- <ASIN>BCTU1104UEFB</ASIN>
63
- <OrderItemId>79039765272157</OrderItemId>
64
- <SellerSKU>CBA_OTF_5</SellerSKU>
65
- <Title>Example item name</Title>
66
- <QuantityOrdered>2</QuantityOrdered>
67
- <ItemPrice>
68
- <CurrencyCode>USD</CurrencyCode>
69
- <Amount>17.95</Amount>
70
- </ItemPrice>
71
- <PromotionIds>
72
- <PromotionId>FREESHIP</PromotionId>
73
- </PromotionIds>
74
- <ConditionId>Used</ConditionID>
75
- <ConditionSubtypeId>Mint</ConditionSubtypeId>
76
- <ConditionNote>Example ConditionNote</ConditionNote>
77
- </OrderItem>
78
- </OrderItems>
79
- </ListOrderItemsResult>
80
- <ResponseMetadata>
81
- <RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
82
- </ResponseMetadata>
83
- </ListOrderItemsResponse>
@@ -1,112 +0,0 @@
1
- <?xml version="1.0"?>
2
- <ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2011-01-01">
3
- <ListOrdersResult>
4
- <NextToken>2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=</NextToken>
5
- <LastUpdatedBefore>2010-10-05T18%3A12%3A20.687Z</LastUpdatedBefore>
6
- <Orders>
7
- <Order>
8
- <AmazonOrderId>058-1233752-8214740</AmazonOrderId>
9
- <PurchaseDate>2010-10-05T00%3A06%3A07.000Z</PurchaseDate>
10
- <LastUpdateDate>2010-10-05T12%3A43%3A16.000Z</LastUpdateDate>
11
- <OrderStatus>Unshipped</OrderStatus>
12
- <OrderType>StandardOrder</OrderType>
13
- <SalesChannel>Checkout by Amazon</SalesChannel>
14
- <ShipServiceLevel>Std DE Dom</ShipServiceLevel>
15
- <FulfillmentChannel>MFN</FulfillmentChannel>
16
- <OrderTotal>
17
- <CurrencyCode>USD</CurrencyCode>
18
- <Amount>111.01</Amount>
19
- </OrderTotal>
20
- <ShippingAddress>
21
- <Name>John Smith</Name>
22
- <AddressLine1>2700 First Avenue</AddressLine1>
23
- <City>Seattle</City>
24
- <StateOrRegion>WA</StateOrRegion>
25
- <PostalCode>98102</PostalCode>
26
- <CountryCode>US</CountryCode>
27
- </ShippingAddress>
28
- <NumberOfItemsShipped>0</NumberOfItemsShipped>
29
- <NumberOfItemsUnshipped>1</NumberOfItemsUnshipped>
30
- <PaymentExecutionDetail>
31
- <PaymentExecutionDetailItem>
32
- <Payment>
33
- <CurrencyCode>USD</CurrencyCode>
34
- <Amount>101.01</Amount>
35
- </Payment>
36
- <PaymentMethod>COD</PaymentMethod>
37
- </PaymentExecutionDetailItem>
38
- <PaymentExecutionDetailItem>
39
- <Payment>
40
- <CurrencyCode>USD</CurrencyCode>
41
- <Amount>10.00</Amount>
42
- </Payment>
43
- <PaymentMethod>GC</PaymentMethod>
44
- </PaymentExecutionDetailItem>
45
- </PaymentExecutionDetail>
46
- <PaymentMethod>COD</PaymentMethod>
47
- <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
48
- <BuyerName>Amazon User</BuyerName>
49
- <BuyerEmail>5vlh04mgfmjh9h5@marketplace.amazon.com</BuyerEmail>
50
- <ShipmentServiceLevelCategory>Standard
51
- </ShipmentServiceLevelCategory>
52
- <LatestShipDate>2012-10-15T07:59:59Z</LatestShipDate>
53
- <LatestDeliveryDate>2012-10-15T07:59:59Z</LatestDeliveryDate>
54
- </Order>
55
- <Order>
56
- <ShipmentServiceLevelCategory>Standard
57
- </ShipmentServiceLevelCategory>
58
- <OrderTotal>
59
- <Amount>10.87</Amount>
60
- <CurrencyCode>USD</CurrencyCode>
61
- </OrderTotal>
62
- <FulfillmentChannel>MFN</FulfillmentChannel>
63
- <BuyerEmail>1x3v628skdi34u2@marketplace.amazon.com</BuyerEmail>
64
- <OrderStatus>Pending</OrderStatus>
65
- <BuyerName>Example Name</BuyerName>
66
- <ShipServiceLevel>Std US Dom</ShipServiceLevel>
67
- <CbaDisplayableShippingLabel>Example shipment service level
68
- </CbaDisplayableShippingLabel>
69
- <LastUpdateDate>2012-10-11T15:53:37Z</LastUpdateDate>
70
- <PurchaseDate>2012-10-11T14:15:55Z</PurchaseDate>
71
- <EarliestShipDate>2012-10-13T05:00:00Z</EarliestShipDate>
72
- <LatestShipDate>2012-10-15T07:59:59Z</LatestShipDate>
73
- <LatestDeliveryDate>2012-10-15T07:59:59Z</LatestDeliveryDate>
74
- <OrderType>Preorder</OrderType>
75
- <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
76
- <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
77
- <SalesChannel>Amazon.com</SalesChannel>
78
- <ShippingAddress>
79
- <Phone>111 222 1234</Phone>
80
- <PostalCode>48823</PostalCode>
81
- <Name>Example Name</Name>
82
- <CountryCode>US</CountryCode>
83
- <StateOrRegion>WA</StateOrRegion>
84
- <AddressLine1>1234 Ridge Rd</AddressLine1>
85
- <City>Seattle</City>
86
- </ShippingAddress>
87
- <NumberOfItemsShipped>1</NumberOfItemsShipped>
88
- <AmazonOrderId>123-1234567-4567890</AmazonOrderId>
89
- <PaymentMethod>Other</PaymentMethod>
90
- </Order>
91
- <Order>
92
- <ShipmentServiceLevelCategory>Standard
93
- </ShipmentServiceLevelCategory>
94
- <FulfillmentChannel>MFN</FulfillmentChannel>
95
- <OrderStatus>Pending</OrderStatus>
96
- <OrderType>StandardOrder</OrderType>
97
- <ShipServiceLevel>Std US Dom</ShipServiceLevel>
98
- <LastUpdateDate>2012-10-12T20:34:00Z</LastUpdateDate>
99
- <PurchaseDate>2012-10-12T20:33:16Z</PurchaseDate>
100
- <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
101
- <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
102
- <SalesChannel>Amazon.com</SalesChannel>
103
- <NumberOfItemsShipped>0</NumberOfItemsShipped>
104
- <AmazonOrderId>123-9876543-6543212</AmazonOrderId>
105
- <PaymentMethod>Other</PaymentMethod>
106
- </Order>
107
- </Orders>
108
- </ListOrdersResult>
109
- <ResponseMetadata>
110
- <RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
111
- </ResponseMetadata>
112
- </ListOrdersResponse>
@@ -1,19 +0,0 @@
1
- <?xml version="1.0"?>
2
- <GetServiceStatusResponse
3
- xmlns="https://mws.amazonservices.com/Orders/2011-01-01">
4
- <GetServiceStatusResult>
5
- <Status>GREEN_I</Status>
6
- <Timestamp>2010-09-24T21:38:09.676Z</Timestamp>
7
- <MessageId>173964729I</MessageId>
8
- <Messages>
9
- <Message>
10
- <Locale>en_US</Locale>
11
- <Text>We are experiencing high latency in UK because of heavy
12
- traffic.</Text>
13
- </Message>
14
- </Messages>
15
- </GetServiceStatusResult>
16
- <ResponseMetadata>
17
- <RequestId>d80c6c7b-f7c7-4fa7-bdd7-854711cb3bcc</RequestId>
18
- </ResponseMetadata>
19
- </GetServiceStatusResponse>
@@ -1,96 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class TestEntity < MiniTest::Test
6
- def test_parses_floats
7
- xml = <<-XML
8
- <Float xmlns="example">10.0</Float>
9
- XML
10
- entity = build_entity(xml)
11
- float = entity.float_at_xpath('Float')
12
- assert_equal 10.0, float
13
- end
14
-
15
- def test_parses_integers
16
- xml = <<-XML
17
- <Integer xmlns="example">10</Integer>
18
- XML
19
- entity = build_entity(xml)
20
- integer = entity.integer_at_xpath('Integer')
21
- assert_equal 10, integer
22
- end
23
-
24
- def test_parses_money
25
- xml = <<-XML
26
- <Price xmlns="example">
27
- <CurrencyCode>USD</CurrencyCode>
28
- <Amount>10.00</Amount>
29
- </Price>
30
- XML
31
- entity = build_entity(xml)
32
- money = entity.money_at_xpath('Price')
33
- assert_equal 1000, money.fractional
34
- end
35
-
36
- def test_parses_yen
37
- xml = <<-XML
38
- <Price xmlns="example">
39
- <CurrencyCode>JPY</CurrencyCode>
40
- <Amount>1000.00</Amount>
41
- </Price>
42
- XML
43
- entity = build_entity(xml)
44
- money = entity.money_at_xpath('Price')
45
- assert_equal 1000, money.fractional
46
- end
47
-
48
- def test_parses_text
49
- xml = <<-XML
50
- <Text xmlns="example">Foo</Text>
51
- XML
52
- entity = build_entity(xml)
53
- text = entity.text_at_xpath('Text')
54
- assert_equal 'Foo', text
55
- end
56
-
57
- def test_strips_text
58
- xml = <<-XML
59
- <Text xmlns="example">Foo
60
-
61
- </Text>
62
- XML
63
- entity = build_entity(xml)
64
- text = entity.text_at_xpath('Text')
65
- assert_equal 'Foo', text
66
- end
67
-
68
- def test_parses_time
69
- xml = <<-XML
70
- <Time xmlns="example">2013-01-01T01:30:00.000-06:00</Time>
71
- XML
72
- entity = build_entity(xml)
73
- time = entity.time_at_xpath('Time')
74
- assert_kind_of Time, time
75
- end
76
-
77
- def test_handles_nil_values
78
- xml = <<-XML
79
- <Foo xmlns="example">
80
- </Foo>
81
- XML
82
- entity = build_entity(xml)
83
-
84
- assert_nil entity.float_at_xpath('Bar')
85
- assert_nil entity.integer_at_xpath('Bar')
86
- assert_nil entity.money_at_xpath('Bar')
87
- assert_nil entity.time_at_xpath('Bar')
88
- assert_nil entity.text_at_xpath('Bar')
89
- end
90
-
91
- private
92
-
93
- def build_entity(xml)
94
- Entity.new(Nokogiri(xml))
95
- end
96
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class TestMessage < MiniTest::Test
6
- def setup
7
- node = load_fixture('service_status').xpath('//xmlns:Message').first
8
- @message = Message.new(node)
9
- end
10
-
11
- def test_locale
12
- assert_kind_of String, @message.locale
13
- end
14
-
15
- def test_text
16
- assert_kind_of String, @message.text
17
- end
18
- end
@@ -1,99 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class TestOrder < MiniTest::Test
6
- def setup
7
- node = load_fixture('orders').at_xpath('//xmlns:Order')
8
- @order = Order.new(node)
9
- end
10
-
11
- def test_amazon_order_id
12
- assert_kind_of String, @order.amazon_order_id
13
- end
14
-
15
- def test_purchase_time
16
- assert_kind_of Time, @order.purchased_at
17
- end
18
-
19
- def test_last_update_time
20
- assert_kind_of Time, @order.last_updated_at
21
- end
22
-
23
- def test_status
24
- assert_kind_of String, @order.status
25
- end
26
-
27
- def test_type
28
- assert_kind_of String, @order.type
29
- end
30
-
31
- def test_sales_channel
32
- assert_kind_of String, @order.sales_channel
33
- end
34
-
35
- def test_ship_service_level
36
- assert_kind_of String, @order.ship_service_level
37
- end
38
-
39
- def test_fulfillment_channel
40
- assert_kind_of String, @order.fulfillment_channel
41
- end
42
-
43
- def test_total
44
- assert_kind_of Money, @order.total
45
- end
46
-
47
- def test_shipping_address
48
- assert_kind_of ShippingAddress, @order.shipping_address
49
- end
50
-
51
- def test_number_of_items_shipped
52
- assert_kind_of Integer, @order.number_of_items_shipped
53
- end
54
-
55
- def test_number_of_items_unshipped
56
- assert_kind_of Integer, @order.number_of_items_unshipped
57
- end
58
-
59
- def test_payment_execution_detail
60
- assert_kind_of PaymentExecutionDetail, @order.payment_execution_detail
61
- end
62
-
63
- def test_payment_method
64
- assert_kind_of String, @order.payment_method
65
- end
66
-
67
- def test_marketplace_id
68
- assert_kind_of String, @order.marketplace_id
69
- end
70
-
71
- def test_buyer_name
72
- assert_kind_of String, @order.buyer_name
73
- end
74
-
75
- def test_buyer_email
76
- assert_kind_of String, @order.buyer_email
77
- end
78
-
79
- def test_shipment_service_level_category
80
- assert_kind_of String, @order.shipment_service_level_category
81
- end
82
-
83
- def test_no_shipping_adress
84
- @order.xpath('ShippingAddress').remove
85
- assert_nil @order.shipping_address
86
- end
87
-
88
- def test_latest_shipped_at
89
- assert_kind_of Time, @order.latest_shipped_at
90
- end
91
-
92
- def test_latest_delivered_at
93
- assert_kind_of Time, @order.latest_delivered_at
94
- end
95
-
96
- def test_to_s
97
- assert_equal @order.amazon_order_id, @order.to_s
98
- end
99
- end