add website_decimal_quantity
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 310 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 576 B |
|
After Width: | Height: | Size: 733 B |
|
After Width: | Height: | Size: 911 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 673 B |
|
After Width: | Height: | Size: 878 B |
|
After Width: | Height: | Size: 653 B |
|
After Width: | Height: | Size: 905 B |
|
After Width: | Height: | Size: 839 B |
|
After Width: | Height: | Size: 427 B |
|
After Width: | Height: | Size: 627 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 988 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 589 B |
BIN
website_decimal_quantity/static/description/assets/misc/logo.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 967 B |
BIN
website_decimal_quantity/static/description/assets/misc/star.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 5 KiB |
BIN
website_decimal_quantity/static/description/assets/modules/1.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
website_decimal_quantity/static/description/assets/modules/2.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
website_decimal_quantity/static/description/assets/modules/3.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
website_decimal_quantity/static/description/assets/modules/4.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
website_decimal_quantity/static/description/assets/modules/5.gif
Normal file
|
After Width: | Height: | Size: 228 KiB |
BIN
website_decimal_quantity/static/description/assets/modules/6.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 170 KiB |
|
After Width: | Height: | Size: 186 KiB |
|
After Width: | Height: | Size: 122 KiB |
BIN
website_decimal_quantity/static/description/banner.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
website_decimal_quantity/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
612
website_decimal_quantity/static/description/index.html
Normal file
|
|
@ -0,0 +1,612 @@
|
|||
<div style="background-color: #714B67; min-height: 600px; width: 100%; padding: 15px; position: relative;">
|
||||
<!-- TITLE BAR -->
|
||||
<div
|
||||
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
|
||||
<img src="assets/misc/cybrosys-logo.png" width="42" height="42" style="width: 42px; height: 42px;"/>
|
||||
<div>
|
||||
<div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
|
||||
class="mr-2">
|
||||
<i class="fa fa-check mr-1"></i>Community
|
||||
</div>
|
||||
<div style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
|
||||
class="mr-2">
|
||||
<i class="fa fa-check mr-1"></i>Enterprise
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF TITLE BAR -->
|
||||
|
||||
<!-- APP HERO -->
|
||||
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">Website
|
||||
Decimal Quantity</h1>
|
||||
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">Select Decimal Product Quantity
|
||||
from Website</p>
|
||||
<!-- END OF APP HERO -->
|
||||
<img src="assets/screenshots/hero.gif"
|
||||
style="width: 75%; height: auto; position: absolute; margin-left: auto; margin-right: auto; top: 45%; left: 12%; right: auto;"/>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- NAVIGATION SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/compass.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Explore This
|
||||
Module</h2>
|
||||
</div>
|
||||
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#overview">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
|
||||
more about this
|
||||
module</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#configuration">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Configuration</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View configurations of this module</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#features">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View features of this module</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#screenshots">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">
|
||||
See key screenshots of this module
|
||||
</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF NAVIGATION SECTION -->
|
||||
|
||||
<!-- OVERVIEW SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/pie-chart.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Overview
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
|
||||
<div class="col-sm-12 py-4">
|
||||
This module allows users to choose products from the website shop in decimal quantities. This can be helpful
|
||||
for users who need to select products in decimal quantities rather than multiples of one.
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF OVERVIEW SECTION -->
|
||||
|
||||
<!-- CONFIGURATION SECTION -->
|
||||
<div class="d-flex align-items-center"
|
||||
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
|
||||
id="configuration">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/star.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2"
|
||||
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
|
||||
Configuration
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row"
|
||||
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
|
||||
<div class="col-sm-12 py-4">
|
||||
No additional configuration required.
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF CONFIGURATION SECTION -->
|
||||
|
||||
|
||||
<!-- FEATURES SECTION -->
|
||||
<div class="d-flex align-items-center"
|
||||
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
|
||||
id="features">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/features.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2"
|
||||
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
|
||||
Features
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row"
|
||||
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="d-flex align-items-center"
|
||||
style="margin-top: 40px; margin-bottom: 40px">
|
||||
<img src="assets/misc/check-box.png" class="mr-2"/>
|
||||
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Decimal Product Quantity</span>
|
||||
<p style="font-family: 'Roboto', sans-serif !important; font-weight: 450 !important; color: #282F33 !important; font-size: 1rem !important;">
|
||||
Allows users to select product in decimal quantities from product and cart page in Website/Shop.</p>
|
||||
</div>
|
||||
<div class="d-flex align-items-center"
|
||||
style="margin-top: 30px; margin-bottom: 30px">
|
||||
<img src="assets/misc/check-box.png" class="mr-2"/>
|
||||
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Simultaneous Price Calculation</span>
|
||||
<p style="font-family: 'Roboto', sans-serif !important; font-weight: 450 !important; color: #282F33 !important; font-size: 1rem !important;">
|
||||
Simultaneous price calculation in the cart according to the selected decimal quantities.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF FEATURES SECTION -->
|
||||
|
||||
<!-- SCREENSHOTS SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="screenshots">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/pictures.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Screenshots
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Decimal Product
|
||||
Quantity in Product Page</h3>
|
||||
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Select product
|
||||
quantities in decimal values from Product Page.</p>
|
||||
<img src="assets/screenshots/1.png" class="img-thumbnail">
|
||||
</div>
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Decimal Product
|
||||
Quantity in Cart Page</h3>
|
||||
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Select product
|
||||
quantities in decimal values from Cart Page.</p>
|
||||
<img src="assets/screenshots/2.png" class="img-thumbnail">
|
||||
</div>
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Simultaneous price
|
||||
calculation in cart</h3>
|
||||
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Price is calculated in
|
||||
the cart according to the decimal product values.</p>
|
||||
<img src="assets/screenshots/3.png" class="img-thumbnail">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF SCREENSHOTS SECTION -->
|
||||
|
||||
<!-- RELATED PRODUCTS -->
|
||||
<div class="d-flex align-items-center"
|
||||
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/categories.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2"
|
||||
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
|
||||
Related
|
||||
Products
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div id="demo1" class="row carousel slide" data-ride="carousel">
|
||||
<!-- The slideshow -->
|
||||
<div class="carousel-inner" style="padding: 30px;">
|
||||
<div class="carousel-item" style="min-height: 198.656px;">
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/export_stockinfo_xls/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/1.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/inventory_stock_dashboard_odoo/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/2.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/customer_product_qrcode/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/3.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item active"
|
||||
style="min-height: 198.656px;">
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/list_view_sticky_header/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/4.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/openai_product_tag_descrption/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/5.gif">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/advanced_vat_invoice/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/6.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Left and right controls -->
|
||||
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
|
||||
style="width:35px; color:#000"> <span
|
||||
class="carousel-control-prev-icon"><i
|
||||
class="fa fa-chevron-left"
|
||||
style="font-size:24px"></i></span>
|
||||
</a> <a class="carousel-control-next" href="#demo1"
|
||||
data-slide="next" style="width:35px; color:#000">
|
||||
<span class="carousel-control-next-icon"><i
|
||||
class="fa fa-chevron-right"
|
||||
style="font-size:24px"></i></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF RELATED PRODUCTS -->
|
||||
|
||||
<!-- OUR SERVICES -->
|
||||
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/star.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our Services
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="container my-5">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/cogs.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Customization</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/wrench.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Implementation</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/lifebuoy.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Support</h6>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/user.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Hire
|
||||
Odoo
|
||||
Developer</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/puzzle.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Integration</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/update.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Migration</h6>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/consultation.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Consultancy</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/training.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Implementation</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/license.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Licensing Consultancy</h6>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- END OF END OF OUR SERVICES -->
|
||||
|
||||
<!-- OUR INDUSTRIES -->
|
||||
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/corporate.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our
|
||||
Industries
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="container my-5">
|
||||
<div class="row">
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Trading
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Easily procure
|
||||
and
|
||||
sell your products</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
POS
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Easy
|
||||
configuration
|
||||
and convivial experience</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Education
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
A platform for
|
||||
educational management</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px"
|
||||
width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Manufacturing
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Plan, track and
|
||||
schedule your operations</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
E-commerce & Website
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Mobile
|
||||
friendly,
|
||||
awe-inspiring product pages</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Service Management
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Keep track of
|
||||
services and invoice</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Restaurant
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Run your bar or
|
||||
restaurant methodically</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Hotel Management
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
An
|
||||
all-inclusive
|
||||
hotel management application</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- END OF END OF OUR INDUSTRIES -->
|
||||
|
||||
<!-- SUPPORT -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/customer-support.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Support
|
||||
</h2>
|
||||
</div>
|
||||
<div class="container mt-5">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
|
||||
<div class="mr-4"
|
||||
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
|
||||
<img src="assets/misc/support.png" height="48" width="48" style="width: 42px; height: 42px;"/>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Need Help?</h4>
|
||||
<p style="line-height: 100%;">Got questions or need help? Get in touch.</p>
|
||||
<a href="mailto:odoo@cybrosys.com">
|
||||
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
|
||||
odoo@cybrosys.com</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
|
||||
<div class="mr-4"
|
||||
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
|
||||
<img src="assets/misc/whatsapp.png" height="52" width="52" style="width: 52px; height: 52px;"/>
|
||||
</div>
|
||||
<div>
|
||||
<h4>WhatsApp</h4>
|
||||
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
|
||||
<a href="https://api.whatsapp.com/send?phone=918606827707">
|
||||
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">+91 86068
|
||||
27707</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
|
||||
<img src="assets/misc/logo.png" width="144" height="31"
|
||||
style="width:144px; height: 31px; margin-top: 40px;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF SUPPORT -->
|
||||
39
website_decimal_quantity/static/src/js/variant_mixin.js
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
odoo.define('website_decimal_qty.VariantMixin', function (require) {
|
||||
'use strict';
|
||||
|
||||
var VariantMixin = require('sale.VariantMixin');
|
||||
|
||||
/**
|
||||
* A custom implementation of the onClickAddCartJSON function in the
|
||||
* sale.VariantMixin module. It allows for decimal quantities to be added to the cart
|
||||
* by updating the input value with increments of 0.1.
|
||||
*/
|
||||
|
||||
VariantMixin.onClickAddCartJSON = function (ev) {
|
||||
ev.preventDefault();
|
||||
var $link = $(ev.currentTarget);
|
||||
var $input = $link.closest('.input-group').find("input");
|
||||
var min = parseFloat($input.data("min") || 0);
|
||||
var max = parseFloat($input.data("max") || Infinity);
|
||||
var allowDecimal = $input.data("allow-decimal");
|
||||
|
||||
// Replace comma with dot to support decimal separator
|
||||
var inputValue = ($input.val() || 0).toString().replace(',', '.');
|
||||
var previousQty = parseFloat(inputValue, 10);
|
||||
|
||||
// Convert allowDecimal to boolean - check for string 'true' or boolean true
|
||||
var allowDecimals = (allowDecimal === true || allowDecimal === 'true');
|
||||
|
||||
// Use increment of 1 for unit-type products, 0.1 for weight/volume products
|
||||
var increment = allowDecimals ? 0.1 : 1;
|
||||
var quantity = ($link.has(".fa-minus").length ? -increment : increment) + previousQty;
|
||||
var newQt = quantity > min ? (quantity < max ? quantity : max) : min;
|
||||
|
||||
if (newQt !== previousQty) {
|
||||
// Round to integer if decimals not allowed, otherwise keep 1 decimal place
|
||||
var newQty = allowDecimals ? newQt.toFixed(1) : Math.round(newQt).toString();
|
||||
$input.val(newQty).trigger('change');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
144
website_decimal_quantity/static/src/js/website_sale.js
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
odoo.define('website_decimal_qty.website_sale', function (require) {
|
||||
'use strict';
|
||||
|
||||
var publicWidget = require('web.public.widget');
|
||||
var wSaleUtils = require('website_sale.utils');
|
||||
const dom = require('web.dom');
|
||||
require('website_sale.website_sale');
|
||||
|
||||
/**
|
||||
* This module extends the website_sale module to support decimal quantity input for adding products to the cart.
|
||||
* It overrides the onClickAddCartJSON function from sale.VariantMixin to add support for decimal quantity input,
|
||||
* and extends the WebsiteSale widget to handle updating cart quantities when a decimal quantity is entered.
|
||||
*/
|
||||
|
||||
publicWidget.registry.WebsiteSale.include({
|
||||
_updateRootProduct: function ($form, productId) {
|
||||
// Override to handle comma as decimal separator
|
||||
var $input = $form.find('input[name="add_qty"]');
|
||||
var quantityInput = $input.val() || 1;
|
||||
// Replace comma with dot to support decimal separator
|
||||
var quantityValue = quantityInput.toString().replace(',', '.');
|
||||
var quantity = parseFloat(quantityValue);
|
||||
|
||||
// Check if decimal quantities are allowed for this product
|
||||
var allowDecimal = $input.data('allow-decimal');
|
||||
// Convert to boolean - check for string 'true' or boolean true
|
||||
var allowDecimals = (allowDecimal === true || allowDecimal === 'true');
|
||||
|
||||
if (!allowDecimals) {
|
||||
// Round to nearest integer for products with unit-type UoM
|
||||
quantity = Math.round(quantity);
|
||||
// Update the input to show the rounded value
|
||||
$input.val(quantity);
|
||||
}
|
||||
|
||||
this.rootProduct = {
|
||||
product_id: productId,
|
||||
quantity: quantity,
|
||||
product_custom_attribute_values: this.getCustomVariantValues($form.find('.js_product')),
|
||||
variant_values: this.getSelectedVariantValues($form.find('.js_product')),
|
||||
no_variant_attribute_values: this.getNoVariantAttributeValues($form.find('.js_product'))
|
||||
};
|
||||
},
|
||||
|
||||
_changeCartQuantity: function ($input, value, $dom_optional, line_id, productIDs) {
|
||||
var self = this;
|
||||
_.each($dom_optional, function (elem) {
|
||||
$(elem).find('.js_quantity').text(value);
|
||||
productIDs.push($(elem).find('span[data-product-id]').data('product-id'));
|
||||
});
|
||||
$input.data('update_change', true);
|
||||
|
||||
// Check if decimal quantities are allowed for this product
|
||||
var allowDecimal = $input.data('allow-decimal');
|
||||
// Convert to boolean - check for string 'true' or boolean true
|
||||
var allowDecimals = (allowDecimal === true || allowDecimal === 'true');
|
||||
|
||||
if (!allowDecimals) {
|
||||
// Round to nearest integer for products with unit-type UoM
|
||||
value = Math.round(value);
|
||||
}
|
||||
|
||||
this._rpc({
|
||||
route: "/shop/cart/update_json",
|
||||
params: {
|
||||
line_id: line_id,
|
||||
product_id: parseInt($input.data('product-id'), 10),
|
||||
set_qty: value
|
||||
},
|
||||
}).then(function (data) {
|
||||
$input.data('update_change', false);
|
||||
// Replace comma with dot to support decimal separator
|
||||
var inputValue = $input.val().toString().replace(',', '.');
|
||||
var check_value = parseFloat(inputValue);
|
||||
|
||||
if (isNaN(check_value)) {
|
||||
check_value = 1;
|
||||
}
|
||||
|
||||
// Apply same rounding logic when checking
|
||||
if (!allowDecimals) {
|
||||
check_value = Math.round(check_value);
|
||||
}
|
||||
|
||||
if (value !== check_value) {
|
||||
$input.trigger('change');
|
||||
return;
|
||||
}
|
||||
if (!data.cart_quantity) {
|
||||
return window.location = '/shop/cart';
|
||||
}
|
||||
wSaleUtils.updateCartNavBar(data);
|
||||
$input.val(data.quantity);
|
||||
|
||||
$('.js_quantity[data-line-id='+line_id+']').val(data.quantity).text(data.quantity);
|
||||
|
||||
if (data.warning) {
|
||||
var cart_alert = $('.oe_cart').parent().find('#data_warning');
|
||||
if (cart_alert.length === 0) {
|
||||
$('.oe_cart').prepend('<div class="alert alert-danger alert-dismissable" role="alert" id="data_warning">'+
|
||||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> ' + data.warning + '</div>');
|
||||
}
|
||||
else {
|
||||
cart_alert.html('<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> ' + data.warning);
|
||||
}
|
||||
$input.val(data.quantity);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_onChangeCartQuantity: function (ev) {
|
||||
var $input = $(ev.currentTarget);
|
||||
if ($input.data('update_change')) {
|
||||
return;
|
||||
}
|
||||
// Replace comma with dot to support decimal separator
|
||||
var inputValue = ($input.val() || 0).toString().replace(',', '.');
|
||||
var value = parseFloat(inputValue, 10);
|
||||
if (isNaN(value)) {
|
||||
value = 1;
|
||||
}
|
||||
|
||||
// Check if decimal quantities are allowed for this product
|
||||
var allowDecimal = $input.data('allow-decimal');
|
||||
// Convert to boolean - check for string 'true' or boolean true
|
||||
var allowDecimals = (allowDecimal === true || allowDecimal === 'true');
|
||||
|
||||
if (!allowDecimals) {
|
||||
// Round to nearest integer for products with unit-type UoM
|
||||
value = Math.round(value);
|
||||
// Update the input to show the rounded value
|
||||
$input.val(value);
|
||||
}
|
||||
|
||||
var $dom = $input.closest('tr');
|
||||
// var default_price = parseFloat($dom.find('.text-danger > span.oe_currency_value').text());
|
||||
var $dom_optional = $dom.nextUntil(':not(.optional_product.info)');
|
||||
var line_id = parseInt($input.data('line-id'), 10);
|
||||
var productIDs = [parseInt($input.data('product-id'), 10)];
|
||||
this._changeCartQuantity($input, value, $dom_optional, line_id, productIDs);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
98
website_decimal_quantity/static/src/js/website_sale_utils.js
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
odoo.define('website_decimal_quantity.utils', function (require) {
|
||||
'use strict';
|
||||
|
||||
var utils = require('website_sale.utils');
|
||||
var utilsDecimalQty = utils.updateCartNavBar;
|
||||
|
||||
/**
|
||||
* This module overrides the updateCartNavBar function of the website_sale.utils module to provide
|
||||
* support for decimal quantities in the cart.
|
||||
* It replaces the cart quantity text with an animated icon and updates the cart summary and lines with the new data.
|
||||
*/
|
||||
|
||||
utils.updateCartNavBar = function(data) {
|
||||
// Ensure cart_quantity is treated as a number for proper evaluation
|
||||
var cartQty = parseFloat(data.cart_quantity) || 0;
|
||||
// Round to 2 decimal places to avoid floating point precision issues
|
||||
var displayQty = Math.round(cartQty * 100) / 100;
|
||||
|
||||
$(".my_cart_quantity")
|
||||
.parents('li.o_wsale_my_cart').removeClass('d-none').end()
|
||||
.addClass('o_mycart_zoom_animation').delay(300)
|
||||
.queue(function () {
|
||||
$(this)
|
||||
.toggleClass('fa fa-warning', cartQty === 0)
|
||||
.attr('title', data.warning)
|
||||
.text(displayQty > 0 ? displayQty : '')
|
||||
.removeClass('o_mycart_zoom_animation')
|
||||
.dequeue();
|
||||
});
|
||||
|
||||
$(".js_cart_lines").first().before(data['website_sale.cart_lines']).end().remove();
|
||||
$(".js_cart_summary").replaceWith(data['website_sale.short_cart_summary']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override _addToCartInPage to handle decimal quantities correctly in the animation condition
|
||||
*/
|
||||
var originalAddToCart = utils.cartHandlerMixin.addToCart;
|
||||
var originalAddToCartInPage = utils.cartHandlerMixin._addToCartInPage;
|
||||
|
||||
utils.cartHandlerMixin._addToCartInPage = function(params) {
|
||||
var self = this;
|
||||
params.force_create = true;
|
||||
return this._rpc({
|
||||
route: "/shop/cart/update_json",
|
||||
params: params,
|
||||
}).then(async function(data) {
|
||||
console.log('Data received from cart update:', data);
|
||||
|
||||
// The response might not include cart_quantity if display=false or on error
|
||||
// In that case, we need to make another call to get the total or calculate it
|
||||
var currentQty = parseFloat($(".my_cart_quantity").text()) || 0;
|
||||
var newQty;
|
||||
|
||||
if (data.cart_quantity !== undefined) {
|
||||
newQty = parseFloat(data.cart_quantity) || 0;
|
||||
} else {
|
||||
// If cart_quantity is not in response, add the quantity that was just added
|
||||
newQty = currentQty + parseFloat(params.add_qty || 0);
|
||||
// Ensure we have the templates by making the call with display=true
|
||||
if (!data['website_sale.cart_lines']) {
|
||||
// Make another call to get the rendered templates
|
||||
var displayData = await self._rpc({
|
||||
route: "/shop/cart/update_json",
|
||||
params: {
|
||||
product_id: params.product_id,
|
||||
line_id: data.line_id,
|
||||
set_qty: data.quantity,
|
||||
display: true,
|
||||
force_create: true
|
||||
},
|
||||
});
|
||||
// Merge the data
|
||||
Object.assign(data, displayData);
|
||||
newQty = parseFloat(displayData.cart_quantity) || newQty;
|
||||
}
|
||||
}
|
||||
|
||||
sessionStorage.setItem('website_sale_cart_quantity', newQty);
|
||||
|
||||
console.log('Current Qty:', currentQty, 'New Qty:', newQty, 'Data:', data);
|
||||
|
||||
// Animate if quantity changed and is greater than 0
|
||||
if (newQty > 0 && newQty !== currentQty) {
|
||||
// Ensure data has cart_quantity for updateCartNavBar
|
||||
if (data.cart_quantity === undefined) {
|
||||
data.cart_quantity = newQty;
|
||||
}
|
||||
// No animation if the product's page images are hidden
|
||||
if ($('div[data-image_width]').data('image_width') !== 'none') {
|
||||
await utils.animateClone($('header .o_wsale_my_cart').first(), self.$itemImgContainer, 25, 40);
|
||||
}
|
||||
utils.updateCartNavBar(data);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
});
|
||||