spree_sample 4.2.5 → 4.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77c20b3b9518c601867adf425881fa35841188be22121342ebf9faf977a35c3a
4
- data.tar.gz: 59f3f0388913c18115fd6dfe06dc1c502a0c2c9b797af558a939a4af01f7acf1
3
+ metadata.gz: 8889124ea6ecd53abd79385167bafd7674c64e333306c64bdedd6ba2eed706e8
4
+ data.tar.gz: e81909f46b9b86fe5fae782dc0a73d0537287036b382b6bbaf07ed750e16f6a6
5
5
  SHA512:
6
- metadata.gz: bbd47f6cb1cc97832694edcca4023d99f19c67086eae537a2d7e958886b94cf960c11b6d20dd5d23971dd2a2ef0e53505fb0b589cc2f6b7141c160743265f8e3
7
- data.tar.gz: 331ac0911fd9049223f92c2a8c2d67d1f51b2afcf11db7141ac157412cd3c011b2400e5ff547c7c7ba72648c90a10926163774a24240ad211511fae49fdf3cc6
6
+ metadata.gz: f51c66c472496bb169adcba8f09e29ee692f4151483156815836b3c5b81a7ad68c6d3a36e6c92f8a857376be00f2fba136fbce9c1cffa443ac772d4529fbe27a
7
+ data.tar.gz: 3eaa1309e5c9b0d51906f230a886ebef0e44a9ca52ffebdb47517e6d40cc63ebc389a2814380c8f8272b11bfe3450d15dc1599b60f2bb5e25b062ef6aef9730a
@@ -0,0 +1,34 @@
1
+ Spree::Store.all.each do |store|
2
+ store.supported_locales_list.each do |locale|
3
+ case locale
4
+ when 'en'
5
+ Spree::CmsPage.where(
6
+ title: 'Feature Page',
7
+ type: 'Spree::Cms::Pages::FeaturePage',
8
+ store: store,
9
+ locale: locale
10
+ ).first_or_create!
11
+ when 'fr'
12
+ Spree::CmsPage.where(
13
+ title: 'Page de fonctionnalité',
14
+ type: 'Spree::Cms::Pages::FeaturePage',
15
+ store: store,
16
+ locale: locale
17
+ ).first_or_create!
18
+ when 'de'
19
+ Spree::CmsPage.where(
20
+ title: 'Feature-Seite',
21
+ type: 'Spree::Cms::Pages::FeaturePage',
22
+ store: store,
23
+ locale: locale
24
+ ).first_or_create!
25
+ when 'es'
26
+ Spree::CmsPage.where(
27
+ title: 'Página de características',
28
+ type: 'Spree::Cms::Pages::FeaturePage',
29
+ store: store,
30
+ locale: locale
31
+ ).first_or_create!
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ Spree::Store.all.each do |store|
2
+ store.supported_locales_list.each do |locale|
3
+ case locale
4
+ when 'en'
5
+ Spree::CmsPage.where(
6
+ title: 'Homepage (English)',
7
+ type: 'Spree::Cms::Pages::Homepage',
8
+ store: store,
9
+ locale: locale
10
+ ).first_or_create!
11
+ when 'fr'
12
+ Spree::CmsPage.where(
13
+ title: "Page d'accueil (Français)",
14
+ type: 'Spree::Cms::Pages::Homepage',
15
+ store: store,
16
+ locale: locale
17
+ ).first_or_create!
18
+ when 'de'
19
+ Spree::CmsPage.where(
20
+ title: 'Startseite (Deutsche)',
21
+ type: 'Spree::Cms::Pages::Homepage',
22
+ store: store,
23
+ locale: locale
24
+ ).first_or_create!
25
+ when 'es'
26
+ Spree::CmsPage.where(
27
+ title: 'Página principal (Español)',
28
+ type: 'Spree::Cms::Pages::Homepage',
29
+ store: store,
30
+ locale: locale
31
+ ).first_or_create!
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,246 @@
1
+ PAGES = []
2
+
3
+ Spree::CmsPage.all.each do |page|
4
+ unless page.type == 'Spree::Cms::Pages::StandardPage'
5
+ PAGES << page
6
+ end
7
+ end
8
+
9
+ # Hero Image
10
+ PAGES.each do |page|
11
+ case page.locale
12
+ when 'en'
13
+ name_txt = 'Hero Image'
14
+ title_txt = 'Summer Collection'
15
+ button_txt = 'Shop Now'
16
+ when 'de'
17
+ name_txt = 'Heldenbild'
18
+ title_txt = 'Sommerkollektion'
19
+ button_txt = 'Jetzt einkaufen'
20
+ when 'fr'
21
+ name_txt = 'Image de héros'
22
+ title_txt = "Collection d'été"
23
+ button_txt = 'Achetez maintenant'
24
+ when 'es'
25
+ name_txt = 'Imagen de héroe'
26
+ title_txt = 'Colección de verano'
27
+ button_txt = 'Compra ahora'
28
+ end
29
+
30
+ summer_collection = Spree::Taxon.find_by!(permalink: "categories/new-collection/summer-#{Date.today.year}")
31
+
32
+ hero_section = Spree::CmsSection.where(
33
+ name: name_txt,
34
+ type: 'Spree::Cms::Sections::HeroImage',
35
+ linked_resource_type: 'Spree::Taxon',
36
+ cms_page: page
37
+ ).first_or_create!
38
+
39
+ hero_section.title = title_txt
40
+ hero_section.button_text = button_txt
41
+ hero_section.linked_resource_id = summer_collection.id
42
+ hero_section.save!
43
+ end
44
+
45
+ # Three Taxons
46
+ PAGES.each do |page|
47
+ link_one = 'categories/men'
48
+ link_two = 'categories/women'
49
+ link_three = 'categories/sportswear'
50
+
51
+ case page.locale
52
+ when 'en'
53
+ name_txt = 'Main Taxons'
54
+
55
+ title_one = 'Men'
56
+ title_two = 'Women'
57
+ title_three = 'Sportswear'
58
+
59
+ when 'de'
60
+ name_txt = 'Haupttaxa'
61
+
62
+ title_one = 'Männer'
63
+ title_two = 'Frauen'
64
+ title_three = 'Sportbekleidung'
65
+ when 'fr'
66
+ name_txt = 'Main Taxons'
67
+
68
+ title_one = 'Hommes'
69
+ title_two = 'Femmes'
70
+ title_three = 'Tenue de sport'
71
+ when 'es'
72
+ name_txt = 'Taxón principal'
73
+
74
+ title_one = 'Hombres'
75
+ title_two = 'Mujeres'
76
+ title_three = 'Ropa de deporte'
77
+ end
78
+
79
+ three_taxon_section = Spree::CmsSection.where(
80
+ name: name_txt,
81
+ type: 'Spree::Cms::Sections::ImageGallery',
82
+ cms_page: page
83
+ ).first_or_create!
84
+
85
+ three_taxon_section.link_one = link_one
86
+ three_taxon_section.link_two = link_two
87
+ three_taxon_section.link_three = link_three
88
+
89
+ three_taxon_section.title_one = title_one
90
+ three_taxon_section.title_two = title_two
91
+ three_taxon_section.title_three = title_three
92
+
93
+ three_taxon_section.save!
94
+ end
95
+
96
+ # Best Sellers Product Carousel
97
+ PAGES.each do |page|
98
+ case page.locale
99
+ when 'en'
100
+ name_txt = 'Best Sellers Carousel'
101
+ when 'de'
102
+ name_txt = 'Bestseller Karussell'
103
+ when 'fr'
104
+ name_txt = 'Carrousel des meilleures ventes'
105
+ when 'es'
106
+ name_txt = 'Carrusel de los más vendidos'
107
+ end
108
+
109
+ bestsellers = Spree::Taxon.find_by!(permalink: 'categories/bestsellers')
110
+
111
+ product_carousel = Spree::CmsSection.where(
112
+ name: name_txt,
113
+ type: 'Spree::Cms::Sections::ProductCarousel',
114
+ linked_resource_type: 'Spree::Taxon',
115
+ cms_page: page
116
+ ).first_or_create!
117
+
118
+ product_carousel.linked_resource_id = bestsellers.id
119
+ product_carousel.save!
120
+ end
121
+
122
+ # Featured Article
123
+ PAGES.each do |page|
124
+ case page.locale
125
+ when 'en'
126
+ name_txt = 'Fashion Trends'
127
+ title_txt = "Summer #{Date.today.year}"
128
+ subtitle_txt = 'Fashion Trends'
129
+ button_txt = 'Read More'
130
+ when 'de'
131
+ name_txt = 'Modetrends'
132
+ title_txt = "Sommer #{Date.today.year}"
133
+ subtitle_txt = 'Modetrends'
134
+ button_txt = 'Weiterlesen'
135
+ when 'fr'
136
+ name_txt = 'Tendances de la mode'
137
+ title_txt = "Été #{Date.today.year}"
138
+ subtitle_txt = 'Tendances de la mode'
139
+ button_txt = 'Lire la suite'
140
+ when 'es'
141
+ name_txt = 'Tendencias de la moda'
142
+ title_txt = "Verano #{Date.today.year}"
143
+ subtitle_txt = 'Tendencias de la moda'
144
+ button_txt = 'Lee mas'
145
+ end
146
+
147
+ trending = Spree::Taxon.find_by!(permalink: 'categories/trending')
148
+
149
+ featured_article = Spree::CmsSection.where(
150
+ name: name_txt,
151
+ type: 'Spree::Cms::Sections::FeaturedArticle',
152
+ linked_resource_type: 'Spree::Taxon',
153
+ cms_page: page
154
+ ).first_or_create!
155
+
156
+ featured_article.title = title_txt
157
+ featured_article.subtitle = subtitle_txt
158
+ featured_article.button_text = button_txt
159
+ featured_article.rte_content = '<div style="text-center">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</div>'
160
+ featured_article.linked_resource_id = trending.id
161
+ featured_article.save!
162
+ end
163
+
164
+ # Trending Product Carousel
165
+ PAGES.each do |page|
166
+ case page.locale
167
+ when 'en'
168
+ name_txt = 'Trending Carousel'
169
+ when 'de'
170
+ name_txt = 'Trendiges Karussell'
171
+ when 'fr'
172
+ name_txt = 'Carrousel tendance'
173
+ when 'es'
174
+ name_txt = 'Carrusel de tendencias'
175
+ end
176
+
177
+ trending = Spree::Taxon.find_by!(permalink: 'categories/trending')
178
+
179
+ trending_section = Spree::CmsSection.where(
180
+ name: name_txt,
181
+ type: 'Spree::Cms::Sections::ProductCarousel',
182
+ linked_resource_type: 'Spree::Taxon',
183
+ cms_page: page
184
+ ).first_or_create!
185
+
186
+ trending_section.linked_resource_id = trending.id
187
+ trending_section.save!
188
+ end
189
+
190
+ # Side-by-Side Promotions
191
+ PAGES.each do |page|
192
+ link_one = 'categories/streetstyle'
193
+ link_two = 'categories/special-offers/30-percent-off'
194
+
195
+ case page.locale
196
+ when 'en'
197
+ name_txt = 'Promotions'
198
+
199
+ title_one = 'New Collection'
200
+ subtitle_one = 'Street Style'
201
+
202
+ title_two = 'Summer Sale'
203
+ subtitle_two = 'Up To 30% OFF'
204
+
205
+ when 'de'
206
+ name_txt = 'Werbeaktionen'
207
+
208
+ title_one = 'Neue Kollektion'
209
+ subtitle_one = 'Street Style'
210
+
211
+ title_two = 'Summer Sale'
212
+ subtitle_two = 'Bis zu 30% RABATT'
213
+ when 'fr'
214
+ name_txt = 'Promotions'
215
+
216
+ title_one = 'Nouvelle collection'
217
+ subtitle_one = 'Style de rue'
218
+
219
+ title_two = 'Summer Sale'
220
+ subtitle_two = "Jusqu'à 30% de réduction"
221
+ when 'es'
222
+ name_txt = 'Promociones'
223
+
224
+ title_one = 'Nueva colección'
225
+ subtitle_one = 'Estilo callejero'
226
+
227
+ title_two = 'Summer Sale'
228
+ subtitle_two = 'Hasta 30% DE DESCUENTO'
229
+ end
230
+
231
+ promos_section = Spree::CmsSection.where(
232
+ name: name_txt,
233
+ type: 'Spree::Cms::Sections::SideBySideImages',
234
+ cms_page: page
235
+ ).first_or_create!
236
+
237
+ promos_section.title_one = title_one
238
+ promos_section.subtitle_one = subtitle_one
239
+ promos_section.link_one = link_one
240
+
241
+ promos_section.title_two = title_two
242
+ promos_section.subtitle_two = subtitle_two
243
+ promos_section.link_two = link_two
244
+
245
+ promos_section.save!
246
+ end
@@ -0,0 +1,134 @@
1
+ Spree::Store.all.each do |store|
2
+ store.supported_locales_list.each do |locale|
3
+ case locale
4
+ when 'en'
5
+ Spree::CmsPage.where(
6
+ title: 'About Us',
7
+ type: 'Spree::Cms::Pages::StandardPage',
8
+ store: store,
9
+ locale: locale,
10
+ content: FFaker::Lorem.paragraph(8)
11
+ ).first_or_create!
12
+
13
+ Spree::CmsPage.where(
14
+ title: 'Privacy Policy',
15
+ type: 'Spree::Cms::Pages::StandardPage',
16
+ store: store,
17
+ locale: locale,
18
+ content: FFaker::Lorem.paragraph(8)
19
+ ).first_or_create!
20
+
21
+ Spree::CmsPage.where(
22
+ title: 'Shipping Policy',
23
+ type: 'Spree::Cms::Pages::StandardPage',
24
+ store: store,
25
+ locale: locale,
26
+ content: FFaker::Lorem.paragraph(8)
27
+ ).first_or_create!
28
+
29
+ Spree::CmsPage.where(
30
+ title: 'Returns Policy',
31
+ type: 'Spree::Cms::Pages::StandardPage',
32
+ store: store,
33
+ locale: locale,
34
+ content: FFaker::Lorem.paragraph(8)
35
+ ).first_or_create!
36
+ when 'fr'
37
+ Spree::CmsPage.where(
38
+ title: 'À propos de nous',
39
+ type: 'Spree::Cms::Pages::StandardPage',
40
+ store: store,
41
+ locale: locale,
42
+ content: FFaker::Lorem.paragraph(8)
43
+ ).first_or_create!
44
+
45
+ Spree::CmsPage.where(
46
+ title: 'Politique de confidentialité',
47
+ type: 'Spree::Cms::Pages::StandardPage',
48
+ store: store,
49
+ locale: locale,
50
+ content: FFaker::Lorem.paragraph(8)
51
+ ).first_or_create!
52
+
53
+ Spree::CmsPage.where(
54
+ title: "Politique d'expédition",
55
+ type: 'Spree::Cms::Pages::StandardPage',
56
+ store: store,
57
+ locale: locale,
58
+ content: FFaker::Lorem.paragraph(8)
59
+ ).first_or_create!
60
+
61
+ Spree::CmsPage.where(
62
+ title: 'Politique de retour',
63
+ type: 'Spree::Cms::Pages::StandardPage',
64
+ store: store,
65
+ locale: locale,
66
+ content: FFaker::Lorem.paragraph(8)
67
+ ).first_or_create!
68
+ when 'de'
69
+ Spree::CmsPage.where(
70
+ title: 'Über uns',
71
+ type: 'Spree::Cms::Pages::StandardPage',
72
+ store: store,
73
+ locale: locale,
74
+ content: FFaker::Lorem.paragraph(8)
75
+ ).first_or_create!
76
+
77
+ Spree::CmsPage.where(
78
+ title: 'Datenschutz-Bestimmungen',
79
+ type: 'Spree::Cms::Pages::StandardPage',
80
+ store: store,
81
+ locale: locale,
82
+ content: FFaker::Lorem.paragraph(8)
83
+ ).first_or_create!
84
+
85
+ Spree::CmsPage.where(
86
+ title: 'Versandbedingungen',
87
+ type: 'Spree::Cms::Pages::StandardPage',
88
+ store: store,
89
+ locale: locale,
90
+ content: FFaker::Lorem.paragraph(8)
91
+ ).first_or_create!
92
+
93
+ Spree::CmsPage.where(
94
+ title: 'Rückgaberecht',
95
+ type: 'Spree::Cms::Pages::StandardPage',
96
+ store: store,
97
+ locale: locale,
98
+ content: FFaker::Lorem.paragraph(8)
99
+ ).first_or_create!
100
+ when 'es'
101
+ Spree::CmsPage.where(
102
+ title: 'Sobre nosotros',
103
+ type: 'Spree::Cms::Pages::StandardPage',
104
+ store: store,
105
+ locale: locale,
106
+ content: FFaker::Lorem.paragraph(8)
107
+ ).first_or_create!
108
+
109
+ Spree::CmsPage.where(
110
+ title: 'Política de privacidad',
111
+ type: 'Spree::Cms::Pages::StandardPage',
112
+ store: store,
113
+ locale: locale,
114
+ content: FFaker::Lorem.paragraph(8)
115
+ ).first_or_create!
116
+
117
+ Spree::CmsPage.where(
118
+ title: 'Politica de envios',
119
+ type: 'Spree::Cms::Pages::StandardPage',
120
+ store: store,
121
+ locale: locale,
122
+ content: FFaker::Lorem.paragraph(8)
123
+ ).first_or_create!
124
+
125
+ Spree::CmsPage.where(
126
+ title: 'Política de devoluciones',
127
+ type: 'Spree::Cms::Pages::StandardPage',
128
+ store: store,
129
+ locale: locale,
130
+ content: FFaker::Lorem.paragraph(8)
131
+ ).first_or_create!
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,413 @@
1
+ MENUS = []
2
+
3
+ Spree::Menu.all.each do |menu|
4
+ MENUS << menu
5
+ end
6
+
7
+ MENUS.each do |menu|
8
+ ################
9
+ # Translations #
10
+ ################
11
+ case menu.locale
12
+ when 'en'
13
+ root_name_a = 'Women'
14
+ root_name_b = 'Men'
15
+ root_name_c = 'Sportswear'
16
+
17
+ catagories = 'Categories'
18
+
19
+ skirts = 'Skirts'
20
+ dresses = 'Dresses'
21
+ shirts_and_blouses = 'Skirts and Blouses'
22
+ sweaters = 'Sweaters'
23
+ tops_and_t_shirts = 'Tops and T-Shirts'
24
+ jackets_and_coats = 'Jackets and Coats'
25
+ shirts = 'Shirts'
26
+ t_shirts = 'T-Shirts'
27
+ tops = 'Tops'
28
+ sweat_shirts = 'Sweatshirts'
29
+ pants = 'Pants'
30
+
31
+ promo_a_name = 'New Collection'
32
+ promo_a_subtitle = "Summer #{Date.today.year}"
33
+
34
+ promo_b_name = 'Special Offers'
35
+ promo_b_subtitle = 'Get up to 30% off'
36
+
37
+ when 'fr'
38
+ root_name_a = 'Femmes'
39
+ root_name_b = 'Hommes'
40
+ root_name_c = 'Tenue de sport'
41
+
42
+ catagories = 'Catégories'
43
+
44
+ skirts = 'Jupes'
45
+ dresses = 'Robes'
46
+ shirts_and_blouses = 'Jupes et chemisiers'
47
+ sweaters = 'Chandails'
48
+ tops_and_t_shirts = 'Hauts et T-shirts'
49
+ jackets_and_coats = 'Vestes et manteaux'
50
+ shirts = 'Chemises'
51
+ t_shirts = 'T-Shirts'
52
+ tops = 'Hauts'
53
+ sweat_shirts = 'Pulls molletonnés'
54
+ pants = 'Pantalon'
55
+
56
+ promo_a_name = 'Nouvelle collection'
57
+ promo_a_subtitle = "Été #{Date.today.year}"
58
+
59
+ promo_b_name = 'Offres spéciales'
60
+ promo_b_subtitle = "Obtenez jusqu'à 30% de réduction"
61
+
62
+ when 'de'
63
+ root_name_a = 'Frauen'
64
+ root_name_b = 'Männer'
65
+ root_name_c = 'Sportbekleidung'
66
+
67
+ catagories = 'Kategorien'
68
+
69
+ skirts = 'die Röcke'
70
+ dresses = 'Kleider'
71
+ shirts_and_blouses = 'Röcke und Blusen'
72
+ sweaters = 'Pullovers'
73
+ tops_and_t_shirts = 'Tops und T-Shirts'
74
+ jackets_and_coats = 'Jacken und Mäntel'
75
+ shirts = 'Hemden'
76
+ t_shirts = 'T-Shirts'
77
+ tops = 'Tops'
78
+ sweat_shirts = 'Sweatshirts'
79
+ pants = 'Hose'
80
+
81
+ promo_a_name = 'Neue Kollektion'
82
+ promo_a_subtitle = "Sommer #{Date.today.year}"
83
+
84
+ promo_b_name = 'Sonderangebote'
85
+ promo_b_subtitle = 'Erhalten Sie bis zu 30% Rabatt'
86
+
87
+ when 'es'
88
+ root_name_a = 'Hombres'
89
+ root_name_b = 'Mujeres'
90
+ root_name_c = 'Ropa de deporte'
91
+
92
+ catagories = 'Categorías'
93
+
94
+ skirts = 'Faldas'
95
+ dresses = 'Vestidos'
96
+ shirts_and_blouses = 'Faldas y blusas'
97
+ sweaters = 'Suéteres'
98
+ tops_and_t_shirts = 'Tops y camisetas'
99
+ jackets_and_coats = 'Chaquetas y abrigos'
100
+ shirts = 'Camisas'
101
+ t_shirts = 'Camisetas'
102
+ tops = 'Tops'
103
+ sweat_shirts = 'Sudaderas'
104
+ pants = 'Pantalones'
105
+
106
+ promo_a_name = 'Nueva colección'
107
+ promo_a_subtitle = "Verano #{Date.today.year}"
108
+
109
+ promo_b_name = 'Ofertas especiales'
110
+ promo_b_subtitle = 'Obtenga hasta un 30% de descuento'
111
+ end
112
+
113
+ ##############
114
+ # Root Items #
115
+ ##############
116
+ woman_taxon = Spree::Taxon.find_by!(permalink: 'categories/women')
117
+ menu_root_women = Spree::MenuItem.where(
118
+ name: root_name_a,
119
+ item_type: 'Link',
120
+ linked_resource_type: 'Spree::Taxon',
121
+ menu_id: menu,
122
+ parent_id: menu.root.id
123
+ ).first_or_create!
124
+ menu_root_women.linked_resource_id = woman_taxon.id
125
+ menu_root_women.save!
126
+
127
+ men_taxon = Spree::Taxon.find_by!(permalink: 'categories/men')
128
+ menu_root_men = Spree::MenuItem.where(
129
+ name: root_name_b,
130
+ item_type: 'Link',
131
+ linked_resource_type: 'Spree::Taxon',
132
+ menu_id: menu,
133
+ parent_id: menu.root.id
134
+ ).first_or_create!
135
+ menu_root_men.linked_resource_id = men_taxon.id
136
+ menu_root_men.save!
137
+
138
+ sw_taxon = Spree::Taxon.find_by!(permalink: 'categories/sportswear')
139
+ menu_root_sw = Spree::MenuItem.where(
140
+ name: root_name_c,
141
+ item_type: 'Link',
142
+ linked_resource_type: 'Spree::Taxon',
143
+ menu_id: menu,
144
+ parent_id: menu.root.id
145
+ ).first_or_create!
146
+ menu_root_sw.linked_resource_id = sw_taxon.id
147
+ menu_root_sw.save!
148
+
149
+ if menu.location == 'header'
150
+ ## Only For Header Menu
151
+ ##############
152
+ # Categories #
153
+ ##############
154
+ menu_cat_women = Spree::MenuItem.where(
155
+ name: catagories,
156
+ item_type: 'Container',
157
+ code: 'category',
158
+ menu_id: menu,
159
+ parent_id: menu_root_women
160
+ ).first_or_create!
161
+
162
+ menu_cat_men = Spree::MenuItem.where(
163
+ name: catagories,
164
+ item_type: 'Container',
165
+ code: 'category',
166
+ menu_id: menu,
167
+ parent_id: menu_root_men
168
+ ).first_or_create!
169
+
170
+ menu_cat_sw = Spree::MenuItem.where(
171
+ name: catagories,
172
+ item_type: 'Container',
173
+ code: 'category',
174
+ menu_id: menu,
175
+ parent_id: menu_root_sw
176
+ ).first_or_create!
177
+
178
+ ##############
179
+ # Promotions #
180
+ ##############
181
+ menu_promo_women = Spree::MenuItem.where(
182
+ name: 'Promos',
183
+ item_type: 'Container',
184
+ code: 'promo',
185
+ menu_id: menu,
186
+ parent_id: menu_root_women
187
+ ).first_or_create!
188
+
189
+ menu_promo_men = Spree::MenuItem.where(
190
+ name: 'Promos',
191
+ item_type: 'Container',
192
+ code: 'promo',
193
+ menu_id: menu,
194
+ parent_id: menu_root_men
195
+ ).first_or_create!
196
+
197
+ menu_promo_sw = Spree::MenuItem.where(
198
+ name: 'Promos',
199
+ item_type: 'Container',
200
+ code: 'promo',
201
+ menu_id: menu,
202
+ parent_id: menu_root_sw
203
+ ).first_or_create!
204
+
205
+ promos = [menu_promo_women, menu_promo_men, menu_promo_sw]
206
+ else
207
+ promos = []
208
+ end
209
+
210
+ summer = Spree::Taxon.find_by!(permalink: 'categories/new-collection/summer-2021')
211
+ offers = Spree::Taxon.find_by!(permalink: 'categories/special-offers/30-percent-off')
212
+
213
+ #####################
214
+ # Links For: PROMOS #
215
+ #####################
216
+
217
+ promos.each do |promo|
218
+ summer_promo = Spree::MenuItem.where(
219
+ name: promo_a_name,
220
+ subtitle: promo_a_subtitle,
221
+ linked_resource_type: 'Spree::Taxon',
222
+ item_type: 'Link',
223
+ menu_id: menu,
224
+ parent_id: promo
225
+ ).first_or_create!
226
+ summer_promo.linked_resource_id = summer.id
227
+ summer_promo.save!
228
+
229
+ special_offer = Spree::MenuItem.where(
230
+ name: promo_b_name,
231
+ subtitle: promo_b_subtitle,
232
+ linked_resource_type: 'Spree::Taxon',
233
+ item_type: 'Link',
234
+ menu_id: menu,
235
+ parent_id: promo
236
+ ).first_or_create!
237
+ special_offer.linked_resource_id = offers.id
238
+ special_offer.save!
239
+ end
240
+
241
+ #################################
242
+ # Links For: WOMEN / CATAGORIES #
243
+ #################################
244
+
245
+ women_link_parent_id = if menu.location == 'header'
246
+ menu_cat_women
247
+ else
248
+ menu_root_women
249
+ end
250
+
251
+ women_skirts_t = Spree::Taxon.find_by!(permalink: 'categories/women/skirts')
252
+ women_skirts = Spree::MenuItem.where(
253
+ name: skirts,
254
+ linked_resource_type: 'Spree::Taxon',
255
+ item_type: 'Link',
256
+ menu_id: menu,
257
+ parent_id: women_link_parent_id
258
+ ).first_or_create!
259
+ women_skirts.linked_resource_id = women_skirts_t.id
260
+ women_skirts.save!
261
+
262
+ women_dresses_t = Spree::Taxon.find_by!(permalink: 'categories/women/dresses')
263
+ women_dresses = Spree::MenuItem.where(
264
+ name: dresses,
265
+ linked_resource_type: 'Spree::Taxon',
266
+ item_type: 'Link',
267
+ menu_id: menu,
268
+ parent_id: women_link_parent_id
269
+ ).first_or_create!
270
+ women_dresses.linked_resource_id = women_dresses_t.id
271
+ women_dresses.save!
272
+
273
+ women_s_b_t = Spree::Taxon.find_by!(permalink: 'categories/women/shirts-and-blouses')
274
+ women_s_b = Spree::MenuItem.where(
275
+ name: shirts_and_blouses,
276
+ linked_resource_type: 'Spree::Taxon',
277
+ item_type: 'Link',
278
+ menu_id: menu,
279
+ parent_id: women_link_parent_id
280
+ ).first_or_create!
281
+ women_s_b.linked_resource_id = women_s_b_t.id
282
+ women_s_b.save!
283
+
284
+ women_sweaters_t = Spree::Taxon.find_by!(permalink: 'categories/women/sweaters')
285
+ women_sweaters = Spree::MenuItem.where(
286
+ name: sweaters,
287
+ linked_resource_type: 'Spree::Taxon',
288
+ item_type: 'Link',
289
+ menu_id: menu,
290
+ parent_id: women_link_parent_id
291
+ ).first_or_create!
292
+ women_sweaters.linked_resource_id = women_sweaters_t.id
293
+ women_sweaters.save!
294
+
295
+ women_tops_tees_t = Spree::Taxon.find_by!(permalink: 'categories/women/tops-and-t-shirts')
296
+ women_tops_tees = Spree::MenuItem.where(
297
+ name: tops_and_t_shirts,
298
+ linked_resource_type: 'Spree::Taxon',
299
+ item_type: 'Link',
300
+ menu_id: menu,
301
+ parent_id: women_link_parent_id
302
+ ).first_or_create!
303
+ women_tops_tees.linked_resource_id = women_tops_tees_t.id
304
+ women_tops_tees.save!
305
+
306
+ women_j_c_t = Spree::Taxon.find_by!(permalink: 'categories/women/jackets-and-coats')
307
+ women_j_c = Spree::MenuItem.where(
308
+ name: jackets_and_coats,
309
+ linked_resource_type: 'Spree::Taxon',
310
+ item_type: 'Link',
311
+ menu_id: menu,
312
+ parent_id: women_link_parent_id
313
+ ).first_or_create!
314
+ women_j_c.linked_resource_id = women_j_c_t.id
315
+ women_j_c.save!
316
+
317
+ ###############################
318
+ # Links For: MEN / CATAGORIES #
319
+ ###############################
320
+
321
+ men_link_parent_id = if menu.location == 'header'
322
+ menu_cat_men
323
+ else
324
+ menu_root_men
325
+ end
326
+
327
+ men_shirts_t = Spree::Taxon.find_by!(permalink: 'categories/men/shirts')
328
+ men_shirts = Spree::MenuItem.where(
329
+ name: shirts,
330
+ linked_resource_type: 'Spree::Taxon',
331
+ item_type: 'Link',
332
+ menu_id: menu,
333
+ parent_id: men_link_parent_id
334
+ ).first_or_create!
335
+ men_shirts.linked_resource_id = men_shirts_t.id
336
+ men_shirts.save!
337
+
338
+ men_t_shirts_t = Spree::Taxon.find_by!(permalink: 'categories/men/t-shirts')
339
+ men_t_shirts = Spree::MenuItem.where(
340
+ name: t_shirts,
341
+ linked_resource_type: 'Spree::Taxon',
342
+ item_type: 'Link',
343
+ menu_id: menu,
344
+ parent_id: men_link_parent_id
345
+ ).first_or_create!
346
+ men_t_shirts.linked_resource_id = men_t_shirts_t.id
347
+ men_t_shirts.save!
348
+
349
+ men_sweaters_t = Spree::Taxon.find_by!(permalink: 'categories/men/sweaters')
350
+ men_sweaters = Spree::MenuItem.where(
351
+ name: sweaters,
352
+ linked_resource_type: 'Spree::Taxon',
353
+ item_type: 'Link',
354
+ menu_id: menu,
355
+ parent_id: men_link_parent_id
356
+ ).first_or_create!
357
+ men_sweaters.linked_resource_id = men_sweaters_t.id
358
+ men_sweaters.save!
359
+
360
+ men_j_c_t = Spree::Taxon.find_by!(permalink: 'categories/men/jackets-and-coats')
361
+ men_j_c = Spree::MenuItem.where(
362
+ name: jackets_and_coats,
363
+ linked_resource_type: 'Spree::Taxon',
364
+ item_type: 'Link',
365
+ menu_id: menu,
366
+ parent_id: men_link_parent_id
367
+ ).first_or_create!
368
+ men_j_c.linked_resource_id = men_j_c_t.id
369
+ men_j_c.save!
370
+
371
+ ######################################
372
+ # Links For: SPORTSWARE / CATAGORIES #
373
+ ######################################
374
+
375
+ sw_link_parent_id = if menu.location == 'header'
376
+ menu_cat_sw
377
+ else
378
+ menu_root_sw
379
+ end
380
+
381
+ sw_tops_t = Spree::Taxon.find_by!(permalink: 'categories/sportswear/tops')
382
+ sw_tops = Spree::MenuItem.where(
383
+ name: tops,
384
+ linked_resource_type: 'Spree::Taxon',
385
+ item_type: 'Link',
386
+ menu_id: menu,
387
+ parent_id: sw_link_parent_id
388
+ ).first_or_create!
389
+ sw_tops.linked_resource_id = sw_tops_t.id
390
+ sw_tops.save!
391
+
392
+ sw_sweatshirts_t = Spree::Taxon.find_by!(permalink: 'categories/sportswear/sweatshirts')
393
+ sw_sweatshirts = Spree::MenuItem.where(
394
+ name: sweat_shirts,
395
+ linked_resource_type: 'Spree::Taxon',
396
+ item_type: 'Link',
397
+ menu_id: menu,
398
+ parent_id: sw_link_parent_id
399
+ ).first_or_create!
400
+ sw_sweatshirts.linked_resource_id = sw_sweatshirts_t.id
401
+ sw_sweatshirts.save!
402
+
403
+ sw_pants_t = Spree::Taxon.find_by!(permalink: 'categories/sportswear/pants')
404
+ sw_pants = Spree::MenuItem.where(
405
+ name: pants,
406
+ linked_resource_type: 'Spree::Taxon',
407
+ item_type: 'Link',
408
+ menu_id: menu,
409
+ parent_id: sw_link_parent_id
410
+ ).first_or_create!
411
+ sw_pants.linked_resource_id = sw_pants_t.id
412
+ sw_pants.save!
413
+ end
@@ -0,0 +1,17 @@
1
+ Spree::Store.all.each do |store|
2
+ store.supported_locales_list.each do |locale|
3
+ Spree::Menu.where(
4
+ name: 'Main Menu',
5
+ location: 'header',
6
+ store_id: store,
7
+ locale: locale
8
+ ).first_or_create!
9
+
10
+ Spree::Menu.where(
11
+ name: 'Footer Menu',
12
+ location: 'footer',
13
+ store_id: store,
14
+ locale: locale
15
+ ).first_or_create!
16
+ end
17
+ end
@@ -2,16 +2,16 @@ cc_payment_method = Spree::Gateway::Bogus.where(
2
2
  name: 'Credit Card',
3
3
  description: 'Bogus payment gateway.',
4
4
  active: true
5
- ).first_or_create!
5
+ ).first_or_initialize
6
6
 
7
- cc_payment_method.store_ids = Spree::Store.ids
8
- cc_payment_method.save!
7
+ cc_payment_method.stores = Spree::Store.all
8
+ cc_payment_method.save
9
9
 
10
10
  check_paymemt_method = Spree::PaymentMethod::Check.where(
11
11
  name: 'Check',
12
12
  description: 'Pay by check.',
13
13
  active: true
14
- ).first_or_create!
14
+ ).first_or_initialize
15
15
 
16
- check_paymemt_method.store_ids = Spree::Store.ids
17
- check_paymemt_method.save!
16
+ check_paymemt_method.stores = Spree::Store.all
17
+ check_paymemt_method.save
@@ -4,6 +4,7 @@ Spree::Sample.load_sample('tax_categories')
4
4
  Spree::Sample.load_sample('shipping_categories')
5
5
  Spree::Sample.load_sample('option_types')
6
6
  Spree::Sample.load_sample('taxons')
7
+ Spree::Sample.load_sample('stores')
7
8
 
8
9
  default_shipping_category = Spree::ShippingCategory.find_by!(name: 'Default')
9
10
  clothing_tax_category = Spree::TaxCategory.find_by!(name: 'Clothing')
@@ -35,6 +36,7 @@ PRODUCTS.each do |(parent_name, taxon_name, product_name)|
35
36
  product.sku = [taxon_name.delete(' '), product_name.delete(' '), product.price].join('_')
36
37
  product.taxons << parent unless product.taxons.include?(parent)
37
38
  product.taxons << taxon unless product.taxons.include?(taxon)
39
+ product.stores = Spree::Store.all
38
40
  end
39
41
  end
40
42
 
@@ -1,3 +1,4 @@
1
+ Spree::Sample.load_sample('stores')
1
2
  Spree::Sample.load_sample('option_values')
2
3
  Spree::Sample.load_sample('products')
3
4
 
@@ -12,7 +13,9 @@ promotion = Spree::Promotion.where(
12
13
  path: nil,
13
14
  match_policy: 'any',
14
15
  description: ''
15
- ).first_or_create!
16
+ ).first_or_create do |promo|
17
+ promo.stores = Spree::Store.all
18
+ end
16
19
 
17
20
  Spree::PromotionRule.where(
18
21
  promotion_id: promotion.id,
@@ -16,3 +16,5 @@ properties = {
16
16
  properties.each do |name, presentation|
17
17
  Spree::Property.where(name: name, presentation: presentation).first_or_create!
18
18
  end
19
+
20
+ Spree::Property.where(name: %w[brand manufacturer]).update(filterable: true)
data/db/samples/stores.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  default_store = Spree::Store.default
2
2
  default_store.checkout_zone = Spree::Zone.find_by(name: 'North America')
3
- default_store.default_country = Spree::Country.default
3
+ default_store.default_country = Spree::Country.find_by(iso: 'US')
4
4
  default_store.supported_currencies = 'CAD,USD'
5
5
  default_store.supported_locales = 'en,fr'
6
6
  default_store.url = Rails.env.development? ? 'localhost:3000' : 'demo.spreecommerce.org'
@@ -1,5 +1,10 @@
1
+ Spree::Sample.load_sample('stores')
2
+
1
3
  taxonomies = [
2
- { name: I18n.t('spree.taxonomy_categories_name') }
4
+ {
5
+ name: I18n.t('spree.taxonomy_categories_name'),
6
+ store: Spree::Store.default
7
+ }
3
8
  ]
4
9
 
5
10
  taxonomies.each do |taxonomy_attrs|
data/db/samples/taxons.rb CHANGED
@@ -17,7 +17,6 @@ categories_taxon = Spree::Taxon.where(name: I18n.t('spree.taxonomy_categories_na
17
17
 
18
18
  TAXON_NAMES.each do |taxon_name|
19
19
  taxon = categories_taxon.children.where(name: taxon_name).first_or_create!
20
- taxon.permalink = taxon.permalink.gsub('categories/', '')
21
20
  taxon.taxonomy = categories
22
21
  taxon.save!
23
22
  end
@@ -25,31 +24,26 @@ end
25
24
  CHILDREN_TAXON_NAMES.each do |(parent_name, taxon_name)|
26
25
  parent = Spree::Taxon.where(name: parent_name).first
27
26
  taxon = parent.children.where(name: taxon_name).first_or_create!
28
- taxon.permalink = taxon.permalink.gsub('categories/', '')
29
27
  taxon.taxonomy = categories
30
28
  taxon.save!
31
29
  end
32
30
 
33
31
  taxon = categories_taxon.children.where(name: 'New', permalink: 'newest').first_or_create!
34
- taxon.permalink = taxon.permalink.gsub('categories/', '')
35
32
  taxon.taxonomy = categories
36
33
  taxon.save!
37
34
 
38
35
  ADDITIONAL_TAXONS.each do |taxon_name|
39
36
  taxon = categories_taxon.children.where(name: taxon_name).first_or_create!
40
- taxon.permalink = taxon.permalink.gsub('categories/', '')
41
37
  taxon.taxonomy = categories
42
38
  taxon.save!
43
39
  end
44
40
 
45
41
  SPECIAL_TAXONS.each do |parent_name, taxon_name|
46
42
  parent = categories_taxon.children.where(name: parent_name.to_s).first_or_create!
47
- parent.permalink = parent.permalink.gsub('categories/', '')
48
43
  parent.taxonomy = categories
49
44
  parent.save!
50
45
 
51
46
  taxon = parent.children.where(name: taxon_name).first_or_create!
52
- taxon.permalink = taxon.permalink.gsub('categories/', '')
53
47
  taxon.taxonomy = categories
54
48
  taxon.save!
55
49
  end
data/lib/spree_sample.rb CHANGED
@@ -32,6 +32,13 @@ module SpreeSample
32
32
  Spree::Sample.load_sample('reimbursements')
33
33
  Spree::Sample.load_sample('return_authorization_reasons')
34
34
  Spree::Sample.load_sample('stores')
35
+
36
+ Spree::Sample.load_sample('cms_standard_pages')
37
+ Spree::Sample.load_sample('cms_feature_pages')
38
+ Spree::Sample.load_sample('cms_homepages')
39
+ Spree::Sample.load_sample('cms_sections')
40
+ Spree::Sample.load_sample('menus')
41
+ Spree::Sample.load_sample('menu_items')
35
42
  end
36
43
  end
37
44
  end
data/spree_sample.gemspec CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
7
7
  s.version = Spree.version
8
8
  s.authors = ['Sean Schofield', 'Spark Solutions']
9
9
  s.email = 'hello@spreecommerce.org'
10
- s.summary = 'Sample data (including images) for use with Spree.'
11
- s.description = 'Required dependency for Spree'
10
+ s.summary = 'Sample data for Spree Commerce'
11
+ s.description = 'Optional package containing example data of products, stores, shipping methods, categories and others to quickly setup a demo Spree store'
12
12
  s.homepage = 'https://spreecommerce.org'
13
13
  s.license = 'BSD-3-Clause'
14
14
 
@@ -23,6 +23,6 @@ Gem::Specification.new do |s|
23
23
  s.require_path = 'lib'
24
24
  s.requirements << 'none'
25
25
 
26
- s.add_dependency 'spree_core', s.version
26
+ s.add_dependency 'spree_core', ">= #{s.version}"
27
27
  s.add_dependency 'ffaker', '~> 2.9'
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_sample
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.5
4
+ version: 4.3.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-05-31 00:00:00.000000000 Z
12
+ date: 2021-08-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: spree_core
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 4.2.5
20
+ version: 4.3.0.rc1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 4.2.5
27
+ version: 4.3.0.rc1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: ffaker
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,8 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '2.9'
42
- description: Required dependency for Spree
42
+ description: Optional package containing example data of products, stores, shipping
43
+ methods, categories and others to quickly setup a demo Spree store
43
44
  email: hello@spreecommerce.org
44
45
  executables: []
45
46
  extensions: []
@@ -51,6 +52,10 @@ files:
51
52
  - db/samples.rb
52
53
  - db/samples/addresses.rb
53
54
  - db/samples/adjustments.rb
55
+ - db/samples/cms_feature_pages.rb
56
+ - db/samples/cms_homepages.rb
57
+ - db/samples/cms_sections.rb
58
+ - db/samples/cms_standard_pages.rb
54
59
  - db/samples/images/apache_baseball.png
55
60
  - db/samples/images/ror_bag.jpeg
56
61
  - db/samples/images/ror_baseball.jpeg
@@ -83,6 +88,8 @@ files:
83
88
  - db/samples/images/spree_stein_back.jpeg
84
89
  - db/samples/images/spree_tote_back.jpeg
85
90
  - db/samples/images/spree_tote_front.jpeg
91
+ - db/samples/menu_items.rb
92
+ - db/samples/menus.rb
86
93
  - db/samples/option_types.rb
87
94
  - db/samples/option_values.rb
88
95
  - db/samples/orders.rb
@@ -115,9 +122,9 @@ licenses:
115
122
  - BSD-3-Clause
116
123
  metadata:
117
124
  bug_tracker_uri: https://github.com/spree/spree/issues
118
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.5
125
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.3.0.rc1
119
126
  documentation_uri: https://guides.spreecommerce.org/
120
- source_code_uri: https://github.com/spree/spree/tree/v4.2.5
127
+ source_code_uri: https://github.com/spree/spree/tree/v4.3.0.rc1
121
128
  post_install_message:
122
129
  rdoc_options: []
123
130
  require_paths:
@@ -129,13 +136,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
136
  version: '0'
130
137
  required_rubygems_version: !ruby/object:Gem::Requirement
131
138
  requirements:
132
- - - ">="
139
+ - - ">"
133
140
  - !ruby/object:Gem::Version
134
- version: '0'
141
+ version: 1.3.1
135
142
  requirements:
136
143
  - none
137
144
  rubygems_version: 3.2.3
138
145
  signing_key:
139
146
  specification_version: 4
140
- summary: Sample data (including images) for use with Spree.
147
+ summary: Sample data for Spree Commerce
141
148
  test_files: []