diff --git a/theme_shopping/README.rst b/theme_shopping/README.rst
new file mode 100755
index 000000000..96668cb61
--- /dev/null
+++ b/theme_shopping/README.rst
@@ -0,0 +1,73 @@
+.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg
+ :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+
+Theme Shopping
+==============
+Theme Shopping module provide attractive and unique front end theme mainly
+suitable for eCommerce website
+
+Configuration
+=============
+Top Deal product Flow:
+ - Enabling and Managing 'Top Deal' for a Product:
+ * Navigate to: Products -> Top Deal
+ * Enable the 'Top Deal' boolean field for the desired product
+
+ - Setting Deal Details
+ * Once enabled, new fields appear under Products -> General Information:
+ - Offer Price
+ - Planned Date
+ * Set the offer price
+ * Select the time period for the event
+ * Click the 'Apply' button to confirm the date
+
+ - Deal Visibility and Duration
+ * The product is added to the Top Deal carousel for the specified period
+ * When the time period ends, the product is automatically removed from the carousel
+
+ - Product Detail Page Display
+ * The Top Deal offer price is shown
+ * The original price is displayed with a strikethrough
+
+Winter Collections :
+ Adding Products to the Winter Collection:
+ - Navigate to: Products -> General Information -> Category
+ - Under the "Category" section, select "Winter Collection" from the product category options.
+ - Add the desired products to this category.
+ - These products will be available in the Winter Collection snippets.
+
+License
+-------
+General Public License, Version 3 (AGPL v3).
+(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
+
+Company
+-------
+* `Cybrosys Techno Solutions `__
+
+Credits
+-------
+Developer: (V17) Sabeel B, V(17) Shikhil Raj
+Contact: odoo@cybrosys.com
+
+Contacts
+--------
+* Mail Contact : odoo@cybrosys.com
+* Website : https://cybrosys.com
+
+Bug Tracker
+-----------
+Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
+
+Maintainer
+==========
+.. image:: https://cybrosys.com/images/logo.png
+ :target: https://cybrosys.com
+This module is maintained by Cybrosys Technologies.
+
+For support and more information, please visit `Our Website `__
+
+Further information
+===================
+HTML Description: ``__
diff --git a/theme_shopping/__init__.py b/theme_shopping/__init__.py
new file mode 100644
index 000000000..06ad4f1de
--- /dev/null
+++ b/theme_shopping/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from . import controllers
+from . import models
diff --git a/theme_shopping/__manifest__.py b/theme_shopping/__manifest__.py
new file mode 100644
index 000000000..9ad5bc10e
--- /dev/null
+++ b/theme_shopping/__manifest__.py
@@ -0,0 +1,82 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+{
+ 'name': 'Theme Shopping',
+ 'version': '17.0.1.0.0',
+ 'category': 'Theme/eCommerce',
+ 'summary': "Theme Shopping is an attractive and modern eCommerce Website "
+ "theme",
+ 'description': "Theme Shopping is new kind of Theme.The theme is very "
+ "user-friendly"
+ "and suitable for your eCommerce website with blog",
+ 'author': 'Cybrosys Techno Solutions',
+ 'company': 'Cybrosys Techno Solutions',
+ 'maintainer': 'Cybrosys Techno Solutions',
+ 'website': "https://www.cybrosys.com",
+ 'depends': ['sale_management', 'website_blog', 'website_sale_wishlist',
+ 'website_sale',
+ 'website_sale_comparison', 'website_mass_mailing'],
+ 'data': [
+ 'views/header_templates.xml',
+ 'views/footer_templates.xml',
+ 'views/about_us_views.xml',
+ 'views/blog_templates.xml',
+ 'views/snippets/frequently_asked.xml',
+ 'views/snippets/our_team.xml',
+ 'views/snippets/testimonial_snippet.xml',
+ 'views/snippets/offers.xml',
+ 'views/snippets/winter_collections.xml',
+ 'views/snippets/price_collection.xml',
+ 'views/snippets/subscription.xml',
+ 'views/shop_templates.xml',
+ 'views/snippets.xml',
+ 'views/product_template_views.xml',
+ 'views/snippets/top_deal_carousal_templates.xml',
+ 'views/website_sale_wishlist_template.xml',
+ 'data/ir_cron.xml',
+ ],
+ 'demo': ['data/product_category_data.xml'],
+ 'assets': {
+ 'web.assets_frontend': [
+ "theme_shopping/static/src/js/top_deal_carousel/"
+ "top_deal_carousal.js",
+ "theme_shopping/static/src/js/winter_collection_carousel/"
+ "winter_products_carousel.js",
+ "theme_shopping/static/src/js/testimonial.js",
+ "theme_shopping/static/src/js/subscription/subscription.js",
+ "theme_shopping/static/src/js/snippet_carousel.js",
+ "theme_shopping/static/src/css/main.css",
+ "theme_shopping/static/src/css/owl.carousel.min.css",
+ "theme_shopping/static/src/css/owl.theme.default.min.css",
+ "theme_shopping/static/src/js/owl.carousel.js",
+ "theme_shopping/static/src/js/owl.carousel.min.js",
+ ],
+ },
+ 'images': [
+ 'static/description/banner.jpg',
+ 'static/description/theme_screenshot.jpg',
+ ],
+ 'license': 'AGPL-3',
+ 'installable': True,
+ 'auto_install': False,
+ 'application': False,
+}
diff --git a/theme_shopping/controllers/__init__.py b/theme_shopping/controllers/__init__.py
new file mode 100644
index 000000000..a5134c92d
--- /dev/null
+++ b/theme_shopping/controllers/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from . import dynamic_snippets
+from . import theme_shopping
diff --git a/theme_shopping/controllers/dynamic_snippets.py b/theme_shopping/controllers/dynamic_snippets.py
new file mode 100644
index 000000000..4139d9ada
--- /dev/null
+++ b/theme_shopping/controllers/dynamic_snippets.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import http
+from odoo.http import request
+
+
+class DynamicSnippets(http.Controller):
+ """This class is for the getting values for dynamic product snippets
+ """
+ @http.route('/top_deal_product_snippet', auth='public', type='json',
+ website=True)
+ def get_best_products(self):
+ """Controller to reflect chosen products in 'Top Deal'
+ snippet"""
+ products = []
+ products_search_read = request.env['product.product'].with_user(
+ 1).search_read(
+ [('is_published', '=', True),
+ ('is_top_deal_product', '=', True),
+ ('ready_to_top_deal', '=', True)],
+ ['name', 'image_1920', 'website_id',
+ 'sales_count', 'list_price','actual_price', 'offer_price', 'product_tmpl_id', 'website_url'])
+ unique_products = []
+ seen_tmpl_ids = set()
+ for product in products_search_read:
+ if product['product_tmpl_id'][0] not in seen_tmpl_ids:
+ unique_products.append(product)
+ seen_tmpl_ids.add(product['product_tmpl_id'][0])
+ for product in unique_products:
+ products.append(product)
+ response = http.Response(
+ template='theme_shopping.best_deal_product_carousel_snippet',
+ qcontext={'products': products})
+ return response.render()
+
+ @http.route('/get_winter_product_snippet', auth='public', type='json',
+ website=True)
+ def get_winter_products(self):
+ """Controller to reflect chosen products in 'Winter Collection'
+ snippet"""
+ products = []
+ products_search_read = request.env['product.product'].with_user(
+ 1).search_read(
+ [('is_published', '=', True),
+ ('categ_id', '=', request.env.ref(
+ 'theme_shopping.product_category_winter').id)],
+ ['name', 'image_1920', 'website_id',
+ 'sales_count', 'list_price', 'website_url'])
+ for product in products_search_read:
+ products.append(product)
+ response = http.Response(
+ template='theme_shopping.winter_product_carousel_snippet',
+ qcontext={'products': products})
+ return response.render()
diff --git a/theme_shopping/controllers/theme_shopping.py b/theme_shopping/controllers/theme_shopping.py
new file mode 100644
index 000000000..e4a4332bf
--- /dev/null
+++ b/theme_shopping/controllers/theme_shopping.py
@@ -0,0 +1,100 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import http, fields
+from odoo.http import request
+from odoo.addons.payment import utils as payment_utils
+from odoo.tools.json import scriptsafe as json_scriptsafe
+from odoo.addons.website_sale.controllers import main
+
+
+class WebsiteSale(main.WebsiteSale):
+ """Imported and recalled WebsiteSale class to Patch cart_update_json()"""
+ @http.route()
+ def cart_update_json(
+ self, product_id, line_id=None, add_qty=None, set_qty=None,
+ display=True,
+ product_custom_attribute_values=None,
+ no_variant_attribute_values=None, **kw
+ ):
+ """
+ This route is called :
+ - When changing quantity from the cart.
+ - When adding a product from the wishlist.
+ - When adding a product to cart on the same page (without redirection).
+ """
+ order = request.website.sale_get_order(force_create=True)
+ if order.state != 'draft':
+ request.website.sale_reset()
+ if kw.get('force_create'):
+ order = request.website.sale_get_order(force_create=True)
+ else:
+ return {}
+
+ if product_custom_attribute_values:
+ product_custom_attribute_values = json_scriptsafe.loads(
+ product_custom_attribute_values)
+
+ if no_variant_attribute_values:
+ no_variant_attribute_values = json_scriptsafe.loads(
+ no_variant_attribute_values)
+ values = order._cart_update(
+ product_id=product_id,
+ line_id=line_id,
+ add_qty=add_qty,
+ set_qty=set_qty,
+ product_custom_attribute_values=product_custom_attribute_values,
+ no_variant_attribute_values=no_variant_attribute_values,
+ **kw
+ )
+ for line in order.order_line.filtered(
+ lambda rec: rec.product_id.is_top_deal_product):
+ line.update({"price_unit": line.product_id.offer_price})
+ values['notification_info'] = self._get_cart_notification_information(
+ order, [values['line_id']])
+ values['notification_info']['warning'] = values.pop('warning', '')
+ request.session['website_sale_cart_quantity'] = order.cart_quantity
+ if not order.cart_quantity:
+ request.website.sale_reset()
+ return values
+ values['cart_quantity'] = order.cart_quantity
+ values['minor_amount'] = payment_utils.to_minor_currency_units(
+ order.amount_total, order.currency_id
+ ),
+ if not display:
+ return values
+
+ values['cart_ready'] = order._is_cart_ready()
+ values['website_sale.cart_lines'] = request.env[
+ 'ir.ui.view']._render_template(
+ "website_sale.cart_lines", {
+ 'website_sale_order': order,
+ 'date': fields.Date.today(),
+ 'suggested_products': order._cart_accessories()
+ }
+ )
+ values['website_sale.total'] = request.env[
+ 'ir.ui.view']._render_template(
+ "website_sale.total", {
+ 'website_sale_order': order,
+ }
+ )
+ return values
diff --git a/theme_shopping/data/ir_cron.xml b/theme_shopping/data/ir_cron.xml
new file mode 100644
index 000000000..95e9a7e7a
--- /dev/null
+++ b/theme_shopping/data/ir_cron.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Top deal Offer Checking
+
+ code
+ model.check_top_deal()
+
+ 1
+ days
+ -1
+
+
+
diff --git a/theme_shopping/data/product_category_data.xml b/theme_shopping/data/product_category_data.xml
new file mode 100644
index 000000000..ae36d01db
--- /dev/null
+++ b/theme_shopping/data/product_category_data.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+ Winter Collection
+
+
diff --git a/theme_shopping/doc/RELEASE_NOTES.md b/theme_shopping/doc/RELEASE_NOTES.md
new file mode 100755
index 000000000..f814210ff
--- /dev/null
+++ b/theme_shopping/doc/RELEASE_NOTES.md
@@ -0,0 +1,6 @@
+## Module
+
+#### 25.10.2024
+#### Version 17.0.1.0.0
+#### ADD
+- Initial commit for Theme Shopping
diff --git a/theme_shopping/models/__init__.py b/theme_shopping/models/__init__.py
new file mode 100644
index 000000000..720cebaea
--- /dev/null
+++ b/theme_shopping/models/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from . import product_template
+from . import product_wishlist
+from . import theme_utils
diff --git a/theme_shopping/models/product_template.py b/theme_shopping/models/product_template.py
new file mode 100644
index 000000000..7ba2b8631
--- /dev/null
+++ b/theme_shopping/models/product_template.py
@@ -0,0 +1,103 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import api, fields, models
+from odoo.exceptions import ValidationError
+
+class ProductTemplate(models.Model):
+ _inherit = 'product.template'
+
+ is_top_deal_product = fields.Boolean(string="Top Deal Product",
+ help="Whether the product is listed "
+ "in the top deal product",
+ store=True)
+ offer_price = fields.Float(string="Offer Price",
+ help="Set an offer price to price to "
+ "display on website")
+ time_period_from = fields.Date(string="From Date",
+ help="From date for offer price visibility",
+ default=lambda self: fields.Date.today())
+ time_period_end = fields.Date(string="End Date",
+ help="End date for offer price visibility",
+ default=lambda self: fields.Date.today())
+ ready_to_top_deal = fields.Boolean(string="Ready to Top Deal",
+ help="Determine whether the product is ready to be featured as a top deal.")
+ actual_price = fields.Monetary(string="Actual Price")
+
+ def _get_combination_info(self, combination=False, product_id=False,
+ add_qty=1, parent_combination=False,
+ only_template=False):
+ """Return the variant info based on its combination.
+ See `_get_combination_info` for more information.
+ """
+ combination_info = super()._get_combination_info(
+ combination=combination, product_id=product_id, add_qty=add_qty,
+ parent_combination=parent_combination, only_template=only_template)
+ combination_info['offer_price'] = self.offer_price
+ return combination_info
+
+ @api.onchange('is_top_deal_product')
+ def onchange_is_top_deal_product(self):
+ """Set the offer price as new sale price and old sales price saves
+ into new field """
+ if self.is_top_deal_product:
+ self.actual_price = self.list_price
+ self.time_period_from = fields.Date.today()
+ self.time_period_end = fields.Date.today()
+ config = self.env['res.config.settings'].create(
+ {'group_product_price_comparison': True})
+ config.execute()
+ else:
+ self.list_price = self.actual_price
+ self.compare_list_price = 0.0
+ self.ready_to_top_deal = False
+
+ def check_top_deal(self):
+ """Check the timeframe of the top deal offer."""
+ data = self.env['product.template'].search(
+ [('is_top_deal_product', '=', 'True')])
+ today = fields.Date.today()
+ for rec in data:
+ if today > rec.time_period_end:
+ rec.write({'ready_to_top_deal': False,
+ 'list_price': rec.actual_price,
+ 'compare_list_price': 0.0
+ })
+
+ elif rec.time_period_from <= today <= rec.time_period_end:
+ if rec.offer_price < rec.actual_price:
+ rec.write({'ready_to_top_deal': True,
+ 'list_price': rec.offer_price,
+ 'compare_list_price': rec.actual_price})
+ else:
+ rec.write({'ready_to_top_deal': True,
+ 'list_price': rec.actual_price,
+ 'compare_list_price': 0.0
+ })
+ elif rec.time_period_from > rec.time_period_end:
+ rec.write({'ready_to_top_deal': False})
+ raise ValidationError("From date should be less than end date")
+ else:
+ rec.write({'ready_to_top_deal': False})
+
+ def apply_top_deal_time(self):
+ """Method for set time period for top deal products."""
+ self.check_top_deal()
diff --git a/theme_shopping/models/product_wishlist.py b/theme_shopping/models/product_wishlist.py
new file mode 100644
index 000000000..03fe223d3
--- /dev/null
+++ b/theme_shopping/models/product_wishlist.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import api, models
+
+
+class ProductWishlist(models.Model):
+ """Inherited product_wishlist to overwrite a function"""
+ _inherit = 'product.wishlist'
+
+ @api.model
+ def _add_to_wishlist(self, pricelist_id, currency_id, website_id, price,
+ product_id, partner_id=False):
+ """Over-writing the function to check conditions"""
+ existing_product = self.env['product.wishlist'].search_count([
+ ('product_id', '=', product_id)])
+ if existing_product == 1:
+ return False
+ else:
+ wish = self.env['product.wishlist'].create({
+ 'partner_id': partner_id,
+ 'product_id': product_id,
+ 'currency_id': currency_id,
+ 'pricelist_id': pricelist_id,
+ 'price': price,
+ 'website_id': website_id,
+ })
+ total_wish = self.env['product.wishlist'].search_count([])
+ return wish, total_wish
diff --git a/theme_shopping/models/theme_utils.py b/theme_shopping/models/theme_utils.py
new file mode 100644
index 000000000..6f54444f3
--- /dev/null
+++ b/theme_shopping/models/theme_utils.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import api, models
+
+
+class ThemeUtils(models.AbstractModel):
+ """ Class for enable and disable templates when using theme shopping"""
+ _inherit = 'theme.utils'
+
+ @api.model
+ def _theme_shopping_post_copy(self, mod):
+ """ Enable and disable templates when using coffee shop theme """
+ self.enable_view("website_sale.products_categories")
+ self.enable_view("website_sale.products_description")
+ self.enable_view("website_sale.products_design_card")
+ self.enable_view("website_sale.products_add_to_cart")
+ self.enable_view("website_sale.product_comment")
+ self.enable_view("website_sale.option_collapse_products_categories")
+ self.enable_view("website_sale.product_buy_now")
+ self.disable_view("website_sale.products_categories_top")
+ self.disable_view("website_sale.products_design_grid")
+ self.disable_view("website_sale_comparison.add_to_compare")
diff --git a/theme_shopping/static/description/banner.jpg b/theme_shopping/static/description/banner.jpg
new file mode 100644
index 000000000..497da36ea
Binary files /dev/null and b/theme_shopping/static/description/banner.jpg differ
diff --git a/theme_shopping/static/description/icon.png b/theme_shopping/static/description/icon.png
new file mode 100644
index 000000000..fe4d429ad
Binary files /dev/null and b/theme_shopping/static/description/icon.png differ
diff --git a/theme_shopping/static/description/images/1.png b/theme_shopping/static/description/images/1.png
new file mode 100644
index 000000000..0d8592be2
Binary files /dev/null and b/theme_shopping/static/description/images/1.png differ
diff --git a/theme_shopping/static/description/images/1_mob.png b/theme_shopping/static/description/images/1_mob.png
new file mode 100644
index 000000000..80933b396
Binary files /dev/null and b/theme_shopping/static/description/images/1_mob.png differ
diff --git a/theme_shopping/static/description/images/2.1_mob.png b/theme_shopping/static/description/images/2.1_mob.png
new file mode 100644
index 000000000..24fe3fd25
Binary files /dev/null and b/theme_shopping/static/description/images/2.1_mob.png differ
diff --git a/theme_shopping/static/description/images/2.png b/theme_shopping/static/description/images/2.png
new file mode 100644
index 000000000..4f1a1b8ea
Binary files /dev/null and b/theme_shopping/static/description/images/2.png differ
diff --git a/theme_shopping/static/description/images/2_mob.png b/theme_shopping/static/description/images/2_mob.png
new file mode 100644
index 000000000..63a268998
Binary files /dev/null and b/theme_shopping/static/description/images/2_mob.png differ
diff --git a/theme_shopping/static/description/images/About-us-mobile-temp.png b/theme_shopping/static/description/images/About-us-mobile-temp.png
new file mode 100644
index 000000000..522edccf0
Binary files /dev/null and b/theme_shopping/static/description/images/About-us-mobile-temp.png differ
diff --git a/theme_shopping/static/description/images/Edu.png b/theme_shopping/static/description/images/Edu.png
new file mode 100644
index 000000000..158b36a16
Binary files /dev/null and b/theme_shopping/static/description/images/Edu.png differ
diff --git a/theme_shopping/static/description/images/FAQ.png b/theme_shopping/static/description/images/FAQ.png
new file mode 100644
index 000000000..547db3e04
Binary files /dev/null and b/theme_shopping/static/description/images/FAQ.png differ
diff --git a/theme_shopping/static/description/images/POS.png b/theme_shopping/static/description/images/POS.png
new file mode 100644
index 000000000..3c7f1cfe9
Binary files /dev/null and b/theme_shopping/static/description/images/POS.png differ
diff --git a/theme_shopping/static/description/images/Production.png b/theme_shopping/static/description/images/Production.png
new file mode 100644
index 000000000..e88dcd0d6
Binary files /dev/null and b/theme_shopping/static/description/images/Production.png differ
diff --git a/theme_shopping/static/description/images/about.png b/theme_shopping/static/description/images/about.png
new file mode 100644
index 000000000..f74a1715c
Binary files /dev/null and b/theme_shopping/static/description/images/about.png differ
diff --git a/theme_shopping/static/description/images/about_mob.png b/theme_shopping/static/description/images/about_mob.png
new file mode 100644
index 000000000..9f019c7e1
Binary files /dev/null and b/theme_shopping/static/description/images/about_mob.png differ
diff --git a/theme_shopping/static/description/images/about_us.png b/theme_shopping/static/description/images/about_us.png
new file mode 100644
index 000000000..0c9067265
Binary files /dev/null and b/theme_shopping/static/description/images/about_us.png differ
diff --git a/theme_shopping/static/description/images/arrow-black.png b/theme_shopping/static/description/images/arrow-black.png
new file mode 100644
index 000000000..3fd6da801
Binary files /dev/null and b/theme_shopping/static/description/images/arrow-black.png differ
diff --git a/theme_shopping/static/description/images/banner-img.png b/theme_shopping/static/description/images/banner-img.png
new file mode 100644
index 000000000..168ac4049
Binary files /dev/null and b/theme_shopping/static/description/images/banner-img.png differ
diff --git a/theme_shopping/static/description/images/blog.png b/theme_shopping/static/description/images/blog.png
new file mode 100644
index 000000000..b7d165eb5
Binary files /dev/null and b/theme_shopping/static/description/images/blog.png differ
diff --git a/theme_shopping/static/description/images/blog_2_mob.png b/theme_shopping/static/description/images/blog_2_mob.png
new file mode 100644
index 000000000..1c259c1b2
Binary files /dev/null and b/theme_shopping/static/description/images/blog_2_mob.png differ
diff --git a/theme_shopping/static/description/images/blog_mob-temp.png b/theme_shopping/static/description/images/blog_mob-temp.png
new file mode 100644
index 000000000..547412d66
Binary files /dev/null and b/theme_shopping/static/description/images/blog_mob-temp.png differ
diff --git a/theme_shopping/static/description/images/blog_mob1.png b/theme_shopping/static/description/images/blog_mob1.png
new file mode 100644
index 000000000..5ef790727
Binary files /dev/null and b/theme_shopping/static/description/images/blog_mob1.png differ
diff --git a/theme_shopping/static/description/images/contact.png b/theme_shopping/static/description/images/contact.png
new file mode 100644
index 000000000..7df8c6063
Binary files /dev/null and b/theme_shopping/static/description/images/contact.png differ
diff --git a/theme_shopping/static/description/images/dyn_snippet_1.png b/theme_shopping/static/description/images/dyn_snippet_1.png
new file mode 100644
index 000000000..130134f64
Binary files /dev/null and b/theme_shopping/static/description/images/dyn_snippet_1.png differ
diff --git a/theme_shopping/static/description/images/dyn_snippet_2.png b/theme_shopping/static/description/images/dyn_snippet_2.png
new file mode 100644
index 000000000..b76a1c13c
Binary files /dev/null and b/theme_shopping/static/description/images/dyn_snippet_2.png differ
diff --git a/theme_shopping/static/description/images/home-mobile-2.png b/theme_shopping/static/description/images/home-mobile-2.png
new file mode 100644
index 000000000..1aa94bb33
Binary files /dev/null and b/theme_shopping/static/description/images/home-mobile-2.png differ
diff --git a/theme_shopping/static/description/images/home-mobile-3.png b/theme_shopping/static/description/images/home-mobile-3.png
new file mode 100644
index 000000000..0009216ca
Binary files /dev/null and b/theme_shopping/static/description/images/home-mobile-3.png differ
diff --git a/theme_shopping/static/description/images/home.png b/theme_shopping/static/description/images/home.png
new file mode 100644
index 000000000..9b68cc84e
Binary files /dev/null and b/theme_shopping/static/description/images/home.png differ
diff --git a/theme_shopping/static/description/images/icon-Compatibility-with-plugins.png b/theme_shopping/static/description/images/icon-Compatibility-with-plugins.png
new file mode 100644
index 000000000..2c0c4015e
Binary files /dev/null and b/theme_shopping/static/description/images/icon-Compatibility-with-plugins.png differ
diff --git a/theme_shopping/static/description/images/icon-Fast-loading-times.png b/theme_shopping/static/description/images/icon-Fast-loading-times.png
new file mode 100644
index 000000000..d758dea65
Binary files /dev/null and b/theme_shopping/static/description/images/icon-Fast-loading-times.png differ
diff --git a/theme_shopping/static/description/images/icon-One-Click-Installation.png b/theme_shopping/static/description/images/icon-One-Click-Installation.png
new file mode 100644
index 000000000..189cc7cbb
Binary files /dev/null and b/theme_shopping/static/description/images/icon-One-Click-Installation.png differ
diff --git a/theme_shopping/static/description/images/icon-Responsive-design.png b/theme_shopping/static/description/images/icon-Responsive-design.png
new file mode 100644
index 000000000..963329a0a
Binary files /dev/null and b/theme_shopping/static/description/images/icon-Responsive-design.png differ
diff --git a/theme_shopping/static/description/images/icon-Up-to-date-development.png b/theme_shopping/static/description/images/icon-Up-to-date-development.png
new file mode 100644
index 000000000..892a490e8
Binary files /dev/null and b/theme_shopping/static/description/images/icon-Up-to-date-development.png differ
diff --git a/theme_shopping/static/description/images/icon-design.png b/theme_shopping/static/description/images/icon-design.png
new file mode 100644
index 000000000..bd578f6d1
Binary files /dev/null and b/theme_shopping/static/description/images/icon-design.png differ
diff --git a/theme_shopping/static/description/images/logo-cybro.png b/theme_shopping/static/description/images/logo-cybro.png
new file mode 100644
index 000000000..ecf9b0134
Binary files /dev/null and b/theme_shopping/static/description/images/logo-cybro.png differ
diff --git a/theme_shopping/static/description/images/main.png b/theme_shopping/static/description/images/main.png
new file mode 100644
index 000000000..de6471986
Binary files /dev/null and b/theme_shopping/static/description/images/main.png differ
diff --git a/theme_shopping/static/description/images/main_mob.png b/theme_shopping/static/description/images/main_mob.png
new file mode 100644
index 000000000..22a9caf25
Binary files /dev/null and b/theme_shopping/static/description/images/main_mob.png differ
diff --git a/theme_shopping/static/description/images/members.png b/theme_shopping/static/description/images/members.png
new file mode 100644
index 000000000..089b68ca0
Binary files /dev/null and b/theme_shopping/static/description/images/members.png differ
diff --git a/theme_shopping/static/description/images/odoo-consultency.png b/theme_shopping/static/description/images/odoo-consultency.png
new file mode 100644
index 000000000..bf2d21531
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-consultency.png differ
diff --git a/theme_shopping/static/description/images/odoo-customization.png b/theme_shopping/static/description/images/odoo-customization.png
new file mode 100644
index 000000000..a51a84de4
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-customization.png differ
diff --git a/theme_shopping/static/description/images/odoo-developer.png b/theme_shopping/static/description/images/odoo-developer.png
new file mode 100644
index 000000000..b2272be9e
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-developer.png differ
diff --git a/theme_shopping/static/description/images/odoo-implement.png b/theme_shopping/static/description/images/odoo-implement.png
new file mode 100644
index 000000000..ab975c139
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-implement.png differ
diff --git a/theme_shopping/static/description/images/odoo-intergration.png b/theme_shopping/static/description/images/odoo-intergration.png
new file mode 100644
index 000000000..82b73a193
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-intergration.png differ
diff --git a/theme_shopping/static/description/images/odoo-licencing.png b/theme_shopping/static/description/images/odoo-licencing.png
new file mode 100644
index 000000000..fe24f14c4
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-licencing.png differ
diff --git a/theme_shopping/static/description/images/odoo-logo.png b/theme_shopping/static/description/images/odoo-logo.png
new file mode 100644
index 000000000..36960c38b
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-logo.png differ
diff --git a/theme_shopping/static/description/images/odoo-migration.png b/theme_shopping/static/description/images/odoo-migration.png
new file mode 100644
index 000000000..03ac43d05
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-migration.png differ
diff --git a/theme_shopping/static/description/images/odoo-support.png b/theme_shopping/static/description/images/odoo-support.png
new file mode 100644
index 000000000..6d481032c
Binary files /dev/null and b/theme_shopping/static/description/images/odoo-support.png differ
diff --git a/theme_shopping/static/description/images/offfers.png b/theme_shopping/static/description/images/offfers.png
new file mode 100644
index 000000000..952330d56
Binary files /dev/null and b/theme_shopping/static/description/images/offfers.png differ
diff --git a/theme_shopping/static/description/images/shop-mob.png b/theme_shopping/static/description/images/shop-mob.png
new file mode 100644
index 000000000..ee6fb9e18
Binary files /dev/null and b/theme_shopping/static/description/images/shop-mob.png differ
diff --git a/theme_shopping/static/description/images/shop_mob.png b/theme_shopping/static/description/images/shop_mob.png
new file mode 100644
index 000000000..12f6c8c06
Binary files /dev/null and b/theme_shopping/static/description/images/shop_mob.png differ
diff --git a/theme_shopping/static/description/images/shop_mob_1.png b/theme_shopping/static/description/images/shop_mob_1.png
new file mode 100644
index 000000000..5d1b09827
Binary files /dev/null and b/theme_shopping/static/description/images/shop_mob_1.png differ
diff --git a/theme_shopping/static/description/images/shop_mob_2.png b/theme_shopping/static/description/images/shop_mob_2.png
new file mode 100644
index 000000000..8a8d9420e
Binary files /dev/null and b/theme_shopping/static/description/images/shop_mob_2.png differ
diff --git a/theme_shopping/static/description/images/shop_page.png b/theme_shopping/static/description/images/shop_page.png
new file mode 100644
index 000000000..85a86b4f5
Binary files /dev/null and b/theme_shopping/static/description/images/shop_page.png differ
diff --git a/theme_shopping/static/description/images/snippet_1.png b/theme_shopping/static/description/images/snippet_1.png
new file mode 100644
index 000000000..01c397c83
Binary files /dev/null and b/theme_shopping/static/description/images/snippet_1.png differ
diff --git a/theme_shopping/static/description/images/snippet_2.png b/theme_shopping/static/description/images/snippet_2.png
new file mode 100644
index 000000000..421c41e6f
Binary files /dev/null and b/theme_shopping/static/description/images/snippet_2.png differ
diff --git a/theme_shopping/static/description/images/snippet_3.png b/theme_shopping/static/description/images/snippet_3.png
new file mode 100644
index 000000000..3e07d6e16
Binary files /dev/null and b/theme_shopping/static/description/images/snippet_3.png differ
diff --git a/theme_shopping/static/description/images/subscrip.png b/theme_shopping/static/description/images/subscrip.png
new file mode 100644
index 000000000..1101183dc
Binary files /dev/null and b/theme_shopping/static/description/images/subscrip.png differ
diff --git a/theme_shopping/static/description/images/top_deal_snippet_01.png b/theme_shopping/static/description/images/top_deal_snippet_01.png
new file mode 100644
index 000000000..94bf432bf
Binary files /dev/null and b/theme_shopping/static/description/images/top_deal_snippet_01.png differ
diff --git a/theme_shopping/static/description/images/trading.png b/theme_shopping/static/description/images/trading.png
new file mode 100644
index 000000000..9d99bc55b
Binary files /dev/null and b/theme_shopping/static/description/images/trading.png differ
diff --git a/theme_shopping/static/description/images/winter_collection_sinppet_01.png b/theme_shopping/static/description/images/winter_collection_sinppet_01.png
new file mode 100644
index 000000000..12e06eddc
Binary files /dev/null and b/theme_shopping/static/description/images/winter_collection_sinppet_01.png differ
diff --git a/theme_shopping/static/description/index.html b/theme_shopping/static/description/index.html
new file mode 100644
index 000000000..be5e49c86
--- /dev/null
+++ b/theme_shopping/static/description/index.html
@@ -0,0 +1,780 @@
+
+
+
+ odoo
+
+
+
+
+
+
+
Theme Shopping was created by Cybrosys Technology
+ Solutions. This theme makes the website more unique and attractive through its style and
+ custom-designed snippets, mainly suitable for eCommerce websites.
+
+
Provides Structural snippets like Collections,
+ Subscribe, Choose , Cards, Banner and Dynamic content snippets like Asked Questions, Best Seller
+ Products, Most Rated Products, New Arrivals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Key features
+
+
+
+
+
+ Design
+
+
Unique and Attractive custom-designed
+ snippets.
+
+
+
+
+
+
+ Fast loading times
+
+
This theme loads all of its features
+ more quickly than other designs.
+
+
+
+
+
+
+
+ Responsive design
+
+
Different resolution devices can be
+ used by users to watch websites.
+
+
+
+
+
+
+
+ One Click Installation
+
+
This mode is significantly easier than
+ others because Odoo makes One Click Installation feasible.
+
+
+
+
+
+
+
+
+
+
+
Main
+ page
+
+
+
+
+
+
Home
+
Shop
+
Blog
+
About us
+
Contact us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Mobile Responsive Design
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
About us page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Mobile Responsive Design
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Shop
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Mobile Responsive Design
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Blog Page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Mobile Responsive Design
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contact us Page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Structural Snippets
+
+
+
+
+
+
Our Team
+
Product Offers
+
+
Frequently Asked Questions
+
Price Collection
+
Subscription
+
+ Testimonial
+
+
+
+
+
+
+
+
+
+
+
Our Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Product Offers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Frequently Asked Questions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Price Collection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Subscription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Testimonial
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Dynamic Content Snippets
+
+
+
+
+
+
Top Deal Products
+
Winter Collections
+
+
+
+
+
+
+
+
+
+
Top Deal Products
+
+
+
+
+
+
+
+
+
+
+
+
+ Please enable 'Top Deal Products' then proceed to enter the offer price and set the event's time period.
+ Confirm the selected date by clicking the 'Apply' button in the product form.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Winter Collections
+
+
+
+
+
+
+
+
+
+
+
+
Please Add A Product Under the Winter collection Product Category.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Our Services
+
+
View services offered
+ by
+ us
+
+
+
+
+
+
Odoo Customization
+
+
+
+
+
+
Odoo Implementation
+
+
+
+
+
+
Odoo Support
+
+
+
+
+
+
Hire Odoo Developer
+
+
+
+
+
+
Odoo Integration
+
+
+
+
+
+
Odoo Migration
+
+
+
+
+
+
Odoo Consultancy
+
+
+
+
+
+
Odoo Implementation
+
+
+
+
+
+
Odoo Licensing
+ Consultancy
+
+
+
+
+
+
+
+
+
+
Our Industries
+
Get Insight in our
+ odoo
+ knowledge and our marked footprint in industries
+