etsy 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/.gitignore +8 -0
  2. data/.travis.yml +8 -0
  3. data/Gemfile +10 -0
  4. data/README.md +300 -0
  5. data/Rakefile +2 -30
  6. data/etsy.gemspec +36 -0
  7. data/lib/etsy.rb +46 -17
  8. data/lib/etsy/address.rb +47 -0
  9. data/lib/etsy/basic_client.rb +1 -1
  10. data/lib/etsy/category.rb +84 -0
  11. data/lib/etsy/country.rb +27 -0
  12. data/lib/etsy/image.rb +7 -3
  13. data/lib/etsy/listing.rb +107 -8
  14. data/lib/etsy/model.rb +99 -3
  15. data/lib/etsy/payment_template.rb +33 -0
  16. data/lib/etsy/profile.rb +49 -0
  17. data/lib/etsy/request.rb +85 -17
  18. data/lib/etsy/response.rb +80 -4
  19. data/lib/etsy/section.rb +16 -0
  20. data/lib/etsy/secure_client.rb +49 -4
  21. data/lib/etsy/shipping_template.rb +32 -0
  22. data/lib/etsy/shop.rb +21 -12
  23. data/lib/etsy/transaction.rb +18 -0
  24. data/lib/etsy/user.rb +45 -13
  25. data/lib/etsy/verification_request.rb +2 -2
  26. data/test/fixtures/address/getUserAddresses.json +12 -0
  27. data/test/fixtures/category/findAllSubCategoryChildren.json +78 -0
  28. data/test/fixtures/category/findAllTopCategory.json +347 -0
  29. data/test/fixtures/category/findAllTopCategory.single.json +18 -0
  30. data/test/fixtures/category/findAllTopCategoryChildren.json +308 -0
  31. data/test/fixtures/category/getCategory.multiple.json +28 -0
  32. data/test/fixtures/category/getCategory.single.json +18 -0
  33. data/test/fixtures/country/getCountry.json +1 -0
  34. data/test/fixtures/listing/findAllListingActive.category.json +827 -0
  35. data/test/fixtures/listing/{findAllShopListingsActive.json → findAllShopListings.json} +0 -0
  36. data/test/fixtures/listing/getListing.multiple.json +1 -0
  37. data/test/fixtures/listing/getListing.single.json +1 -0
  38. data/test/fixtures/payment_template/getPaymentTemplate.json +1 -0
  39. data/test/fixtures/profile/new.json +28 -0
  40. data/test/fixtures/section/getShopSection.json +18 -0
  41. data/test/fixtures/shipping_template/getShippingTemplate.json +1 -0
  42. data/test/fixtures/shop/getShop.single.json +4 -3
  43. data/test/fixtures/transaction/findAllShopTransactions.json +1 -0
  44. data/test/fixtures/user/getUser.single.withProfile.json +38 -0
  45. data/test/fixtures/user/getUser.single.withShops.json +41 -0
  46. data/test/test_helper.rb +9 -4
  47. data/test/unit/etsy/address_test.rb +61 -0
  48. data/test/unit/etsy/category_test.rb +106 -0
  49. data/test/unit/etsy/country_test.rb +64 -0
  50. data/test/unit/etsy/listing_test.rb +112 -5
  51. data/test/unit/etsy/model_test.rb +64 -0
  52. data/test/unit/etsy/payment_template_test.rb +68 -0
  53. data/test/unit/etsy/profile_test.rb +111 -0
  54. data/test/unit/etsy/request_test.rb +89 -53
  55. data/test/unit/etsy/response_test.rb +118 -4
  56. data/test/unit/etsy/section_test.rb +28 -0
  57. data/test/unit/etsy/secure_client_test.rb +27 -5
  58. data/test/unit/etsy/shipping_template_test.rb +24 -0
  59. data/test/unit/etsy/shop_test.rb +12 -5
  60. data/test/unit/etsy/transaction_test.rb +52 -0
  61. data/test/unit/etsy/user_test.rb +147 -8
  62. data/test/unit/etsy/verification_request_test.rb +3 -3
  63. data/test/unit/etsy_test.rb +19 -7
  64. metadata +133 -77
  65. data/README.rdoc +0 -208
  66. data/lib/etsy/version.rb +0 -13
data/lib/etsy/shop.rb CHANGED
@@ -12,7 +12,9 @@ module Etsy
12
12
  # [message] The message sent to users who buy from this shop
13
13
  # [image_url] The full URL to the shops's banner image
14
14
  # [active_listings_count] The number of active listings present in this shop
15
- #
15
+ # [url] The full URL to the shop on Etsy
16
+ # [favorers_count] Number of favorers
17
+
16
18
  class Shop
17
19
 
18
20
  include Etsy::Model
@@ -26,6 +28,8 @@ module Etsy
26
28
  attribute :created, :from => :creation_tsz
27
29
  attribute :name, :from => :shop_name
28
30
  attribute :message, :from => :sale_message
31
+ attribute :url, :from => :url
32
+ attribute :favorers_count, :from => :num_favorers
29
33
 
30
34
  # Retrieve one or more shops by name or ID:
31
35
  #
@@ -35,11 +39,8 @@ module Etsy
35
39
  #
36
40
  # Etsy::Shop.find(['reagent', 'littletjane'])
37
41
  #
38
- def self.find(*identifiers)
39
- response = Request.get("/shops/#{identifiers.join(',')}")
40
- shops = [response.result].flatten.map {|data| new(data) }
41
-
42
- (identifiers.length == 1) ? shops[0] : shops
42
+ def self.find(*identifiers_and_options)
43
+ self.find_one_or_more('shops', identifiers_and_options)
43
44
  end
44
45
 
45
46
  # Retrieve a list of all shops. By default it fetches 25 at a time, but that can
@@ -48,8 +49,7 @@ module Etsy
48
49
  # Etsy::Shop.all(:limit => 100, :offset => 100)
49
50
  #
50
51
  def self.all(options = {})
51
- response = Request.get("/shops", options)
52
- response.result.map {|data| new(data) }
52
+ self.get_all("/shops", options)
53
53
  end
54
54
 
55
55
  # Time that this shop was created
@@ -64,11 +64,20 @@ module Etsy
64
64
  Time.at(updated)
65
65
  end
66
66
 
67
- # The collection of active listings associated with this shop
67
+ # The collection of listings associated with this shop
68
68
  #
69
- def listings
70
- @listings ||= Listing.find_all_by_shop_id(id)
69
+ def listings(state = nil, options = {})
70
+ state = state ? {:state => state} : {}
71
+ Listing.find_all_by_shop_id(id, state.merge(options).merge(oauth))
71
72
  end
72
73
 
74
+ def sections
75
+ Section.find_by_shop(self)
76
+ end
77
+
78
+ private
79
+ def oauth
80
+ oauth = (token && secret) ? {:access_token => token, :access_secret => secret} : {}
81
+ end
73
82
  end
74
- end
83
+ end
@@ -0,0 +1,18 @@
1
+ module Etsy
2
+ class Transaction
3
+ include Model
4
+
5
+ attribute :id, :from => :transaction_id
6
+ attribute :buyer_id, :from => :buyer_user_id
7
+ attributes :quantity, :listing_id
8
+
9
+ def self.find_all_by_shop_id(shop_id, options = {})
10
+ get_all("/shops/#{shop_id}/transactions", options)
11
+ end
12
+
13
+ def buyer
14
+ @buyer ||= User.find(buyer_id)
15
+ end
16
+
17
+ end
18
+ end
data/lib/etsy/user.rb CHANGED
@@ -17,6 +17,9 @@ module Etsy
17
17
  attribute :email, :from => :primary_email
18
18
  attribute :created, :from => :creation_tsz
19
19
 
20
+ association :profile, :from => 'Profile'
21
+ association :shops, :from => 'Shops'
22
+
20
23
  # Retrieve one or more users by name or ID:
21
24
  #
22
25
  # Etsy::User.find('reagent')
@@ -25,35 +28,64 @@ module Etsy
25
28
  #
26
29
  # Etsy::User.find(['reagent', 'littletjane'])
27
30
  #
28
- def self.find(*identifiers)
29
- self.get("/users/#{identifiers.join(',')}")
31
+ def self.find(*identifiers_and_options)
32
+ find_one_or_more('users', identifiers_and_options)
30
33
  end
31
34
 
32
35
  # Retrieve the currently authenticated user.
33
36
  #
34
- def self.myself(token, secret)
35
- self.get("/users/__SELF__", :access_token => token, :access_secret => secret)
37
+ def self.myself(token, secret, options = {})
38
+ find('__SELF__', {:access_token => token, :access_secret => secret}.merge(options))
36
39
  end
37
40
 
38
41
  # The shop associated with this user.
39
42
  #
40
43
  def shop
41
- @shop ||= Shop.find(username)
44
+ @shop ||= shops.first
42
45
  end
43
46
 
44
- # Time that this user was created
47
+ # The addresses associated with this user.
45
48
  #
46
- def created_at
47
- Time.at(created)
49
+ def addresses
50
+ options = (token && secret) ? {:access_token => token, :access_secret => secret} : {}
51
+ @addresses ||= Address.find(username, options)
48
52
  end
49
53
 
50
- private
54
+ # The profile associated with this user.
55
+ #
56
+ def profile
57
+ unless @profile
58
+ if associated_profile
59
+ @profile = Profile.new(associated_profile)
60
+ else
61
+ options = {:fields => 'user_id', :includes => 'Profile'}
62
+ options = options.merge(:access_token => token, :access_secret => secret) if (token && secret)
63
+ tmp = User.find(username, options)
64
+ @profile = Profile.new(tmp.associated_profile)
65
+ end
66
+ end
67
+ @profile
68
+ end
51
69
 
52
- def self.get(query, options={})
53
- response = Request.get(query, options)
54
- users = [response.result].flatten.map {|data| new(data) }
70
+ def shops
71
+ unless @shops
72
+ if associated_shops
73
+ @shops = associated_shops.map { |shop| Shop.new(shop) }
74
+ else
75
+ options = {:fields => 'user_id', :includes => 'Shops'}
76
+ options = options.merge(:access_token => token, :access_secret => secret) if (token && secret)
77
+ tmp = User.find(username, options)
78
+ @shops = tmp.associated_shops.map { |shop| Shop.new(shop) }
79
+ end
80
+ end
81
+ @shops
82
+ end
55
83
 
56
- (users.length == 1) ? users[0] : users
84
+ # Time that this user was created
85
+ #
86
+ def created_at
87
+ Time.at(created)
57
88
  end
89
+
58
90
  end
59
91
  end
@@ -6,7 +6,7 @@ module Etsy
6
6
  end
7
7
 
8
8
  def url
9
- "#{request_token.authorize_url}&oauth_consumer_key=#{request_token.secret}"
9
+ request_token.params[:login_url]
10
10
  end
11
11
 
12
12
  def request_token
@@ -14,4 +14,4 @@ module Etsy
14
14
  end
15
15
 
16
16
  end
17
- end
17
+ end
@@ -0,0 +1,12 @@
1
+ {
2
+ "count":2,
3
+ "results":[
4
+ {"user_address_id":123,"user_id":9876,"name":"Tinker Bell","first_line":"123 Fake St.","second_line":null,"city":"BigCity","state":"XX","zip":"12345","country_id":209,"country_name":"United States"},
5
+ {"user_address_id":234,"user_id":9876,"name":"LittleCorp, Inc.","first_line":"123 Fake St.","second_line":null,"city":"BigCity","state":"XX","zip":"12345","country_id":209,"country_name":"United States"}
6
+ ],
7
+ "params": {
8
+ "user_id":"PaisleyAnnHome","limit":25,"offset":0
9
+ },
10
+ "type":"UserAddress"
11
+ }
12
+
@@ -0,0 +1,78 @@
1
+ {
2
+ "count":6,
3
+ "results":
4
+ [
5
+ {
6
+ "meta_title":null,
7
+ "meta_keywords":null,
8
+ "meta_description":null,
9
+ "page_description":null,
10
+ "page_title":null,
11
+ "category_name":"accessories/apron/applique",
12
+ "short_name":"Applique",
13
+ "long_name":"Accessories > Apron > Applique",
14
+ "num_children":0
15
+ },
16
+ {
17
+ "meta_title":null,
18
+ "meta_keywords":null,
19
+ "meta_description":null,
20
+ "page_description":null,
21
+ "page_title":null,
22
+ "category_name":"accessories/apron/children",
23
+ "short_name":"Children",
24
+ "long_name":"Accessories > Apron > Children",
25
+ "num_children":0
26
+ },
27
+ {
28
+ "meta_title":null,
29
+ "meta_keywords":null,
30
+ "meta_description":null,
31
+ "page_description":null,
32
+ "page_title":null,
33
+ "category_name":"accessories/apron/full",
34
+ "short_name":"Full",
35
+ "long_name":"Accessories > Apron > Full",
36
+ "num_children":0
37
+ },
38
+ {
39
+ "meta_title":null,
40
+ "meta_keywords":null,
41
+ "meta_description":null,
42
+ "page_description":null,
43
+ "page_title":null,
44
+ "category_name":"accessories/apron/half",
45
+ "short_name":"Half",
46
+ "long_name":"Accessories > Apron > Half",
47
+ "num_children":0
48
+ },
49
+ {
50
+ "meta_title":null,
51
+ "meta_keywords":null,
52
+ "meta_description":null,
53
+ "page_description":null,
54
+ "page_title":null,
55
+ "category_name":"accessories/apron/men",
56
+ "short_name":"Men",
57
+ "long_name":"Accessories > Apron > Men",
58
+ "num_children":0
59
+ },
60
+ {
61
+ "meta_title":null,
62
+ "meta_keywords":null,
63
+ "meta_description":null,
64
+ "page_description":null,
65
+ "page_title":null,
66
+ "category_name":"accessories/apron/women",
67
+ "short_name":"Women",
68
+ "long_name":"Accessories > Apron > Women",
69
+ "num_children":0
70
+ }
71
+ ],
72
+ "params":
73
+ {
74
+ "tag":"accessories",
75
+ "subtag":"apron"
76
+ },
77
+ "type":"Category"
78
+ }
@@ -0,0 +1,347 @@
1
+ {
2
+ "count":31,
3
+ "results":
4
+ [
5
+ {
6
+ "meta_title":"Handmade Accessories on Etsy - Belts, hats, pins, scarves",
7
+ "meta_keywords":"handmade accessories, handmade belt, handmade hat, handmade wallet, handmade scarf, handmade keychain, handmade necktie, handmade accessory",
8
+ "meta_description":"Shop for unique, handmade accessories for men and women on Etsy, a global handmade marketplace. Browse belts, hats, pins, scarves & more from independent artisans.",
9
+ "page_description":"Shop for unique, handmade accessories from our artisan community",
10
+ "page_title":"Handmade accessories",
11
+ "category_name":"accessories",
12
+ "short_name":"Accessories",
13
+ "long_name":"Accessories",
14
+ "num_children":27
15
+ },
16
+ {
17
+ "meta_title":"Fine Art on Etsy - Original fine art, prints, sculpture ",
18
+ "meta_keywords":"handmade art, handcrafted art, folk art, arts and crafts, fine art, painting, original art, sculpture, prints, art reproductions, collectible art, ACEO",
19
+ "meta_description":"Shop for unique, original fine art directly from independent artists on Etsy, a global handmade marketplace. Browse paintings, sculpture, digital prints, reproductions & more.",
20
+ "page_description":"Shop for unique, original fine art from our artisan community",
21
+ "page_title":"Fine Art",
22
+ "category_name":"art",
23
+ "short_name":"Art",
24
+ "long_name":"Art",
25
+ "num_children":12
26
+ },
27
+ {
28
+ "meta_title":"Handmade Bags & Purses on Etsy - Bags, purses, backpacks, wallets",
29
+ "meta_keywords":"handmade bag, handcrafted purse, handsewn purse, handmade purses, handmade bags, purse, purses, bag, bags",
30
+ "meta_description":"Shop for unique, handmade bags and purses on Etsy, a global handmade marketplace. Browse purses, backpacks, messenger bags, wallets & more from independent artisans.",
31
+ "page_description":"Shop for unique, handmade bags and purses from our artisan community",
32
+ "page_title":"Handmade bags and purses",
33
+ "category_name":"bags_and_purses",
34
+ "short_name":"Bags and Purses",
35
+ "long_name":"Bags and Purses",
36
+ "num_children":12
37
+ },
38
+ {
39
+ "meta_title":"Handmade Bath & Beauty on Etsy - Soap, lotions, skin care, makeup",
40
+ "meta_keywords":"handmade soap, handcrafted soap, handmade soaps, handcrafted soaps, handmade lotion, handmade lotions, soap, soaps, lotion, lotions",
41
+ "meta_description":"Shop for handmade bath and beauty products on Etsy, a global handmade marketplace. Browse soap, lotion, skin care, makeup, fragrances & more from independent artisans.",
42
+ "page_description":"Shop for unique, handmade bath and beauty products from our artisan community",
43
+ "page_title":"Handmade bath and beauty products",
44
+ "category_name":"bath_and_beauty",
45
+ "short_name":"Bath and Beauty",
46
+ "long_name":"Bath and Beauty",
47
+ "num_children":13
48
+ },
49
+ {
50
+ "meta_title":"Handmade Books & Zines on Etsy - Original zines, comics, blank journals",
51
+ "meta_keywords":"handmade books, handcrafted book, zine, journal, comic, original comic, book art, bookmark, blank book, handbound books",
52
+ "meta_description":"Shop for unique, handmade books and zines on Etsy, a global handmade marketplace. Browse original zines and comics from the authors, blank journals, albums & more from independent artisans.",
53
+ "page_description":"Shop for unique, handmade books and zines from our artisan community",
54
+ "page_title":"Handmade books and zines",
55
+ "category_name":"books_and_zines",
56
+ "short_name":"Books and Zines",
57
+ "long_name":"Books and Zines",
58
+ "num_children":6
59
+ },
60
+ {
61
+ "meta_title":"Handmade Candles on Etsy - Beeswax or soy candles, incense",
62
+ "meta_keywords":"handmade candles, hand-dipped incense, beeswax candle, travel candle, soy candle, vegan candle, candle, candles, incense",
63
+ "meta_description":"Shop for unique, handmade candles on Etsy, a global handmade marketplace. Browse scented, beeswax, soy or vegan candles, incense & more from independent artisans.",
64
+ "page_description":"Shop for unique, handmade candles from our artisan community",
65
+ "page_title":"Handmade candles",
66
+ "category_name":"candles",
67
+ "short_name":"Candles",
68
+ "long_name":"Candles",
69
+ "num_children":16
70
+ },
71
+ {
72
+ "meta_title":"Handmade Ceramics & Pottery on Etsy - Ceramic dishes, jewelry, sculpture ",
73
+ "meta_keywords":"handmade ceramics, handmade pottery, handcrafted pottery, handcrafted ceramics, pottery, ceramics",
74
+ "meta_description":"Shop for unique, handmade ceramics and pottery on Etsy, a global handmade marketplace. Browse ceramic bowls, cups, dishes, jewelry, sculpture & more from independent artisans.",
75
+ "page_description":"Shop for unique, handmade ceramics and pottery from our artisan community",
76
+ "page_title":"Handmade ceramics and pottery",
77
+ "category_name":"ceramics_and_pottery",
78
+ "short_name":"Ceramics and Pottery",
79
+ "long_name":"Ceramics and Pottery",
80
+ "num_children":19
81
+ },
82
+ {
83
+ "meta_title":"Handmade Children's Items on Etsy - Clothing, accessories, furniture, toys",
84
+ "meta_keywords":"handmade childrens toys, handsewn kids clothes, children, baby, toddler, babies, kids, child, childrens clothing, childrens, furniture, toys",
85
+ "meta_description":"Shop for unique handmade items for children & babies on Etsy, a global handmade marketplace. Browse clothing, accessories, furniture, art & more from independent artisans.",
86
+ "page_description":"Shop for unique, handmade children's items from our artisan community",
87
+ "page_title":"Handmade Children's Items",
88
+ "category_name":"children",
89
+ "short_name":"Children",
90
+ "long_name":"Children",
91
+ "num_children":10
92
+ },
93
+ {
94
+ "meta_title":"Handmade Clothing on Etsy - Shirts, dresses, pants, shoes",
95
+ "meta_keywords":"handmade clothing, handcrafted clothes, hand-altered clothing, shirt, dress, handmade shoes, pants, mens clothing, womens clothing, reconstructed clothing",
96
+ "meta_description":"Shop for unique, handmade and hand-altered clothing on Etsy, a global handmade marketplace. Shirts, dresses, pants, shoes & more for men, women & children from independent artisans.",
97
+ "page_description":"Shop for unique, handmade clothing from our artisan community",
98
+ "page_title":"Handmade clothing",
99
+ "category_name":"clothing",
100
+ "short_name":"Clothing",
101
+ "long_name":"Clothing",
102
+ "num_children":26
103
+ },
104
+ {
105
+ "meta_title":"Crocheted Items on Etsy - Crocheted accessories, cozies, housewares",
106
+ "meta_keywords":"Shop for unique, crocheted items on Etsy, a global handmade marketplace. Browse crocheted accessories, cozies, housewares & more from independent artisans.",
107
+ "meta_description":"crochet, crocheted, crocheted, knit, hat, cozy, crochet afghan, scarf",
108
+ "page_description":"Shop for unique, handmade crocheted items from our artisan community",
109
+ "page_title":"Crocheted Items",
110
+ "category_name":"crochet",
111
+ "short_name":"Crochet",
112
+ "long_name":"Crochet",
113
+ "num_children":11
114
+ },
115
+ {
116
+ "meta_title":"Handmade Dolls & Miniatures on Etsy - Dolls, collectibles, dollhouse miniatures",
117
+ "meta_keywords":"Shop for unique, handmade dolls and miniatures on Etsy, a global handmade marketplace. Browse art dolls, collectibles, dollhouse miniatures, puppets & more from independent artisans.",
118
+ "meta_description":"handmade doll, handcrafted doll, handmade miniatures, dollhouse, puppets, scale models, collectible dolls, art dolls, figurines",
119
+ "page_description":"Shop for unique, handmade dolls and miniatures from our artisan community",
120
+ "page_title":"Handmade Dolls and Miniatures",
121
+ "category_name":"dolls_and_miniatures",
122
+ "short_name":"Dolls and Miniatures",
123
+ "long_name":"Dolls and Miniatures",
124
+ "num_children":18
125
+ },
126
+ {
127
+ "meta_title":"Handmade Everything Else on Etsy - Design, educational items, magic items, tutorials & more",
128
+ "meta_keywords":"personalized handmade items, graphic design, custom design, handmade religious, handcrafted taxidermy",
129
+ "meta_description":"Shop for unique, handmade products on Etsy, a global handmade marketplace. A little bit of everything else; weird, custom-made & more from independent artisans",
130
+ "page_description":"Shop for unique, handmade items from our artisan community",
131
+ "page_title":"Handmade items",
132
+ "category_name":"everything_else",
133
+ "short_name":"Everything Else",
134
+ "long_name":"Everything Else",
135
+ "num_children":10
136
+ },
137
+ {
138
+ "meta_title":"Handmade Furniture on Etsy - Tables, chairs, beds, storage",
139
+ "meta_keywords":"handmade furniture, handcrafted furniture, handmade bed, handmade chair, handmade table, wooden furniture, metal furniture",
140
+ "meta_description":"Shop for unique, handmade furniture on Etsy, a global handmade marketplace. Broswe tables, chairs, beds, storage solutions & more from independent artisans.",
141
+ "page_description":"Shop for unique, handmade furniture from our artisan community",
142
+ "page_title":"Handmade furniture",
143
+ "category_name":"furniture",
144
+ "short_name":"Furniture",
145
+ "long_name":"Furniture",
146
+ "num_children":12
147
+ },
148
+ {
149
+ "meta_title":"Handmade Geekery on Etsy - Kitschy, weird, humorous items & more",
150
+ "meta_keywords":"handmade geekery, video game fan art, gag gifts, novelty gifts, kitschy jewelry",
151
+ "meta_description":"Shop for unique, handmade geekery items on Etsy, a global handmade marketplace. Browse kitschy, humorous & weird items for any geek from independent artisans.",
152
+ "page_description":"Shop for unique, handmade geekery from our artisan community",
153
+ "page_title":"Handmade geekery",
154
+ "category_name":"geekery",
155
+ "short_name":"Geekery",
156
+ "long_name":"Geekery",
157
+ "num_children":17
158
+ },
159
+ {
160
+ "meta_title":"Handmade Glass on Etsy - Jewelry, beads, ornaments, home du00c3u00a9cor",
161
+ "meta_keywords":"handmade glass, handcrafted glass, lampwork beads, glass jewelry, glass blowing, ornaments, glass bowl, stained glass",
162
+ "meta_description":"Shop for unique, handmade glass items on Etsy, a global handmade marketplace. Artisan glass jewelry, beads, ornaments, bowls & more from independent artisans",
163
+ "page_description":"Shop for unique, handmade glass items from our artisan community",
164
+ "page_title":"Handmade Glass Items",
165
+ "category_name":"glass",
166
+ "short_name":"Glass",
167
+ "long_name":"Glass",
168
+ "num_children":21
169
+ },
170
+ {
171
+ "meta_title":"Handmade Holiday Items on Etsy - Birthdays, Christmas, patriotic celebrations ",
172
+ "meta_keywords":"handmade decorations, handcrafted decorations, handmade card, handmade cards, handmade holiday, handmade christmas",
173
+ "meta_description":"Shop for unique, handmade holiday items on Etsy, a global handmade marketplace. Browse items for Christmas, birthdays, Thanksgiving, patriotic days & more from independent artisans.",
174
+ "page_description":"Shop for unique, handmade holiday items from our artisan community",
175
+ "page_title":"Handmade Holiday Items",
176
+ "category_name":"holidays",
177
+ "short_name":"Holidays",
178
+ "long_name":"Holidays",
179
+ "num_children":11
180
+ },
181
+ {
182
+ "meta_title":"Handmade Housewares on Etsy - Kitchen, bath, home decor, housewares",
183
+ "meta_keywords":"handmade housewares, handcrafted home decor, kitchen, home decor, home goods, pillows, dishes, mirrors, picture frames, coasters",
184
+ "meta_description":"Shop for unique, handmade housewares on Etsy, a global handmade marketplace. Browse items for your kitchen, bath, home decor & more from independent artisans",
185
+ "page_description":"Shop for unique, handmade housewares from our artisan community",
186
+ "page_title":"Handmade housewares",
187
+ "category_name":"housewares",
188
+ "short_name":"Housewares",
189
+ "long_name":"Housewares",
190
+ "num_children":25
191
+ },
192
+ {
193
+ "meta_title":"Handmade Jewelry on Etsy - Necklaces, rings, earrings, bracelets",
194
+ "meta_keywords":"handmade jewelry, handcrafted jewelry, hand made jewelry, artisan jewelry, custom jewelry, jewelry, jewellry",
195
+ "meta_description":"Shop for unique, handmade jewelry on Etsy, a global handmade marketplace. Browse necklaces, bracelets, rings, earrings & more from independent artisans.",
196
+ "page_description":"Shop for unique, handmade jewelry from our artisan community",
197
+ "page_title":"Handmade jewelry",
198
+ "category_name":"jewelry",
199
+ "short_name":"Jewelry",
200
+ "long_name":"Jewelry",
201
+ "num_children":8
202
+ },
203
+ {
204
+ "meta_title":"Knit Items on Etsy - Hats, scarves, knit clothing ",
205
+ "meta_keywords":"knit, knitting, knitted, handmade knit, handmade knitting, handmade knitted",
206
+ "meta_description":"Shop for unique, handmade knit items on Etsy, a global handmade marketplace. Browse knit hats, cozies, scarves, clothing, knitting supplies & more from independent artisans",
207
+ "page_description":"Shop for unique, handmade knit items from our artisan community",
208
+ "page_title":"Knit Items",
209
+ "category_name":"knitting",
210
+ "short_name":"Knitting",
211
+ "long_name":"Knitting",
212
+ "num_children":16
213
+ },
214
+ {
215
+ "meta_title":"Handmade Music Items on Etsy - Original music recordings, instruments, accessories",
216
+ "meta_keywords":"handmade music, original music, self-published cd, cassette tape, musical instrument, handcrafted instruments, guitar, music accessories",
217
+ "meta_description":"Shop for unique, handmade musical items on Etsy, a global handmade marketplace. Browse musical items & more from independent artists.",
218
+ "page_description":"Shop for unique, handmade music items from our artisan community",
219
+ "page_title":"Handmade music items",
220
+ "category_name":"music",
221
+ "short_name":"Music",
222
+ "long_name":"Music",
223
+ "num_children":10
224
+ },
225
+ {
226
+ "meta_title":"Needlecraft on Etsy - Embroidery, cross stitch, needlepoint",
227
+ "meta_keywords":"needlecraft, handmade embroidery, needlepoint, cross stitch, felting, needle felting, pincushion",
228
+ "meta_description":"Shop for unique, needlecraft items on Etsy, a global handmade marketplace. Browse embroidery, cross stitch, needlepoint & more from independent artisans.",
229
+ "page_description":"Shop for unique, handmade needlecraft items from our artisan community",
230
+ "page_title":"Needlecraft Items",
231
+ "category_name":"needlecraft",
232
+ "short_name":"Needlecraft",
233
+ "long_name":"Needlecraft",
234
+ "num_children":13
235
+ },
236
+ {
237
+ "meta_title":"Handmade Paper Goods on Etsy - Stationery, cards, calendars",
238
+ "meta_keywords":"handmade paper goods, handmade stationery, handmade paper, handmade gift wrap, handmade wrap",
239
+ "meta_description":"Shop for unique, handmade paper goods on Etsy, a global handmade marketplace. Browse stationery, greeting cards, calendars, gift wrap & more from independent artisans.",
240
+ "page_description":"Shop for unique, handmade paper goods from our artisan community",
241
+ "page_title":"Handmade paper goods",
242
+ "category_name":"paper_goods",
243
+ "short_name":"Paper Goods",
244
+ "long_name":"Paper Goods",
245
+ "num_children":14
246
+ },
247
+ {
248
+ "meta_title":"Handmade Patterns on Etsy - Original patterns for sewing, knitting, crochet, crafting",
249
+ "meta_keywords":"handmade patterns, original patterns, sewing pattern, clothing pattern, knitting patterns, crochet patterns, patternmaking",
250
+ "meta_description":"Shop for unique, handmade patterns on Etsy, a global handmade marketplace. Browse original sewing, knitting, crochet & craft patterns from independent artisans.",
251
+ "page_description":"Shop for unique, handmade patterns from our artisan community",
252
+ "page_title":"Handmade Patterns",
253
+ "category_name":"patterns",
254
+ "short_name":"Patterns",
255
+ "long_name":"Patterns",
256
+ "num_children":17
257
+ },
258
+ {
259
+ "meta_title":"Handmade Pet Items on Etsy - Pet toys, accessories, treats, clothes",
260
+ "meta_keywords":"handmade collar, handmade pet toys, handmade pet treats, organic pet treats, leash, pet bed, pet toys, cat, dog",
261
+ "meta_description":"Shop for unique, handmade items for pets on Etsy, a global handmade marketplace. Browse accessories, clothes, dishes, toys & more for pets or pet-lovers from independent artisans.",
262
+ "page_description":"Shop for unique, handmade pet items from our artisan community",
263
+ "page_title":"Handmade pet items",
264
+ "category_name":"pets",
265
+ "short_name":"Pets",
266
+ "long_name":"Pets",
267
+ "num_children":20
268
+ },
269
+ {
270
+ "meta_title":"Plants and Edibles on Etsy - Baked goods, spices, herbs, tea & more",
271
+ "meta_keywords":"handmade food, homemade food, artisan food, gourmet food, baked goods, spices, homegrown herbs, artisan tea, roasted coffee, jam, candy",
272
+ "meta_description":"Shop for unique, homemade plants and edibles on Etsy, a global handmade marketplace. Browse baked goods, spices, candy, jam, tea & more from independent artisans.",
273
+ "page_description":"Shop for unique, homegrown plants and handmade edibles from our artisan community",
274
+ "page_title":"Plants and Edibles",
275
+ "category_name":"plants_and_edibles",
276
+ "short_name":"Plants and Edibles",
277
+ "long_name":"Plants and Edibles",
278
+ "num_children":13
279
+ },
280
+ {
281
+ "meta_title":"Handmade Quilts on Etsy - Blankets, bed quilts, quilted wall art ",
282
+ "meta_keywords":"handmade quilts, handcrafted quilts, quilt, quilts, blankets, bed quilt, appliqued quilt, wall hanging, fiber art",
283
+ "meta_description":"Shop for unique, handmade quilts on Etsy, a global handmade marketplace. Browse blankets, bed quilts, wall hangings in traditional & modern styles from independent artisans.",
284
+ "page_description":"Shop for unique, handmade quilts from our artisan community",
285
+ "page_title":"Handmade quilts",
286
+ "category_name":"quilts",
287
+ "short_name":"Quilts",
288
+ "long_name":"Quilts",
289
+ "num_children":15
290
+ },
291
+ {
292
+ "meta_title":"Craft Supplies on Etsy - Beads, buttons, yarn, craft supplies",
293
+ "meta_keywords":"handmade supplies, craft supplies, craft materials, art beads, beads, buttons, handspun yarn, hand dyed yarn, yarn, patterns, scrapbooking supplies",
294
+ "meta_description":"Shop for handmade and commercial crafting supplies on Etsy, a global handmade marketplace. Browse a wide variety of beads, buttons, yarn & more.",
295
+ "page_description":"Shop for unique supplies from our artisan community",
296
+ "page_title":"Supplies",
297
+ "category_name":"supplies",
298
+ "short_name":"Supplies",
299
+ "long_name":"Supplies",
300
+ "num_children":10
301
+ },
302
+ {
303
+ "meta_title":"Handmade Toys on Etsy - Dolls, games, puppets, toys",
304
+ "meta_keywords":"handmade toys, handcrafted toys, childrens toys, wooden toy, plushie, doll, games, collectible toys",
305
+ "meta_description":"Shop for unique, handmade toys on Etsy, a global handmade marketplace. Browse dolls, plushies, games, puppets & more for kids or adults from independent artisans",
306
+ "page_description":"Shop for unique, handmade toys from our artisan community",
307
+ "page_title":"Handmade toys",
308
+ "category_name":"toys",
309
+ "short_name":"Toys",
310
+ "long_name":"Toys",
311
+ "num_children":16
312
+ },
313
+ {
314
+ "meta_title":"Vintage on Etsy - Vintage clothing, home decor, collectibles, antiques",
315
+ "meta_keywords":"vintage clothing, vintage, retro, thrift stores, thrifted, vintage collectibles, vintage home decor",
316
+ "meta_description":"Shop for amazing and hard-to-find vintage goods on Etsy, a global handmade and vintage marketplace. Browse clothing, home decor, collectibles & more from the 1980s & earlier.",
317
+ "page_description":"Shop for unique, vintage items from our artisan community",
318
+ "page_title":"Vintage items",
319
+ "category_name":"vintage",
320
+ "short_name":"Vintage",
321
+ "long_name":"Vintage",
322
+ "num_children":15
323
+ },
324
+ {
325
+ "meta_title":"Handmade Wedding Items on Etsy - Invitations, jewelry, party favors for weddings",
326
+ "meta_keywords":"handmade wedding invitations, wedding invitations, custom invitations, wedding favors, unique wedding jewelry, letterpress invitations",
327
+ "meta_description":"Shop for unique, handmade wedding items on Etsy, a global handmade marketplace. Wedding invitations, accessories, favors, jewelry & more from independent artisans",
328
+ "page_description":"Shop for unique, handmade wedding items from our artisan community",
329
+ "page_title":"Handmade wedding items",
330
+ "category_name":"weddings",
331
+ "short_name":"Weddings",
332
+ "long_name":"Weddings",
333
+ "num_children":20
334
+ },
335
+ {
336
+ "meta_title":"Handcrafted Wood Items on Etsy - Furniture, sculpture, home decor",
337
+ "meta_keywords":"handmade woodworking, wood, wooden furniture, handcrafted from wood, wood jewelry, wood sculpture, woodworking",
338
+ "meta_description":"Shop for unique, handcrafted woodworking items on Etsy, a global handmade marketplace. Browse wooden furniture, decor, sculpture, jewelry & more from independent artisans.",
339
+ "page_description":"Shop for unique, handcrafted wood items from our artisan community",
340
+ "page_title":"Handcrafted Wood Items",
341
+ "category_name":"woodworking",
342
+ "short_name":"Woodworking",
343
+ "long_name":"Woodworking",
344
+ "num_children":22
345
+ }
346
+ ]
347
+ }