etsy 0.3.0 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +14 -5
- data/CHANGELOG.md +16 -0
- data/Gemfile +0 -4
- data/README.md +50 -8
- data/etsy.gemspec +5 -5
- data/lib/etsy/about.rb +15 -0
- data/lib/etsy/attribute_value.rb +46 -0
- data/lib/etsy/bill_charge.rb +31 -0
- data/lib/etsy/bill_payment.rb +28 -0
- data/lib/etsy/billing_overview.rb +18 -0
- data/lib/etsy/image.rb +5 -2
- data/lib/etsy/listing.rb +108 -7
- data/lib/etsy/model.rb +2 -2
- data/lib/etsy/receipt.rb +23 -3
- data/lib/etsy/request.rb +5 -5
- data/lib/etsy/secure_client.rb +1 -1
- data/lib/etsy/shipping_info.rb +27 -0
- data/lib/etsy/shipping_template.rb +10 -1
- data/lib/etsy/shop.rb +5 -0
- data/lib/etsy/transaction.rb +51 -1
- data/lib/etsy/user.rb +30 -0
- data/lib/etsy/variation/property_set.rb +71 -0
- data/lib/etsy/version.rb +1 -1
- data/lib/etsy.rb +10 -3
- data/test/fixtures/about/getAbout.json +16 -0
- data/test/fixtures/attribute_value/findAllListingPropertyValues.json +44 -0
- data/test/fixtures/bill_charge/getBillCharge.json +1 -0
- data/test/fixtures/bill_payment/getBillPayment.json +1 -0
- data/test/fixtures/billing_overview/getBillingOverview.json +1 -0
- data/test/fixtures/listing/findAllShopListings.json +5 -3
- data/test/fixtures/listing/getListing.single.includeImages.json +1 -0
- data/test/fixtures/receipt/findAllShopReceipts.json +4 -4
- data/test/fixtures/shipping_info/getShippingInfo.json +1 -0
- data/test/fixtures/shop/findAllShop.json +1 -1
- data/test/fixtures/shop/findAllShop.single.json +1 -1
- data/test/fixtures/shop/getShop.multiple.json +1 -1
- data/test/fixtures/shop/getShop.single.json +2 -1
- data/test/test_helper.rb +0 -2
- data/test/unit/etsy/attribute_value_test.rb +67 -0
- data/test/unit/etsy/bill_charge_test.rb +24 -0
- data/test/unit/etsy/bill_payment_test.rb +24 -0
- data/test/unit/etsy/billing_overview_test.rb +20 -0
- data/test/unit/etsy/image_test.rb +15 -3
- data/test/unit/etsy/listing_test.rb +45 -7
- data/test/unit/etsy/model_test.rb +4 -4
- data/test/unit/etsy/receipt_test.rb +15 -0
- data/test/unit/etsy/shipping_info_test.rb +24 -0
- data/test/unit/etsy/shop_about_test.rb +43 -0
- data/test/unit/etsy/shop_test.rb +12 -0
- data/test/unit/etsy/transaction_test.rb +5 -1
- metadata +50 -17
@@ -19,7 +19,16 @@ module Etsy
|
|
19
19
|
}
|
20
20
|
get("/shipping/templates/#{id}", options)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
|
+
def self.find_entries(id, credentials = {})
|
24
|
+
options = {
|
25
|
+
:access_token => credentials[:access_token],
|
26
|
+
:access_secret => credentials[:access_secret],
|
27
|
+
:require_secure => true
|
28
|
+
}
|
29
|
+
get("/shipping/templates/#{id}/entries", options)
|
30
|
+
end
|
31
|
+
|
23
32
|
def self.find_by_user(user, credentials = {})
|
24
33
|
options = {
|
25
34
|
:access_token => credentials[:access_token],
|
data/lib/etsy/shop.rb
CHANGED
@@ -30,6 +30,7 @@ module Etsy
|
|
30
30
|
attribute :message, :from => :sale_message
|
31
31
|
attribute :url, :from => :url
|
32
32
|
attribute :favorers_count, :from => :num_favorers
|
33
|
+
attribute :icon_url, :from => 'icon_url_fullxfull'
|
33
34
|
|
34
35
|
# Retrieve one or more shops by name or ID:
|
35
36
|
#
|
@@ -75,6 +76,10 @@ module Etsy
|
|
75
76
|
Section.find_by_shop(self)
|
76
77
|
end
|
77
78
|
|
79
|
+
def about
|
80
|
+
About.find_by_shop(self)
|
81
|
+
end
|
82
|
+
|
78
83
|
private
|
79
84
|
def oauth
|
80
85
|
oauth = (token && secret) ? {:access_token => token, :access_secret => secret} : {}
|
data/lib/etsy/transaction.rb
CHANGED
@@ -4,20 +4,70 @@ module Etsy
|
|
4
4
|
|
5
5
|
attribute :id, :from => :transaction_id
|
6
6
|
attribute :buyer_id, :from => :buyer_user_id
|
7
|
+
attribute :seller_id, :from => :seller_user_id
|
7
8
|
attributes :quantity, :listing_id
|
8
9
|
|
10
|
+
attribute :created, :from => :creation_tsz
|
11
|
+
attribute :shipped, :from => :shipped_tsz
|
12
|
+
attribute :paid, :from => :paid_tsz
|
13
|
+
|
14
|
+
attributes :title, :description, :price, :currency_code, :quantity,
|
15
|
+
:tags, :materials, :image_listing_id, :receipt_id,
|
16
|
+
:is_digital, :file_data, :listing_id, :url, :product_data,
|
17
|
+
:variations, :transaction_type, :buyer_feedback_id,
|
18
|
+
:seller_feedback_id
|
19
|
+
|
20
|
+
|
9
21
|
def self.find_all_by_shop_id(shop_id, options = {})
|
10
22
|
get_all("/shops/#{shop_id}/transactions", options)
|
11
23
|
end
|
12
24
|
|
25
|
+
def created_at
|
26
|
+
Time.at(created)
|
27
|
+
end
|
28
|
+
|
29
|
+
def shipped_at
|
30
|
+
Time.at(shipped)
|
31
|
+
end
|
32
|
+
|
33
|
+
def paid_at
|
34
|
+
Time.at(paid)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.find(*identifiers_and_options)
|
38
|
+
find_one_or_more('transactions', identifiers_and_options)
|
39
|
+
end
|
40
|
+
|
13
41
|
#Find all Transactions by the buyer_id
|
14
42
|
#
|
15
43
|
def self.find_all_by_buyer_id(user_id, options = {})
|
16
44
|
get_all("/users/#{user_id}/transactions", options)
|
17
45
|
end
|
18
46
|
|
47
|
+
def self.find_all_by_listing_id(listing_id, options = {})
|
48
|
+
get_all("/listings/#{listing_id}/transactions", options)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.find_all_by_receipt_id(receipt_id, options = {})
|
52
|
+
get_all("/receipts/#{receipt_id}/transactions", options)
|
53
|
+
end
|
54
|
+
|
55
|
+
def receipt
|
56
|
+
@receipt ||= Receipt.find(receipt_id, oauth)
|
57
|
+
end
|
58
|
+
|
19
59
|
def buyer
|
20
|
-
@buyer ||= User.find(buyer_id)
|
60
|
+
@buyer ||= User.find(buyer_id, oauth)
|
61
|
+
end
|
62
|
+
|
63
|
+
def listing
|
64
|
+
@listing ||= Listing.find(listing_id, oauth)
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def oauth
|
70
|
+
oauth = (token && secret) ? {:access_token => token, :access_secret => secret} : {}
|
21
71
|
end
|
22
72
|
|
23
73
|
end
|
data/lib/etsy/user.rb
CHANGED
@@ -19,6 +19,8 @@ module Etsy
|
|
19
19
|
|
20
20
|
association :profile, :from => 'Profile'
|
21
21
|
association :shops, :from => 'Shops'
|
22
|
+
association :bill_charges, :from => 'BillCharges'
|
23
|
+
association :bill_payments, :from => 'BillPayments'
|
22
24
|
|
23
25
|
# Retrieve one or more users by name or ID:
|
24
26
|
#
|
@@ -81,6 +83,34 @@ module Etsy
|
|
81
83
|
@shops
|
82
84
|
end
|
83
85
|
|
86
|
+
def bill_charges
|
87
|
+
unless @bill_charges
|
88
|
+
if associated_bill_charges
|
89
|
+
@bill_charges = associated_bill_charges.map { |bill_charge| BillCharge.new(bill_charge) }
|
90
|
+
else
|
91
|
+
options = {:fields => 'user_id', :includes => 'BillCharges'}
|
92
|
+
options = options.merge(:access_token => token, :access_secret => secret) if (token && secret)
|
93
|
+
tmp = User.find(username, options)
|
94
|
+
@bill_charges = tmp.associated_bill_charges.map { |bill_charge| BillCharge.new(bill_charge) }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
@bill_charges
|
98
|
+
end
|
99
|
+
|
100
|
+
def bill_payments
|
101
|
+
unless @bill_payments
|
102
|
+
if associated_bill_payments
|
103
|
+
@bill_payments = associated_bill_payments.map { |bill_payment| BillPayment.new(bill_payment) }
|
104
|
+
else
|
105
|
+
options = {:fields => 'user_id', :includes => 'BillPayments'}
|
106
|
+
options = options.merge(:access_token => token, :access_secret => secret) if (token && secret)
|
107
|
+
tmp = User.find(username, options)
|
108
|
+
@bill_payments = tmp.associated_bill_payments.map { |bill_payment| BillPayment.new(bill_payment) }
|
109
|
+
end
|
110
|
+
end
|
111
|
+
@bill_payments
|
112
|
+
end
|
113
|
+
|
84
114
|
# Time that this user was created
|
85
115
|
#
|
86
116
|
def created_at
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Etsy
|
2
|
+
module Variation
|
3
|
+
class PropertySet
|
4
|
+
# Used to find properties which the seller can vary (eg Size, Color, etc), and options associated with those properties (eg Inches)
|
5
|
+
#
|
6
|
+
# The variations stuff is complex. See https://www.etsy.com/developers/documentation/getting_started/variations for more info.
|
7
|
+
#
|
8
|
+
# Probably the most useful method here is qualifying_properties_for_property. This method pulls in data from a few sources to get
|
9
|
+
# you everything you need to set up your variation options.
|
10
|
+
#
|
11
|
+
# Eg: I want to have a few Length options on my listings, and I want to use the unit Inches, then:
|
12
|
+
# Etsy::Variation::PropertySet.qualifying_properties_for_property("Length")
|
13
|
+
# => [{
|
14
|
+
# "param"=>"sizing_scale",
|
15
|
+
# "description"=>"Sizing Scale",
|
16
|
+
# "options"=>{
|
17
|
+
# "Alpha" => 301,
|
18
|
+
# "Inches" => 327,
|
19
|
+
# "Centimeters" => 328,
|
20
|
+
# "Fluid Ounces" => 335,
|
21
|
+
# "Millilitres" => 336,
|
22
|
+
# "Litres" => 337,
|
23
|
+
# "Other => 329
|
24
|
+
# }
|
25
|
+
# }]
|
26
|
+
#
|
27
|
+
# This tells me I want to set the parameter sizing_scale to 327 when calling Etsy::Listing.add_variations.
|
28
|
+
|
29
|
+
include Etsy::Model
|
30
|
+
|
31
|
+
|
32
|
+
attributes :properties, :category_id, :options, :qualifiers,
|
33
|
+
:qualifying_properties
|
34
|
+
|
35
|
+
def self.all
|
36
|
+
@all ||= get("/property_sets")
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.find_property_by_name(name)
|
40
|
+
property = all.properties.detect {|prop_id, prop| prop["name"] == name}
|
41
|
+
if property
|
42
|
+
property_id, property_data = property
|
43
|
+
property_data
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.qualifying_properties_for_property(name)
|
48
|
+
property = find_property_by_name(name)
|
49
|
+
return nil unless property
|
50
|
+
property_id = property["property_id"]
|
51
|
+
|
52
|
+
qualifiers = all.qualifiers[property_id.to_s]
|
53
|
+
return [] unless qualifiers
|
54
|
+
|
55
|
+
qualifiers.map do |qualifier|
|
56
|
+
qualifying_properties = all.qualifying_properties[qualifier.fetch("property_id").to_s]
|
57
|
+
options = qualifier.fetch("options").inject({}) do |acc, opt_id|
|
58
|
+
acc.merge({
|
59
|
+
all.options.fetch(opt_id.to_s) => opt_id
|
60
|
+
})
|
61
|
+
end
|
62
|
+
{
|
63
|
+
"param" => qualifying_properties.fetch("param"),
|
64
|
+
"description" => qualifying_properties.fetch("description"),
|
65
|
+
"options" => options
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/etsy/version.rb
CHANGED
data/lib/etsy.rb
CHANGED
@@ -15,8 +15,12 @@ require 'etsy/verification_request'
|
|
15
15
|
require 'etsy/model'
|
16
16
|
require 'etsy/user'
|
17
17
|
require 'etsy/profile'
|
18
|
+
require 'etsy/bill_charge'
|
19
|
+
require 'etsy/bill_payment'
|
20
|
+
require 'etsy/billing_overview'
|
18
21
|
require 'etsy/shop'
|
19
22
|
require 'etsy/listing'
|
23
|
+
require 'etsy/attribute_value'
|
20
24
|
require 'etsy/image'
|
21
25
|
require 'etsy/transaction'
|
22
26
|
require 'etsy/address'
|
@@ -24,9 +28,12 @@ require 'etsy/category'
|
|
24
28
|
require 'etsy/payment_template'
|
25
29
|
require 'etsy/country'
|
26
30
|
require 'etsy/shipping_template'
|
31
|
+
require 'etsy/shipping_info'
|
27
32
|
require 'etsy/section'
|
28
33
|
require 'etsy/favorite_listing'
|
29
34
|
require 'etsy/receipt'
|
35
|
+
require 'etsy/variation/property_set'
|
36
|
+
require 'etsy/about'
|
30
37
|
|
31
38
|
# = Etsy: A friendly Ruby interface to the Etsy API
|
32
39
|
#
|
@@ -82,7 +89,7 @@ module Etsy
|
|
82
89
|
def self.api_secret
|
83
90
|
Thread.current[:etsy_api_secret] || @api_secret
|
84
91
|
end
|
85
|
-
|
92
|
+
|
86
93
|
def self.api_secret=(secret)
|
87
94
|
@api_secret ||= secret
|
88
95
|
Thread.current[:etsy_api_secret] = secret
|
@@ -101,14 +108,14 @@ module Etsy
|
|
101
108
|
@environment = environment
|
102
109
|
@host = (environment == :sandbox) ? SANDBOX_HOST : PRODUCTION_HOST
|
103
110
|
end
|
104
|
-
|
111
|
+
|
105
112
|
def self.protocol=(protocol)
|
106
113
|
unless ["http", "https"].include?(protocol.to_s)
|
107
114
|
raise(ArgumentError, "protocol must be set to either 'http' or 'https'")
|
108
115
|
end
|
109
116
|
@protocol = protocol.to_s
|
110
117
|
end
|
111
|
-
|
118
|
+
|
112
119
|
# Allow throwing API errors
|
113
120
|
#
|
114
121
|
def self.silent_errors=(bool)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"count":1,
|
3
|
+
"results":[
|
4
|
+
{ "shop_id": 8740774,
|
5
|
+
"status": "active",
|
6
|
+
"story_headline": "A shop long in the making...",
|
7
|
+
"story_leading_paragraph": "This is the leading paragraph",
|
8
|
+
"story": "I grew up with strong women in my family who all had a love of creating. My mom and grandma always encouraged a lifelong love of creating Working with glass, wire, and mineral components brings back my graduate school days, when I studied these items from a scientific point-of-view. Here's hoping I can create something that gives you a little sparkle in your life!",
|
9
|
+
"related_links": {
|
10
|
+
"link-0": {"title": "facebook", "url": "https://www.facebook.com/pebbleplusmetal/"},
|
11
|
+
"link-1": {"title": "pinterest", "url": "https://www.pinterest.com/PebblePlusMetal/pebble%2Bmetal/"}
|
12
|
+
},
|
13
|
+
"url": "https://www.etsy.com/shop/PebblePlusMetal/about"
|
14
|
+
}
|
15
|
+
]
|
16
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
{
|
3
|
+
"count":4,
|
4
|
+
"results":
|
5
|
+
[
|
6
|
+
{
|
7
|
+
"property_id": 200,
|
8
|
+
"property_name": "Primary color",
|
9
|
+
"scale_id": null,
|
10
|
+
"scale_name": null,
|
11
|
+
"value_ids": [1213],
|
12
|
+
"values": ["Beige"]
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"property_id": 52047899002,
|
16
|
+
"property_name": "Secondary color",
|
17
|
+
"scale_id": null,
|
18
|
+
"scale_name": null,
|
19
|
+
"value_ids": [1],
|
20
|
+
"values": ["Black"]
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"property_id": 47626759834,
|
24
|
+
"property_name": "Height",
|
25
|
+
"scale_id": 5,
|
26
|
+
"scale_name": "Inches",
|
27
|
+
"value_ids": [0],
|
28
|
+
"values": ["15"]
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"property_id": 47626759898,
|
32
|
+
"property_name": "Width",
|
33
|
+
"scale_id": 5,
|
34
|
+
"scale_name": "Inches",
|
35
|
+
"value_ids": [0],
|
36
|
+
"values": ["25"]
|
37
|
+
}
|
38
|
+
],
|
39
|
+
"params":
|
40
|
+
{
|
41
|
+
"listing_id":"59495892"
|
42
|
+
},
|
43
|
+
"type":"ListingPropertyValue"
|
44
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"count":1,"results":[{"bill_charge_id":212,"type":"listing_id","type_id":14888443,"amount":"3.00"}],"params":{"user_id":"212"},"type":"BillCharge","pagination":{}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"count":1,"results":[{"bill_payment_id":212,"type":"listing_id","type_id":14888443,"amount":"3.00"}],"params":{"user_id":"212"},"type":"BillPayment","pagination":{}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"count":1,"results":[{"total_balance":1399,"balance_due":999}],"params":{"user_id":"212"},"type":"BillingOverview","pagination":{}}
|
@@ -23,7 +23,8 @@
|
|
23
23
|
"brightness": 100,
|
24
24
|
"is_black_and_white": false,
|
25
25
|
"url": "http://www.etsy.com/listing/59495892/initials-carved-into-tree-love-stamp",
|
26
|
-
"views": 37
|
26
|
+
"views": 37,
|
27
|
+
"is_supply": "false"
|
27
28
|
},
|
28
29
|
{
|
29
30
|
"listing_id": 59495804,
|
@@ -48,7 +49,8 @@
|
|
48
49
|
"brightness": 100,
|
49
50
|
"is_black_and_white": false,
|
50
51
|
"url": "http://www.etsy.com/listing/59495804/faux-bois-heart-hand-carved-stamp",
|
51
|
-
"views": 78
|
52
|
+
"views": 78,
|
53
|
+
"is_supply": "true"
|
52
54
|
}],
|
53
55
|
"params": {
|
54
56
|
"limit": "2",
|
@@ -66,4 +68,4 @@
|
|
66
68
|
"category": null
|
67
69
|
},
|
68
70
|
"type": "Listing"
|
69
|
-
}
|
71
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"count":1,"results":[{"listing_id":59759273,"state":"active","user_id":7301949,"title":"Vinyl Wall Art Decal -- Multi-colored Flowers Set","description":"The listing is for a beautiful set of multi-colored flowers, colors as shown in the picture.\r\n\r\nExclusive design only from OrqueShaw's walldecors! you won't find this anywhere else on etsy!\r\n\r\nHeights of the 4 large flowers: 52in\/37in\/29in\/26in.\r\n\r\nAll of our decals are computer die-cut, there are no "edges" nor "backgrounds", all you will get is the lovely image! and after applying they will look like they are stenciled on with paint!\r\n\r\nuggested install areas: Walls, Mirrors, Metals, Woods, Plastic...Lightly textured surfaces would be just fine! \r\n\r\n\r\n\r\n\r\nABOUT US AND OUR BEAUTIFUL DECALS:\r\n\r\nWe want to transform your walls....and your lives.\r\nDid you know that you can save literally hundreds of dollars designing your own interior space? Seriously, got bored of painting walls,using stencils, applying borders, and putting up wallpapers?? Using our super convenient n' simply gorgeous wall art decals is a very cool and a great way to make a room shine (or to change a room) w\/out damaging your walls or the bank! great alternative to wall paper or a head board, and without any of the mess and hassle involved with painting. Especially nice if you rent and cannot paint your walls, You can even take your wall decals to work and redesign your office or cubical. Easy to apply even for the creative or somewhat domestically challenged . We carry a variety of colors, styles and themes which you could use to decorate every room for anyone in the family!\r\n\r\nOur wall art decals are hand made, they are easy and fun to install.These wall stickers affix on most smooth surfaces and can be removed without leaving any residues. Complete and simple step-by-step instructions are included with your order. \r\n\r\n\r\nSHIPPING:\r\n\r\n*We combine shipping for multiple purchases!\r\n\r\n*Orders usually ship within 2 business days after the clear of payment. \r\n\r\n*All of our shipments are packed in 3 ply spiral wound mailing tubes to ensure the maximum protection during deliveries.\r\n\r\n*Shipping rates: $9.75 for US and Canada $16.75 for other countries.\r\n\r\n*2-7 business days for shipping in Canada, 6-12 business days for shipping to US and other countries, we are not responsible for the delays caused by the custom clearance.\r\n\r\n*Faster delivery options are available upon request.\r\n\r\n*We ship worldwide except the following places: Africa, China, South & North Korea, Italy, Republic Of Serbia, Turkmenistan and Republic Of Montenegro.\r\n\r\n\r\nPAYMENT:\r\n\r\n*Please remit payment within 3 days. Your product will not be shipped until payment is received. Thank you!\r\n\r\n*If you are not 100% satisfied with your purchase, please return the item in its original condition(unopened) within 30 days of delivery of your shipment. Please note that we cannot accept the returns of opened items or items returned more than 30 days past delivery, shipping cost is not refundable and buyers are responsible for the return shipping fees at any case. \r\n","creation_tsz":1288738828,"ending_tsz":1299042000,"original_creation_tsz":1287867280,"last_modified_tsz":1288738828,"price":"42.00","currency_code":"USD","quantity":1,"tags":["children","wallpaper_graphic","nursery_playroom","red_orange_pink","green_lime_color","furniture","office_room","bedroom_bathroom","nature_garden","girl_boy_baby","everything_else","cheersandtears","front_page","soft_colors"],"materials":["self_adhesive_vinyl","decal_transfer_paper"],"shop_section_id":6489554,"featured_rank":null,"state_tsz":1288738828,"hue":0,"saturation":0,"brightness":100,"is_black_and_white":false,"url":"http:\/\/www.etsy.com\/listing\/59759273\/vinyl-wall-art-decal-multi-colored","views":178,"num_favorers":5,"Images":[{"listing_image_id":1132761, "hex_code":"6B6868", "red":107, "green":104, "blue":104, "hue":0, "saturation":2, "brightness":41, "is_black_and_white":false, "creation_tsz":1485797197, "listing_id":59759273, "rank":1, "url_75x75":"https://img0.etsystatic.com/176/0/12065520/il_75x75.1132761110_kggi.jpg", "url_170x135":"https://img0.etsystatic.com/176/0/12065520/il_170x135.1132761110_kggi.jpg", "url_570xN":"https://img0.etsystatic.com/176/0/12065520/il_570xN.1132761110_kggi.jpg", "url_fullxfull":"https://img0.etsystatic.com/176/0/12065520/il_fullxfull.1132761110_kggi.jpg", "full_height":540, "full_width":720}, {"listing_image_id":1179359, "hex_code":"6E6A6B", "red":110, "green":106, "blue":107, "hue":345, "saturation":3, "brightness":43, "is_black_and_white":false, "creation_tsz":1485797197, "listing_id":59759273, "rank":2, "url_75x75":"https://img1.etsystatic.com/155/0/12065520/il_75x75.1179359629_mhmc.jpg", "url_170x135":"https://img1.etsystatic.com/155/0/12065520/il_170x135.1179359629_mhmc.jpg", "url_570xN":"https://img1.etsystatic.com/155/0/12065520/il_570xN.1179359629_mhmc.jpg", "url_fullxfull":"https://img1.etsystatic.com/155/0/12065520/il_fullxfull.1179359629_mhmc.jpg", "full_height":540, "full_width":720}, {"listing_image_id":1179359, "hex_code":"6C6869", "red":108, "green":104, "blue":105, "hue":345, "saturation":3, "brightness":42, "is_black_and_white":false, "creation_tsz":1485797197, "listing_id":59759273, "rank":3, "url_75x75":"https://img1.etsystatic.com/144/0/12065520/il_75x75.1179359767_d5qd.jpg", "url_170x135":"https://img1.etsystatic.com/144/0/12065520/il_170x135.1179359767_d5qd.jpg", "url_570xN":"https://img1.etsystatic.com/144/0/12065520/il_570xN.1179359767_d5qd.jpg", "url_fullxfull":"https://img1.etsystatic.com/144/0/12065520/il_fullxfull.1179359767_d5qd.jpg", "full_height":540, "full_width":720}, {"listing_image_id":1132761, "hex_code":"6D6A6B", "red":109, "green":106, "blue":107, "hue":340, "saturation":2, "brightness":42, "is_black_and_white":false, "creation_tsz":1485797197, "listing_id":59759273, "rank":4, "url_75x75":"https://img0.etsystatic.com/169/0/12065520/il_75x75.1132761176_n7b7.jpg", "url_170x135":"https://img0.etsystatic.com/169/0/12065520/il_170x135.1132761176_n7b7.jpg", "url_570xN":"https://img0.etsystatic.com/169/0/12065520/il_570xN.1132761176_n7b7.jpg", "url_fullxfull":"https://img0.etsystatic.com/169/0/12065520/il_fullxfull.1132761176_n7b7.jpg", "full_height":540, "full_width":720}, {"listing_image_id":1179359, "hex_code":"6B6868", "red":107, "green":104, "blue":104, "hue":0, "saturation":2, "brightness":41, "is_black_and_white":false, "creation_tsz":1485797197, "listing_id":59759273, "rank":5, "url_75x75":"https://img1.etsystatic.com/169/0/12065520/il_75x75.1179359817_215n.jpg", "url_170x135":"https://img1.etsystatic.com/169/0/12065520/il_170x135.1179359817_215n.jpg", "url_570xN":"https://img1.etsystatic.com/169/0/12065520/il_570xN.1179359817_215n.jpg", "url_fullxfull":"https://img1.etsystatic.com/169/0/12065520/il_fullxfull.1179359817_215n.jpg", "full_height":540, "full_width":720}]}],"params":{"listing_id":"59759273", "includes":"Images"},"type":"Listing"}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
2
|
"count":1,
|
3
3
|
"results":
|
4
4
|
[
|
5
5
|
{
|
6
6
|
"receipt_id":27230877,
|
7
7
|
"buyer_user_id":12345,
|
8
|
-
"
|
8
|
+
"creation_tsz":1412206858,
|
9
9
|
"quantity":5,
|
10
10
|
"listing_id":123456,
|
11
11
|
"name":"Mike Taylor",
|
@@ -19,10 +19,10 @@
|
|
19
19
|
"buyer_email":"bar@example.com"
|
20
20
|
}
|
21
21
|
],
|
22
|
-
"params": {
|
22
|
+
"params": {
|
23
23
|
"shop_id":"5818087",
|
24
24
|
"limit":25,
|
25
25
|
"offset":0
|
26
26
|
},
|
27
27
|
"type":"Receipt"
|
28
|
-
}
|
28
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"count":1,"results":[{"shipping_info_id":212,"primary_cost":"$9.99","listing_id":14888443}],"params":{"shipping_template_id":"212"},"type":"ShippingTemplate","pagination":{}}
|