mws-orders 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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