Browse Source

Jan 01 [ADD] : Initial Commit 'theme_shopping'

pull/358/merge
AjmalCybro 3 months ago
parent
commit
6e8e5aea81
  1. 76
      theme_shopping/README.rst
  2. 23
      theme_shopping/__init__.py
  3. 93
      theme_shopping/__manifest__.py
  4. 25
      theme_shopping/controllers/__init__.py
  5. 74
      theme_shopping/controllers/dynamic_snippets.py
  6. 64
      theme_shopping/controllers/testimonial.py
  7. 100
      theme_shopping/controllers/theme_shopping.py
  8. 16
      theme_shopping/data/ir_cron.xml
  9. 8
      theme_shopping/data/product_category_data.xml
  10. 6
      theme_shopping/doc/RELEASE_NOTES.md
  11. 25
      theme_shopping/models/__init__.py
  12. 103
      theme_shopping/models/product_template.py
  13. 47
      theme_shopping/models/product_wishlist.py
  14. 41
      theme_shopping/models/theme_utils.py
  15. 42
      theme_shopping/models/website_testimonial.py
  16. 3
      theme_shopping/security/ir.model.access.csv
  17. 9
      theme_shopping/security/security_groups.xml
  18. BIN
      theme_shopping/static/description/banner.jpg
  19. BIN
      theme_shopping/static/description/icon.png
  20. BIN
      theme_shopping/static/description/images/1.png
  21. BIN
      theme_shopping/static/description/images/1_mob.png
  22. BIN
      theme_shopping/static/description/images/2.1_mob.png
  23. BIN
      theme_shopping/static/description/images/2.png
  24. BIN
      theme_shopping/static/description/images/2_mob.png
  25. BIN
      theme_shopping/static/description/images/FAQ.png
  26. BIN
      theme_shopping/static/description/images/about.png
  27. BIN
      theme_shopping/static/description/images/about_mob.png
  28. BIN
      theme_shopping/static/description/images/arrow-black.png
  29. 10
      theme_shopping/static/description/images/arrows-repeat.svg
  30. BIN
      theme_shopping/static/description/images/banner.jpg
  31. BIN
      theme_shopping/static/description/images/blog.png
  32. BIN
      theme_shopping/static/description/images/blog_2_mob.png
  33. BIN
      theme_shopping/static/description/images/blog_mob1.png
  34. BIN
      theme_shopping/static/description/images/frequently-asked-snippet.png
  35. 10
      theme_shopping/static/description/images/gear.svg
  36. 12
      theme_shopping/static/description/images/hire-odoo.svg
  37. BIN
      theme_shopping/static/description/images/home-mob.png
  38. BIN
      theme_shopping/static/description/images/home-mobile-2.png
  39. BIN
      theme_shopping/static/description/images/home-mobile-3.png
  40. BIN
      theme_shopping/static/description/images/home_desk.png
  41. BIN
      theme_shopping/static/description/images/icon-Compatibility-with-plugins.png
  42. BIN
      theme_shopping/static/description/images/icon-Up-to-date-development.png
  43. 13
      theme_shopping/static/description/images/life-ring-icon.svg
  44. BIN
      theme_shopping/static/description/images/logo-cybro.png
  45. BIN
      theme_shopping/static/description/images/main.png
  46. BIN
      theme_shopping/static/description/images/mobile-view.jpg
  47. 4
      theme_shopping/static/description/images/odoo-consultancy.svg
  48. 3
      theme_shopping/static/description/images/odoo-licencing.svg
  49. BIN
      theme_shopping/static/description/images/odoo-logo.png
  50. BIN
      theme_shopping/static/description/images/offfers.png
  51. BIN
      theme_shopping/static/description/images/price-collection.png
  52. 10
      theme_shopping/static/description/images/puzzle-piece-icon.svg
  53. BIN
      theme_shopping/static/description/images/shop-mob.png
  54. BIN
      theme_shopping/static/description/images/shop.png
  55. BIN
      theme_shopping/static/description/images/shop_mob_1.png
  56. BIN
      theme_shopping/static/description/images/shop_mob_2.png
  57. BIN
      theme_shopping/static/description/images/subscription.png
  58. BIN
      theme_shopping/static/description/images/team.png
  59. BIN
      theme_shopping/static/description/images/testimonial.png
  60. BIN
      theme_shopping/static/description/images/top-deals.png
  61. BIN
      theme_shopping/static/description/images/winter-collection.png
  62. BIN
      theme_shopping/static/description/images/wishlist.png
  63. 10
      theme_shopping/static/description/images/wrench-icon.svg
  64. 911
      theme_shopping/static/description/index.html
  65. BIN
      theme_shopping/static/description/theme_screenshot.jpg
  66. 163
      theme_shopping/static/src/css/main.css
  67. 247
      theme_shopping/static/src/css/owl.carousel.css
  68. 6
      theme_shopping/static/src/css/owl.carousel.min.css
  69. 6
      theme_shopping/static/src/css/owl.theme.default.min.css
  70. BIN
      theme_shopping/static/src/images/08a99f081b7c7fc04c182881ad4d1cb1.jpg
  71. BIN
      theme_shopping/static/src/images/0ee2c56e6de752d57cbe818d7f779094.jpg
  72. BIN
      theme_shopping/static/src/images/4d0009fb34fe3f47d9cfeb8489f36b10.png
  73. BIN
      theme_shopping/static/src/images/57eb7bf51ff78dc8415768debf6c876d.jpg
  74. BIN
      theme_shopping/static/src/images/71f69b8cc982b3cddda12c64ad7d45fe.png
  75. 3
      theme_shopping/static/src/images/Arrow 1.svg
  76. 3
      theme_shopping/static/src/images/Arrow 2.svg
  77. BIN
      theme_shopping/static/src/images/Rectangle 83.png
  78. BIN
      theme_shopping/static/src/images/Rectangle 84.png
  79. BIN
      theme_shopping/static/src/images/Rectangle 85.png
  80. BIN
      theme_shopping/static/src/images/Rectangle 86.png
  81. BIN
      theme_shopping/static/src/images/Rectangle 87.png
  82. BIN
      theme_shopping/static/src/images/Rectangle 88.png
  83. BIN
      theme_shopping/static/src/images/about-main.png
  84. BIN
      theme_shopping/static/src/images/bottle.png
  85. BIN
      theme_shopping/static/src/images/cmpy-logo.png
  86. BIN
      theme_shopping/static/src/images/cyber-monday-retail-sales 1.png
  87. BIN
      theme_shopping/static/src/images/d1b5c24cef48507521eeba649bd1f0cf.png
  88. BIN
      theme_shopping/static/src/images/delivery.png
  89. BIN
      theme_shopping/static/src/images/fashion.png
  90. BIN
      theme_shopping/static/src/images/fd41c182ff914d211fbbcdc1ee0f5cb1.jpg
  91. BIN
      theme_shopping/static/src/images/footer-image.png
  92. BIN
      theme_shopping/static/src/images/gadget.png
  93. BIN
      theme_shopping/static/src/images/gifts.png
  94. BIN
      theme_shopping/static/src/images/grocery.png
  95. BIN
      theme_shopping/static/src/images/guaranty.png
  96. BIN
      theme_shopping/static/src/images/hero-img-2.png
  97. BIN
      theme_shopping/static/src/images/hero-img.jpg
  98. BIN
      theme_shopping/static/src/images/homeappliance.png
  99. BIN
      theme_shopping/static/src/images/hoodie.png
  100. BIN
      theme_shopping/static/src/images/lamp.png

76
theme_shopping/README.rst

@ -0,0 +1,76 @@
.. 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.
Testimonial Snippet:
-Only admin allowed users can submit their testimonials.
-All submited testimonials will be displayed for all users.
License
-------
General Public License, Version 3 (AGPL v3).
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
Developer: (V17) Sabeel B, V(17) Shikhil Raj, (V18) Anaswara S Sunil
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 <https://cybrosys.com/>`__
Further information
===================
HTML Description: `<static/description/index.html>`__

23
theme_shopping/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import controllers
from . import models

93
theme_shopping/__manifest__.py

@ -0,0 +1,93 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
{
'name': 'Theme Shopping',
'version': '18.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': ['base','sale_management', 'website_blog', 'website_sale_wishlist',
'website_sale','website',
'website_sale_comparison', 'website_mass_mailing'],
'data': [
'security/ir.model.access.csv',
'security/security_groups.xml',
'views/header_templates.xml',
'views/footer_templates.xml',
'views/add_testimonial.xml',
'views/about_us_views.xml',
'views/blog_templates.xml',
'views/snippets/frequently_asked.xml',
'views/snippets/our_team.xml',
'views/snippets/new_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',
'views/homepage_snippets.xml'
],
'demo': ['data/product_category_data.xml'],
'assets': {
'web.assets_frontend': [
"theme_shopping/static/src/js/top_deal_carousel/top_deal_content.xml",
"theme_shopping/static/src/js/top_deal_carousel/top_deal_carousal.js",
"theme_shopping/static/src/js/winter_collection_carousel/winter_products_content.xml",
"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",
"theme_shopping/static/src/js/product_review.js",
],
'web.assets_backend': [
"theme_shopping/static/src/js/welcome_message.js"
],
},
'images': [
'static/description/banner.jpg',
'static/description/theme_screenshot.jpg',
],
'images_preview_theme': {
'website.s_cover_default_image': '/theme_shopping/static/description/images/banner.jpg',
},
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': False,
}

25
theme_shopping/controllers/__init__.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import dynamic_snippets
from . import theme_shopping
from . import testimonial

74
theme_shopping/controllers/dynamic_snippets.py

@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
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 products
@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 products

64
theme_shopping/controllers/testimonial.py

@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import http
from odoo.http import request
class WebsiteTestimonialController(http.Controller):
@http.route('/website/testimonials/fetch', type='json', auth='public')
def fetch_testimonials(self):
"""Fetch all testimonials"""
try:
testimonials = request.env['website.testimonial'].sudo().search([])
return [{
'user_name': testimonial.user_id.name,
'testimonial': testimonial.testimonial,
'image': testimonial.image,
} for testimonial in testimonials]
except Exception as e:
return {'status': 'error', 'message': str(e)}
@http.route('/fetch_user_group', type='json', auth='public', methods=['POST'])
def check_user_group(self, userId, **kwargs):
"""Check the user group of current logged-in user"""
user_group = request.env['res.users'].search([('id', '=', userId)])
user_has_group = (
user_group.has_group('theme_shopping.testimonial_user') or
user_group.has_group('website.group_website_designer')
)
return user_has_group
@http.route('/website/testimonial/create', type='json', auth='public', methods=['POST'])
def create_testimonial(self, testimonial, **kwargs):
"""Create a new testimonial record"""
try:
current_user = request.env.user
user_name = current_user.id
user_image = current_user.image_1920
request.env['website.testimonial'].sudo().create({
'user_id': user_name,
'testimonial': testimonial,
'image': user_image,
})
return {'status': 'success'}
except Exception as e:
return {'status': 'error', 'message': str(e)}

100
theme_shopping/controllers/theme_shopping.py

@ -0,0 +1,100 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
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

16
theme_shopping/data/ir_cron.xml

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--<odoo noupdate="1">-->
<odoo >
<data>
<!-- crone job checking top deal products -->
<record id="ir_cron_action_top_deal" model="ir.cron">
<field name="name">Top deal Offer Checking</field>
<field name="model_id" ref="model_product_template"/>
<field name="state">code</field>
<field name="code">model.check_top_deal()
</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
</record>
</data>
</odoo>

8
theme_shopping/data/product_category_data.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo noupdate="1">
<!-- Demo product category for winter products -->
<record id="product_category_winter" model="product.category">
<field name="parent_id" ref="product.product_category_1"/>
<field name="name">Winter Collection</field>
</record>
</odoo>

6
theme_shopping/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <theme_shopping>
#### 16.01.2025
#### Version 18.0.1.0.0
#### ADD
- Initial commit for Theme Shopping

25
theme_shopping/models/__init__.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import product_template
from . import product_wishlist
from . import theme_utils
from . import website_testimonial

103
theme_shopping/models/product_template.py

@ -0,0 +1,103 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
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()

47
theme_shopping/models/product_wishlist.py

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
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

41
theme_shopping/models/theme_utils.py

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
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")

42
theme_shopping/models/website_testimonial.py

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import api, models,fields
class WebsiteTestimonial(models.Model):
""" Class for adding testimonials theme shopping"""
_name = 'website.testimonial'
_description = 'Testimonial Review'
_inherit = 'mail.thread'
_rec_name ='user_id'
user_id = fields.Many2one('res.users', required=True,string='User Name')
testimonial = fields.Text('Testimonial', required=True)
image = fields.Binary() # To store the user's image, if you want to allow image uploads
@api.onchange('user_id')
def _onchange_name(self):
""" For setting profile picture while changing the user """
if self.user_id and self.user_id.image_1920:
self.image = self.user_id.image_1920
else:
self.image = False

3
theme_shopping/security/ir.model.access.csv

@ -0,0 +1,3 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_website_testimonial,access.website.testimonial,model_website_testimonial,base.group_user,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
2 access_website_testimonial access.website.testimonial model_website_testimonial base.group_user 1 1 1 1

9
theme_shopping/security/security_groups.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--Testimonial Group-->
<record id="testimonial_user" model="res.groups">
<field name="name">Testimonial</field>
<field name="category_id" ref="base.module_category_website_website"/>
</record>
</odoo>

BIN
theme_shopping/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

BIN
theme_shopping/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
theme_shopping/static/description/images/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

BIN
theme_shopping/static/description/images/1_mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
theme_shopping/static/description/images/2.1_mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
theme_shopping/static/description/images/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
theme_shopping/static/description/images/2_mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
theme_shopping/static/description/images/FAQ.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
theme_shopping/static/description/images/about.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

BIN
theme_shopping/static/description/images/about_mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
theme_shopping/static/description/images/arrow-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

10
theme_shopping/static/description/images/arrows-repeat.svg

@ -0,0 +1,10 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_48_838)">
<path d="M0.000110011 16.2916C0.000110011 9.65172 5.40186 4.24997 12.0418 4.24997H26.9168V1.89405C26.9168 0.631803 28.4425 -3.05772e-05 29.335 0.892469L33.585 5.37339C34.1389 5.9273 34.1375 6.82405 33.585 7.37655L29.335 11.8575C28.4425 12.75 26.9168 12.1181 26.9168 10.8559V8.49997H12.0418C7.74503 8.49997 4.25011 11.9963 4.25011 16.2916C4.25011 17.4646 3.29953 18.4166 2.12511 18.4166C0.950693 18.4166 0.000110011 17.4646 0.000110011 16.2916ZM31.8751 15.5833C30.7007 15.5833 29.7501 16.5353 29.7501 17.7083C29.7501 22.0036 26.2552 25.5 21.9584 25.5H7.08344V23.1441C7.08344 21.8818 5.55769 21.25 4.66519 22.1425L0.415193 26.6234C-0.138723 27.1773 -0.138723 28.0741 0.415193 28.6266L4.66519 33.1075C5.55769 34 7.08344 33.3681 7.08344 32.1059V29.75H21.9584C28.5984 29.75 34.0001 24.3482 34.0001 17.7083C34.0001 16.5353 33.0495 15.5833 31.8751 15.5833Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_48_838">
<rect width="34" height="34" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
theme_shopping/static/description/images/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

BIN
theme_shopping/static/description/images/blog.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

BIN
theme_shopping/static/description/images/blog_2_mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
theme_shopping/static/description/images/blog_mob1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
theme_shopping/static/description/images/frequently-asked-snippet.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

10
theme_shopping/static/description/images/gear.svg

@ -0,0 +1,10 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_48_635)">
<path d="M15.5549 16.005L18.4799 17.685L20.7299 13.785L17.8199 12.105C17.9399 11.58 17.9999 11.04 17.9999 10.485C17.9999 9.93 17.9249 9.39 17.8199 8.865L20.7299 7.185L18.4799 3.285L15.5549 4.965C14.7599 4.23 13.7999 3.69 12.7499 3.36V0H8.24991V3.39C7.19991 3.72 6.23991 4.275 5.44491 4.995L2.51991 3.315L0.284912 7.215L3.19491 8.895C3.07491 9.42 3.01491 9.96 3.01491 10.515C3.01491 11.07 3.08991 11.61 3.19491 12.135L0.284912 13.785L2.53491 17.685L5.45991 16.005C6.25491 16.74 7.21491 17.28 8.26491 17.61V21H12.7649V17.61C13.8149 17.28 14.7749 16.725 15.5699 16.005H15.5549ZM10.4999 7.5C12.1499 7.5 13.4999 8.85 13.4999 10.5C13.4999 12.15 12.1499 13.5 10.4999 13.5C8.84991 13.5 7.49991 12.15 7.49991 10.5C7.49991 8.85 8.84991 7.5 10.4999 7.5ZM32.9999 25.5C32.9999 24.945 32.9249 24.405 32.8199 23.88L35.7299 22.2L33.4799 18.3L30.5549 19.98C29.7599 19.245 28.7999 18.705 27.7499 18.375V14.985H23.2499V18.375C22.1999 18.705 21.2399 19.26 20.4449 19.98L17.5199 18.3L15.2699 22.2L18.1799 23.88C18.0599 24.405 17.9999 24.945 17.9999 25.5C17.9999 26.055 18.0749 26.595 18.1799 27.12L15.2699 28.8L17.5199 32.7L20.4449 31.02C21.2399 31.755 22.1999 32.295 23.2499 32.625V36.015H27.7499V32.625C28.7999 32.295 29.7599 31.74 30.5549 31.02L33.4799 32.7L35.7299 28.8L32.8199 27.12C32.9399 26.595 32.9999 26.055 32.9999 25.5ZM25.4999 28.5C23.8499 28.5 22.4999 27.15 22.4999 25.5C22.4999 23.85 23.8499 22.5 25.4999 22.5C27.1499 22.5 28.4999 23.85 28.4999 25.5C28.4999 27.15 27.1499 28.5 25.4999 28.5Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_48_635">
<rect width="36" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

12
theme_shopping/static/description/images/hire-odoo.svg

@ -0,0 +1,12 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_63_514)">
<path d="M35.5528 30.1866L35.4888 30.1001C34.1698 28.5729 32.5491 27.4542 30.9818 26.3735C30.342 25.932 29.205 25.2204 28.4006 24.648C30.2674 22.0121 31.2673 18.8605 31.2616 15.6305C31.2616 6.9982 24.2634 0 15.6305 0C6.9975 0 0 6.9982 0 15.6305C0 24.2627 6.9982 31.2616 15.6305 31.2616C18.8564 31.2665 22.0042 30.2687 24.6382 28.4062C25.2113 29.2099 25.9221 30.3448 26.3644 30.9846C27.4479 32.5547 28.568 34.1719 30.0938 35.4895L30.1802 35.5528C30.6668 35.8503 31.2271 36.0052 31.7974 36C32.6595 35.9973 33.49 35.6752 34.1283 35.0958L35.0719 34.1543L35.0944 34.1311C36.0991 33.0314 36.2918 31.3727 35.5528 30.1866ZM15.6305 27.1835C12.9572 27.1838 10.3666 26.2572 8.29999 24.5615C6.23339 22.8658 4.81869 20.5059 4.29696 17.8841C3.77523 15.2623 4.17875 12.5406 5.43876 10.183C6.69877 7.82531 8.7373 5.97748 11.207 4.95436C13.6767 3.93123 16.4248 3.79611 18.9829 4.57203C21.5411 5.34794 23.7511 6.98687 25.2363 9.20956C26.7215 11.4323 27.3901 14.1012 27.128 16.7615C26.866 19.4219 25.6897 21.9091 23.7994 23.7994C22.7292 24.8756 21.4561 25.7288 20.0539 26.3097C18.6517 26.8906 17.1482 27.1876 15.6305 27.1835Z" fill="white"/>
<path d="M15.6304 17.0723C18.1642 17.0723 20.2183 15.0182 20.2183 12.4844C20.2183 9.95055 18.1642 7.89648 15.6304 7.89648C13.0965 7.89648 11.0425 9.95055 11.0425 12.4844C11.0425 15.0182 13.0965 17.0723 15.6304 17.0723Z" fill="white"/>
<path d="M23.1884 20.8558C23.1196 20.2123 22.8316 19.6121 22.3728 19.1557C21.9122 18.694 21.3081 18.4029 20.66 18.3302C19.7115 18.2296 17.3553 18.1748 15.8879 18.1748C14.4205 18.1748 11.5327 18.2296 10.5835 18.3302C9.93556 18.4029 9.33159 18.6938 8.87069 19.155C8.4121 19.6114 8.12438 20.2117 8.05577 20.8551V20.8748C8.03327 21.0928 8.01991 21.2819 8.01147 21.4436C8.27125 21.7834 8.55311 22.1056 8.85522 22.4083C10.6527 24.2055 13.0905 25.2152 15.6323 25.2152C18.1741 25.2152 20.6119 24.2055 22.4094 22.4083C22.7068 22.1104 22.9846 21.7935 23.2412 21.4598C23.2306 21.2946 23.2151 21.1005 23.1919 20.8755L23.1884 20.8558Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_63_514">
<rect width="36" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
theme_shopping/static/description/images/home-mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
theme_shopping/static/description/images/home-mobile-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 KiB

BIN
theme_shopping/static/description/images/home-mobile-3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
theme_shopping/static/description/images/home_desk.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 KiB

BIN
theme_shopping/static/description/images/icon-Compatibility-with-plugins.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

BIN
theme_shopping/static/description/images/icon-Up-to-date-development.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

13
theme_shopping/static/description/images/life-ring-icon.svg

@ -0,0 +1,13 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_32_1689)">
<path d="M10.4999 17.9999C10.5002 16.5303 10.9349 15.0936 11.7494 13.8704L4.26741 6.38843C1.51255 9.63015 0 13.7458 0 17.9999C0 22.2541 1.51255 26.3697 4.26741 29.6114L11.7494 22.1294C10.9349 20.9062 10.5002 19.4695 10.4999 17.9999Z" fill="white"/>
<path d="M31.7325 6.38843L24.2505 13.8704C25.0652 15.0935 25.4999 16.5303 25.4999 17.9999C25.4999 19.4695 25.0652 20.9063 24.2505 22.1294L31.7325 29.6114C34.4873 26.3697 35.9999 22.2541 35.9999 17.9999C35.9999 13.7458 34.4873 9.63015 31.7325 6.38843Z" fill="white"/>
<path d="M17.9999 25.5C16.5303 25.4997 15.0936 25.065 13.8704 24.2505L6.38843 31.7325C9.63015 34.4873 13.7458 35.9999 17.9999 35.9999C22.2541 35.9999 26.3697 34.4873 29.6114 31.7325L22.1294 24.2505C20.9062 25.065 19.4695 25.4997 17.9999 25.5Z" fill="white"/>
<path d="M17.9999 10.4999C19.4695 10.5002 20.9062 10.9349 22.1294 11.7494L29.6114 4.26741C26.3697 1.51255 22.2541 0 17.9999 0C13.7458 0 9.63015 1.51255 6.38843 4.26741L13.8704 11.7494C15.0936 10.9349 16.5303 10.5002 17.9999 10.4999Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_32_1689">
<rect width="36" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
theme_shopping/static/description/images/logo-cybro.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
theme_shopping/static/description/images/main.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
theme_shopping/static/description/images/mobile-view.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

4
theme_shopping/static/description/images/odoo-consultancy.svg

@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.3242 28.2889C29.5991 26.131 26.7094 24.7803 24.6491 23.8749C23.842 23.5214 21.6075 22.9216 21.3389 21.9053C21.2428 21.5392 21.2558 21.194 21.3346 20.8631C21.2104 20.8869 21.0844 20.9009 20.9541 20.9009H19.6117C18.5399 20.9009 17.6691 20.029 17.6691 18.958C17.6691 17.8877 18.5403 17.0176 19.6117 17.0176H20.9541C21.3976 17.0176 21.8181 17.1677 22.1572 17.4356C22.6544 17.3693 23.1339 17.2631 23.581 17.1238C24.1682 15.8937 24.6261 14.4227 24.7287 13.1566C25.1668 7.73933 21.8458 4.56989 17.0841 5.11781C13.622 5.51633 11.5538 8.09789 11.3302 11.4214C11.1041 14.809 12.3602 17.311 13.6943 19.1463C14.2786 19.9487 14.8924 20.4646 14.7981 21.4316C14.6887 22.5749 13.4661 22.8935 12.5917 23.2449C11.5556 23.6611 10.4396 24.2925 9.91254 24.5845C8.09706 25.5871 6.10446 26.7945 5.65662 28.4462C4.66482 32.1067 8.01426 33.2155 10.7794 33.7274C13.1525 34.1651 15.8284 34.1997 18.0295 34.1997C22.0107 34.1997 29.1697 34.0402 30.3242 31.0475C30.6525 30.1983 30.5117 28.8451 30.3242 28.2889Z" fill="white"/>
<path d="M21.8037 18.4113C21.6215 18.1337 21.3101 17.9494 20.9548 17.9494H19.6124C19.0522 17.9494 18.6004 18.4019 18.6004 18.9592C18.6004 19.5186 19.0522 19.9719 19.6124 19.9719H20.9548C21.3468 19.9719 21.6795 19.7483 21.8472 19.425C23.7189 19.2778 25.3468 18.7061 26.4894 17.8619C26.7519 18.0311 27.0622 18.1301 27.397 18.1301H27.4812C28.4144 18.1301 29.1689 17.3748 29.1689 16.4406V13.0682C29.1689 12.3964 28.7751 11.8168 28.207 11.5475C27.9593 6.13204 23.4762 1.7998 17.9999 1.7998C12.5236 1.7998 8.03981 6.13204 7.79321 11.5475C7.22405 11.8172 6.83057 12.3964 6.83057 13.0682V16.4406C6.83057 17.3748 7.58585 18.1301 8.51681 18.1301H8.60213C9.53381 18.1301 10.2894 17.3748 10.2894 16.4406V13.0682C10.2894 12.4061 9.90677 11.8352 9.35057 11.559C9.59141 6.99604 13.3779 3.35896 17.9999 3.35896C22.6202 3.35896 26.4084 6.99604 26.6482 11.559C26.0927 11.8355 25.7104 12.4061 25.7104 13.0682V16.4406C25.7104 16.6646 25.754 16.873 25.8306 17.0678C24.8471 17.7716 23.4154 18.273 21.8037 18.4113Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

3
theme_shopping/static/description/images/odoo-licencing.svg

@ -0,0 +1,3 @@
<svg width="36" height="35" viewBox="0 0 36 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 4.40625C5.84315 4.40625 4.5 5.67087 4.5 7.23081V27.0027C4.5 28.5627 5.84315 29.8273 7.5 29.8273H28.5C30.1569 29.8273 31.5 28.5627 31.5 27.0027V7.23081C31.5 5.67087 30.1569 4.40625 28.5 4.40625H7.5ZM12 18.5291C12 17.749 11.3284 17.1168 10.5 17.1168C9.67157 17.1168 9 17.749 9 18.5291V24.1782C9 24.9582 9.67157 25.5905 10.5 25.5905C11.3284 25.5905 12 24.9582 12 24.1782V18.5291ZM18 12.8799C18.8284 12.8799 19.5 13.5122 19.5 14.2922V24.1782C19.5 24.9582 18.8284 25.5905 18 25.5905C17.1716 25.5905 16.5 24.9582 16.5 24.1782V14.2922C16.5 13.5122 17.1716 12.8799 18 12.8799ZM27 10.0554C27 9.27536 26.3284 8.64309 25.5 8.64309C24.6716 8.64309 24 9.27536 24 10.0554V24.1782C24 24.9582 24.6716 25.5905 25.5 25.5905C26.3284 25.5905 27 24.9582 27 24.1782V10.0554Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 929 B

BIN
theme_shopping/static/description/images/odoo-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
theme_shopping/static/description/images/offfers.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
theme_shopping/static/description/images/price-collection.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

10
theme_shopping/static/description/images/puzzle-piece-icon.svg

@ -0,0 +1,10 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="puzzle-piece 1" clip-path="url(#clip0_226_336)">
<path id="Vector" d="M30 15.75C28.9888 15.7847 27.9837 15.9214 27 16.158V13.5C27 12.3065 26.5259 11.1619 25.682 10.318C24.8381 9.47411 23.6935 9 22.5 9H19.092C19.3296 8.01646 19.4663 7.01126 19.5 6C19.5 4.4087 18.8679 2.88258 17.7426 1.75736C16.6174 0.632141 15.0913 0 13.5 0C11.9087 0 10.3826 0.632141 9.25736 1.75736C8.13214 2.88258 7.5 4.4087 7.5 6C7.53374 7.01126 7.67045 8.01646 7.908 9H4.5C3.30653 9 2.16193 9.47411 1.31802 10.318C0.474106 11.1619 0 12.3065 0 13.5L0 36H9.804L9.45 34.5C9.19694 33.5182 9.04614 32.5128 9 31.5C9 30.3065 9.47411 29.1619 10.318 28.318C11.1619 27.4741 12.3065 27 13.5 27C14.6935 27 15.8381 27.4741 16.682 28.318C17.5259 29.1619 18 30.3065 18 31.5C17.9539 32.5128 17.8031 33.5182 17.55 34.5L17.1945 36H27V27.342C27.9837 27.5786 28.9888 27.7153 30 27.75C31.5913 27.75 33.1174 27.1179 34.2426 25.9926C35.3679 24.8674 36 23.3413 36 21.75C36 20.1587 35.3679 18.6326 34.2426 17.5074C33.1174 16.3821 31.5913 15.75 30 15.75Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_226_336">
<rect width="36" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
theme_shopping/static/description/images/shop-mob.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 KiB

BIN
theme_shopping/static/description/images/shop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

BIN
theme_shopping/static/description/images/shop_mob_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
theme_shopping/static/description/images/shop_mob_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
theme_shopping/static/description/images/subscription.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
theme_shopping/static/description/images/team.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

BIN
theme_shopping/static/description/images/testimonial.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
theme_shopping/static/description/images/top-deals.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

BIN
theme_shopping/static/description/images/winter-collection.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
theme_shopping/static/description/images/wishlist.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

10
theme_shopping/static/description/images/wrench-icon.svg

@ -0,0 +1,10 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_48_827)">
<path d="M34.5195 5.66404L27.6225 12.561C26.451 13.7325 24.552 13.7325 23.3805 12.561C22.209 11.3895 22.209 9.49054 23.3805 8.31904L30.258 1.43854L29.82 1.21654C28.227 0.408035 26.52 -0.00146484 24.7485 -0.00146484C18.5445 -0.00146484 13.4985 5.04454 13.4985 11.2485C13.4985 12.687 13.7655 14.0775 14.295 15.399L1.37699 28.3185C-0.375012 30.0735 -0.375012 32.9265 1.37699 34.6815C2.25449 35.559 3.40649 35.997 4.55849 35.997C5.71049 35.997 6.86399 35.559 7.74149 34.6815L20.688 21.735C21.9855 22.2435 23.3475 22.5 24.75 22.5C30.954 22.5 36 17.454 36 11.25C36 9.43804 35.5755 7.70104 34.7385 6.08704L34.5195 5.66404Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_48_827">
<rect width="36" height="36" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 885 B

911
theme_shopping/static/description/index.html

@ -0,0 +1,911 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>app index</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" />
<style>
:root {
--primary-color: #F5C000;
--bg-white: #fff;
--text-color: #121212;
--text-color-light: #64728f;
}
body {
font-family: "Montserrat", sans-serif;
}
</style>
</head>
<body>
<!-- overview -->
<div class="container">
<!-- support-header -->
<div class="supports my-5 py-3" style="border-bottom: 1px solid #e7e7e7;">
<div class="row justify-content-between">
<div class="col-4">
<div class="my-3">
<img src="images/logo-cybro.png"
style="width:auto !important; height:40px !important">
</div>
</div>
<div class="col-6">
<div class="row" style="margin-top:10px">
<div class="my-3 d-flex align-items-center justify-content-end">
<span class="me-3"><b>Supports: </b></span>
<div class="text-center"
style="background-color:#017E84 !important; font-size:0.8rem !important; color:#fff !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width:120px !important">
Community
</div>
<div class="text-center"
style="background-color:#875A7B !important; color:#fff !important; font-size:0.8rem !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width:120px !important">
Enterprise
</div>
</div>
</div>
<div class="row" style="margin-top:10px">
<div class="d-flex align-items-center justify-content-end">
<span class="me-3"><b>Availability: </b></span>
<div class="text-center col"
style="border:1px solid #017E84; font-size:0.8rem !important; color:#017E84 !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:20px !important; min-width:120px !important">
<i class="fa fa-times" style="color:red"></i> Odoo Online
</div>
<div class="text-center col"
style="font-size:0.8rem !important; border:1px solid #714b67; color:#714b67 !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:20px !important; min-width:120px !important">
<i class="fa fa-check" style="color:green"></i> Odoo.sh
</div>
<div class="text-center col"
style="font-size:0.8rem !important; color:#5B899E !important; border:1px solid #5B899E; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:20px !important; min-width:120px !important">
<i class="fa fa-check" style="color:green"></i> On Premise
</div>
</div>
</div>
</div>
</div>
</div>
<!-- banner-section -->
<div class="my-5">
<div class="">
<img src="images/banner.jpg" class="img-fluid" style="border-radius: 16px; width: 100%;">
</div>
</div>
<!--Stared feature section -->
<div class="my-5" style="padding: 100px; background-color: #f1f5fd; border-radius: 16px;">
<div class="container">
<div class="row mb-60">
<div class="col-lg-12 d-flex justify-content-center align-items-center flex-wrap gap-3">
<div class="position-relative" ; style="
text-align: center;
font-size: 46.875px;
font-style: normal;
padding-bottom: 40px; ">
<h2 style="font-weight: 600;">Our Features</h2>
</div>
</div>
</div>
<div class="row g-4" style="margin-bottom:15px">
<div class="col-lg-4 col-md-6"
style="visibility: visible;">
<div style="background-color: #fff;height: 100%;border-radius: 12px;padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3"><a href="#"
style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;"> Design</a>
</h4>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">Unique and Attractive custom-designed snippets
</p>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div style="background-color: #fff; height: 100%;border-radius: 12px;padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3">
<a href="#" style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;"> Fast loading times</a>
</h4>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">This theme loads all of its features
more quickly than other designs.</p>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div style="background-color: #fff; height: 100%;
border-radius: 12px;
padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3"><a href="#" style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;">Responsive design</a></h4>
</div>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">Different resolution devices can be
used by users to watch websites.</p>
</a>
</div>
</div>
</div>
<div class="row g-4" style="margin-bottom:15px">
<div class="col-lg-4 col-md-6"
style="visibility: visible;">
<div style="background-color: #fff;height: 100%;border-radius: 12px;padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3"><a href="#"
style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;"> Frequently Asked Question Snippet</a>
</h4>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">A Frequently Asked Questions (FAQ) snippet is a section on a website that provides users with answers to common questions regarding a product, service, or topic.
</p>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div style="background-color: #fff; height: 100%;border-radius: 12px;padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3">
<a href="#" style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;">Testimonial Snippet</a>
</h4>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">A Testimonial Snippet is a feature where allowed users can submit their testimonials, which are then displayed for others to see. </p>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div style="background-color: #fff; height: 100%;
border-radius: 12px;
padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3"><a href="#" style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;">Product Offer Snippet</a></h4>
</div>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">Snippet for highlighting products that are on sale or come with special promotions, attracting customer attention and driving conversions.</p>
</a>
</div>
</div>
</div>
<div class="row g-4" style="margin-bottom:15px">
<div class="col-lg-4 col-md-6"
style="visibility: visible;">
<div style="background-color: #fff;height: 100%;border-radius: 12px;padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3"><a href="#"
style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;">Price Collection Snippets</a>
</h4>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">A powerful way to promote discounts, limited-time offers, or newly launched products.</p>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div style="background-color: #fff; height: 100%;border-radius: 12px;padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3">
<a href="#" style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;">Top Deal Snippets</a>
</h4>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">A highly effective way to showcase products that are currently available at special limited-time offers.</p>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div style="background-color: #fff; height: 100%;
border-radius: 12px;
padding: 35px 30px;">
<div class="content">
<img src="https://media.istockphoto.com/id/1069729858/vector/five-point-star-rating-icon.jpg?s=612x612&w=0&k=20&c=qjMq2RrfahWPP2EqPlUnq4BIB1vJrpviq0a5WgPJMa8=" class="img-responsive" height="46px" width="46px">
<h4 class="mt-3"><a href="#" style=" color: #121212;
font-size: 18px;
text-decoration: none;
font-weight: 700;
line-height: 1.2;">Winter Collection Snippet</a></h4>
</div>
<p style=" font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #212529;">Highlighting curated selection of products that fall under the "Winter" category. </p>
</a>
</div>
</div>
</div>
</div>
</div>
<!-- Mobile Responsiveness -->
<div class="pt-5 mt-5 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-8">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#004f73; line-height:47px; font-size:24px;">Mobile Responsive Design</h3>
<div class="w-50 float-left text-center arrow-black" style="margin-left:14px;"><img class="w-100" src="images/arrow-black.png"></div>
</div>
<div class="col-lg-12">
<div class="w-100 float-left text-center" style="margin-left:14px;"><img class="w-100" src="images/mobile-view.jpg"></div>
</div>
</div>
</div>
</div>
<!-- Theme Features -->
<section class="container my-5">
<div class="row">
<div class="col-md-12">
<ul role="tablist" class="nav nav-tabs justify-content-center d-flex justify-content-center" data-tabs="tabs"
style="border:none; background-color:unset; margin:0 auto">
</ul>
</div>
<div class="col-md-12 tab-content ui-front"
style="border-radius:20px;border: 1px solid #D6E0FF; height:auto;padding: 20px;">
<div class="tab-pane active show fade" id="Features" role="tabpanel" aria-labelledby="features-1">
<section class="">
<section class="mt-5">
<h2 class="pb-1" style="font-weight: 700; text-align: center;">Theme Features</h2>
<!-- row-1-->
<div class="row" style="max-height:600px" >
<div class="col-md-8 ">
<div style="border-radius: 10px; padding: 32px;
background-color: #303030;
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 50%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Desktop View</h3>
<p class="des" style="color: #c7c7c7;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
margin-bottom: 0;">User-friendly and modern looking theme makes your page more Stylish And Beautiful.
</p>
</div>
<div class="mt-5 ms-5" style="width:600px;height:800px;">
<img src="images/home_desk.png" alt="Grid item" class="img-fluid ">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
<!-- Mobile view -->
<div class="col-md-4">
<div style="border-radius: 10px; padding: 32px;
background-color: #303030;
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 50%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Mobile View</h3>
<p class="des" style="color: #c7c7c7;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
margin-bottom: 0;">It is easy to customize and use.Just drag and drop the building blocks to make attractive webpages.
.</p>
</div>
<div class="mt-2" style="display: flex; justify-content: center; align-items: center;">
<img src="images/home-mob.png" style="height:300px;" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!--row-2 -->
<div class="row " style="margin-top:10px; margin-bottom: 24px;">
<!-- About us-->
<div class="col-md-6">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">About Us Page</h3>
</div>
<div class="mt-5" >
<img src="images/about.png" style="width:100% ; height:400px" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
<!--Shop View -->
<div class="col-md-6">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Shop View</h3>
</div>
<div class="mt-5">
<img src="images/shop.png" style="width:100% ; height:400px;" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!--row-3 -->
<div class="row" style="margin-bottom: 20px;">
<!-- Blog page-->
<div class="col-md-6">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Blog Preview</h3>
</div>
<div class="mt-5">
<img src="images/blog.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
<!-- Wishlist -->
<div class="col-md-6">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Wishlist Preview</h3>
</div>
<div class=" mt-5" style="--aspect-ratioapt: 872/443;">
<img src="images/wishlist.png" style="width:100%; height:330px;" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- -->
</section>
<!--Snippets-->
<section class="mt-5">
<h2 class="pb-5" style="font-weight: 700; text-align: center;margin-bottom: 20px;">Snippets</h2>
<!-- Frequently asked -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Frequently Asked Questions Snippets</h3>
</div>
<div class="mt-5">
<img src="images/frequently-asked-snippet.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- New testimonial -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Testimonial Snippets</h3>
</div>
<div class="mt-5">
<img src="images/testimonial.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- Offers -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Product Offers Snippets</h3>
</div>
<div class="mt-5" style="display: flex; justify-content: center; align-items: center;" >
<img src="images/offfers.png" style="width:200vh" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- Team -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Our Team Snippets</h3>
</div>
<div class="mt-5" style="display: flex; justify-content: center; align-items: center;" >
<img src="images/team.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- Price collection -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Price Collection Snippets</h3>
</div>
<div class="mt-5" style="display: flex; justify-content: center; align-items: center;" >
<img src="images/price-collection.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- Subscription -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Subscription Snippets</h3>
</div>
<div class="mt-5" style="display: flex; justify-content: center; align-items: center;" >
<img src="images/subscription.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- Top deal -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Top Deal Snippets</h3>
</div>
<div class="mt-5" style="display: flex; justify-content: center; align-items: center;" >
<img src="images/top-deals.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
<!-- Winter Collection -->
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-12">
<div style="border-radius: 10px; padding: 32px;
background-color: rgba(48, 48, 48, 1);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px); height: 100%;">
<div class="info">
<span class="label" style="font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 32px;
color: #f14848;
margin-bottom: 13px;
text-transform: uppercase;">HIGHLIGHT</span>
<h3 class="text-white" style=" color: #fff;
font-size: 24px;
font-weight: 500;
line-height: 32px;
margin-bottom: 9px;">Winter Collection Snippets</h3>
</div>
<div class="mt-5" style="display: flex; justify-content: center; align-items: center;" >
<img src="images/winter-collection.png" alt="Grid item" class="img-fluid">
</div>
<a href="#" target="_blank" class="url_link" name="grid_popup"
aria-label="Url link label"><span></span></a>
</div>
</div>
</div>
</section>
</section>
</div>
</div>
</div>
</section>
<!-- Our Services-->
<div class="my-5">
<section id="services" class="mt-5"
style="border-radius: 16px;
border: 1px solid #EBEEF2;
background-color: #FFF;
padding: 60px 40px;
box-shadow: 0px 5px 20px -11px rgba(0, 0, 0, 0.25);">
<div class="text-center mt-4">
<h3 class="mb-0" style="color: #000;
text-align: center;
font-family: Montserrat;
font-size: 40px;
font-style: normal;
font-weight: 700;
line-height: normal;
text-transform: uppercase;
padding-bottom: 50px;">Our Services</h3>
</div>
<div class="row mt-3">
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#FFE2E5; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#FA5A7D; border-radius:50%; height:56px; width:56px">
<img src="images/gear.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;"> Odoo Customization</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#FFF4DE; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#FF947A; border-radius:50%; height:56px; width:56px">
<img src="images/wrench-icon.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;"> Odoo Implementation</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#DCFCE7; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#3CD856; border-radius:50%; height:56px; width:56px">
<img src="images/life-ring-icon.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;">Odoo Support</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#F3E8FF; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#BF83FF; border-radius:50%; height:56px; width:56px">
<img src="images/arrows-repeat.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;">Odoo Migration</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#F1F9FF; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#01649C; border-radius:50%; height:56px; width:56px">
<img src="images/puzzle-piece-icon.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;">Odoo integration</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#EDF8ED; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#69CC70; border-radius:50%; height:56px; width:56px">
<img src="images/odoo-consultancy.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;">Odoo Consultancy</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#F1F6FF; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#2E4556; border-radius:50%; height:56px; width:56px">
<img src="images/odoo-licencing.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;">Odoo Licensing</span>
</div>
</a>
</div>
<div class="col-lg-3 col-sm-12 mb-3">
<a href="#" style="text-decoration:none">
<div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center"
style="font-size:25px; font-weight:bold;background-color:#FAF6EA; margin:auto; border-radius: 8px;">
<div class="d-flex justify-content-center align-items-center"
style="background-color:#FCD12C; border-radius:50%; height:56px; width:56px">
<img src="images/hire-odoo.svg" class="img-responsive" height="28px" width="28px">
</div>
<span class="mt-3" style="font-size: 18px;
color: #121212;
font-weight: 600;">Hire Odoo Developer</span>
</div>
</a>
</div>
</div>
</section>
</div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
</html>

BIN
theme_shopping/static/description/theme_screenshot.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

163
theme_shopping/static/src/css/main.css

File diff suppressed because one or more lines are too long

247
theme_shopping/static/src/css/owl.carousel.css

@ -0,0 +1,247 @@
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
/* General Owl Carousel Styling */
.owl-carousel {
display: none;
width: 100%;
-webkit-tap-highlight-color: transparent;
position: relative;
z-index: 1;
}
.owl-carousel .owl-stage {
position: relative;
-ms-touch-action: pan-Y;
touch-action: manipulation;
-moz-backface-visibility: hidden;
}
.owl-carousel .owl-stage:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.owl-carousel .owl-stage-outer {
position: relative;
overflow: hidden;
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-wrapper,
.owl-carousel .owl-item {
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
}
.owl-carousel .owl-item {
position: relative;
min-height: 1px;
float: left;
-webkit-backface-visibility: hidden;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
}
.owl-carousel .owl-item img {
display: block;
width: 100%;
}
.owl-carousel .owl-nav.disabled,
.owl-carousel .owl-dots.disabled {
display: none;
}
.owl-carousel .owl-nav .owl-prev,
.owl-carousel .owl-nav .owl-next,
.owl-carousel .owl-dot {
cursor: pointer;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next,
.owl-carousel button.owl-dot {
background: none;
color: inherit;
border: none;
padding: 0 !important;
font: inherit;
}
.owl-carousel.owl-loaded {
display: block;
}
.owl-carousel.owl-loading {
opacity: 0;
display: block;
}
.owl-carousel.owl-hidden {
opacity: 0;
}
.owl-carousel.owl-refresh .owl-item {
visibility: hidden;
}
.owl-carousel.owl-drag .owl-item {
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.owl-carousel.owl-grab {
cursor: move;
cursor: grab;
}
.owl-carousel.owl-rtl {
direction: rtl;
}
.owl-carousel.owl-rtl .owl-item {
float: right;
}
/* No Js */
.no-js .owl-carousel {
display: block;
}
/* Responsive Styling */
/* Mobile View - 1 item per slide */
@media (max-width: 767px) {
.owl-carousel .item {
width: 100% !important; /* 1 item per slide on mobile */
}
}
/* Tablet View - 2 items per slide */
@media (min-width: 768px) and (max-width: 1023px) {
.owl-carousel .item {
width: 100%; /* 2 items per slide on tablets */
}
}
/* Desktop View - 3 items per slide */
@media (min-width: 1024px) {
.owl-carousel .item {
width: 33.33%; /* 3 items per slide on desktops */
}
}
/* Owl Carousel - Animate Plugin */
.owl-carousel .animated {
animation-duration: 1000ms;
animation-fill-mode: both;
}
.owl-carousel .owl-animated-in {
z-index: 0;
}
.owl-carousel .owl-animated-out {
z-index: 1;
}
.owl-carousel .fadeOut {
animation-name: fadeOut;
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
/* Owl Carousel - Auto Height Plugin */
.owl-height {
transition: height 500ms ease-in-out;
}
/* Owl Carousel - Lazy Load Plugin */
.owl-carousel .owl-item .owl-lazy {
opacity: 0;
transition: opacity 400ms ease;
}
.owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
max-height: 0;
}
.owl-carousel .owl-item img.owl-lazy {
transform-style: preserve-3d;
}
/* Owl Carousel - Video Plugin */
.owl-carousel .owl-video-wrapper {
position: relative;
height: 100%;
background: #000;
}
.owl-carousel .owl-video-play-icon {
position: absolute;
height: 80px;
width: 80px;
left: 50%;
top: 50%;
margin-left: -40px;
margin-top: -40px;
background: url("owl.video.play.png") no-repeat;
cursor: pointer;
z-index: 1;
-webkit-backface-visibility: hidden;
transition: transform 100ms ease;
}
.owl-carousel .owl-video-play-icon:hover {
-ms-transform: scale(1.3, 1.3);
transform: scale(1.3, 1.3);
}
.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
display: none;
}
.owl-carousel .owl-video-tn {
opacity: 0;
height: 100%;
background-position: center center;
background-repeat: no-repeat;
background-size: contain;
transition: opacity 400ms ease;
}
.owl-carousel .owl-video-frame {
position: relative;
z-index: 1;
height: 100%;
width: 100%;
}

6
theme_shopping/static/src/css/owl.carousel.min.css

@ -0,0 +1,6 @@
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}

6
theme_shopping/static/src/css/owl.theme.default.min.css

@ -0,0 +1,6 @@
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}

BIN
theme_shopping/static/src/images/08a99f081b7c7fc04c182881ad4d1cb1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

BIN
theme_shopping/static/src/images/0ee2c56e6de752d57cbe818d7f779094.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

BIN
theme_shopping/static/src/images/4d0009fb34fe3f47d9cfeb8489f36b10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

BIN
theme_shopping/static/src/images/57eb7bf51ff78dc8415768debf6c876d.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

BIN
theme_shopping/static/src/images/71f69b8cc982b3cddda12c64ad7d45fe.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

3
theme_shopping/static/src/images/Arrow 1.svg

@ -0,0 +1,3 @@
<svg width="100" height="24" viewBox="0 0 102 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M101.061 13.0607C101.646 12.4749 101.646 11.5251 101.061 10.9393L91.5147 1.3934C90.9289 0.807611 89.9792 0.807611 89.3934 1.3934C88.8076 1.97919 88.8076 2.92893 89.3934 3.51472L97.8787 12L89.3934 20.4853C88.8076 21.0711 88.8076 22.0208 89.3934 22.6066C89.9792 23.1924 90.9289 23.1924 91.5147 22.6066L101.061 13.0607ZM0 13.5H100V10.5H0V13.5Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 471 B

3
theme_shopping/static/src/images/Arrow 2.svg

@ -0,0 +1,3 @@
<svg width="100" height="24" viewBox="0 0 102 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.939345 10.9393C0.35356 11.5251 0.35356 12.4749 0.939345 13.0607L10.4853 22.6066C11.0711 23.1924 12.0208 23.1924 12.6066 22.6066C13.1924 22.0208 13.1924 21.0711 12.6066 20.4853L4.12133 12L12.6066 3.51472C13.1924 2.92893 13.1924 1.97919 12.6066 1.3934C12.0208 0.807612 11.0711 0.807612 10.4853 1.3934L0.939345 10.9393ZM102 10.5L2.00001 10.5V13.5L102 13.5V10.5Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 492 B

BIN
theme_shopping/static/src/images/Rectangle 83.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

BIN
theme_shopping/static/src/images/Rectangle 84.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 KiB

BIN
theme_shopping/static/src/images/Rectangle 85.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

BIN
theme_shopping/static/src/images/Rectangle 86.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
theme_shopping/static/src/images/Rectangle 87.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
theme_shopping/static/src/images/Rectangle 88.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

BIN
theme_shopping/static/src/images/about-main.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

BIN
theme_shopping/static/src/images/bottle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
theme_shopping/static/src/images/cmpy-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 B

BIN
theme_shopping/static/src/images/cyber-monday-retail-sales 1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
theme_shopping/static/src/images/d1b5c24cef48507521eeba649bd1f0cf.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
theme_shopping/static/src/images/delivery.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
theme_shopping/static/src/images/fashion.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

BIN
theme_shopping/static/src/images/fd41c182ff914d211fbbcdc1ee0f5cb1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
theme_shopping/static/src/images/footer-image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
theme_shopping/static/src/images/gadget.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 MiB

BIN
theme_shopping/static/src/images/gifts.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

BIN
theme_shopping/static/src/images/grocery.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

BIN
theme_shopping/static/src/images/guaranty.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
theme_shopping/static/src/images/hero-img-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 KiB

BIN
theme_shopping/static/src/images/hero-img.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
theme_shopping/static/src/images/homeappliance.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
theme_shopping/static/src/images/hoodie.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
theme_shopping/static/src/images/lamp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save