diff --git a/pos_multi_variant/README.rst b/pos_multi_variant/README.rst new file mode 100644 index 000000000..9f9334e64 --- /dev/null +++ b/pos_multi_variant/README.rst @@ -0,0 +1,40 @@ +POS Product Multi variant +========================= +* Configure products having variants + +Installation +============ +- www.odoo.com/documentation/12.0/setup/install.html +- Install our custom addon + +License +------- +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Company +------- +* 'Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: + Sreejith sasidharan + +Contacts +-------- +* Mail Contact : odoo@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 +========== +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/pos_multi_variant/__init__.py b/pos_multi_variant/__init__.py new file mode 100644 index 000000000..05922f764 --- /dev/null +++ b/pos_multi_variant/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Sreejith sasidharan() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/pos_multi_variant/__manifest__.py b/pos_multi_variant/__manifest__.py new file mode 100644 index 000000000..a186aa61f --- /dev/null +++ b/pos_multi_variant/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Sreejith sasidharan() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': "POS Product Multi variant", + 'version': '12.0.1.0.0', + 'summary': """Product with multi-variants""", + 'description': """Configure products having variants in POS""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'category': 'Point of Sale', + 'depends': ['base', + 'point_of_sale', + ], + 'data': ['views/pos_variants.xml', + 'security/ir.model.access.csv', + 'views/pos_wizard.xml'], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'qweb': ['static/src/xml/label.xml', + 'static/src/xml/popup.xml'], + 'auto_install': False, +} diff --git a/pos_multi_variant/doc/RELEASE_NOTES.md b/pos_multi_variant/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..1ee028af4 --- /dev/null +++ b/pos_multi_variant/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 21.08.2019 +#### Version 12.0.1.0.0 +##### ADD +- Initial commit for pos_multi_variant diff --git a/pos_multi_variant/models/__init__.py b/pos_multi_variant/models/__init__.py new file mode 100644 index 000000000..e1fe8a83c --- /dev/null +++ b/pos_multi_variant/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Sreejith sasidharan() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import pos_variants diff --git a/pos_multi_variant/models/pos_variants.py b/pos_multi_variant/models/pos_variants.py new file mode 100644 index 000000000..50aa1c897 --- /dev/null +++ b/pos_multi_variant/models/pos_variants.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Sreejith sasidharan() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, models, fields + + +class PosVarients(models.Model): + + _inherit = ['product.template'] + + pos_variants = fields.Boolean('pos variants', default=False) + variant_line_ids = fields.One2many('variants.tree', 'variants_id', string="Configure Variants") + + +class VariantsSelection(models.Model): + + _name = 'variants.tree' + + variants_id = fields.Many2one('product.template') + attribute = fields.Many2one('product.attribute', string='Attribute', ondelete='restrict', required=True, index=True) + value = fields.Many2many('product.attribute.value', string='Values') + extra_price = fields.Char(string="Price Extra") + pos_active = fields.Boolean(string="Active") + + diff --git a/pos_multi_variant/security/ir.model.access.csv b/pos_multi_variant/security/ir.model.access.csv new file mode 100644 index 000000000..29b68ed81 --- /dev/null +++ b/pos_multi_variant/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_variants_tree, access.variants.tree,model_variants_tree,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/pos_multi_variant/static/description/banner.png b/pos_multi_variant/static/description/banner.png new file mode 100644 index 000000000..c40a4c8ab Binary files /dev/null and b/pos_multi_variant/static/description/banner.png differ diff --git a/pos_multi_variant/static/description/icon.png b/pos_multi_variant/static/description/icon.png new file mode 100644 index 000000000..b4a6dbf14 Binary files /dev/null and b/pos_multi_variant/static/description/icon.png differ diff --git a/pos_multi_variant/static/description/icon.png~ b/pos_multi_variant/static/description/icon.png~ new file mode 100644 index 000000000..5c1d3b967 Binary files /dev/null and b/pos_multi_variant/static/description/icon.png~ differ diff --git a/pos_multi_variant/static/description/images/checked.png b/pos_multi_variant/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/pos_multi_variant/static/description/images/checked.png differ diff --git a/pos_multi_variant/static/description/images/cybrosys.png b/pos_multi_variant/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/pos_multi_variant/static/description/images/cybrosys.png differ diff --git a/pos_multi_variant/static/description/images/order_types_in_pos.png b/pos_multi_variant/static/description/images/order_types_in_pos.png new file mode 100644 index 000000000..2554ded45 Binary files /dev/null and b/pos_multi_variant/static/description/images/order_types_in_pos.png differ diff --git a/pos_multi_variant/static/description/images/pos-multi-.gif b/pos_multi_variant/static/description/images/pos-multi-.gif new file mode 100644 index 000000000..53c1f5820 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos-multi-.gif differ diff --git a/pos_multi_variant/static/description/images/pos_combo_products.png b/pos_multi_variant/static/description/images/pos_combo_products.png new file mode 100644 index 000000000..98673039e Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_combo_products.png differ diff --git a/pos_multi_variant/static/description/images/pos_lot_expiry_warning.png b/pos_multi_variant/static/description/images/pos_lot_expiry_warning.png new file mode 100644 index 000000000..ed9d045ca Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_lot_expiry_warning.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-1.png b/pos_multi_variant/static/description/images/pos_multivariant-1.png new file mode 100644 index 000000000..b3a0abb6f Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-1.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-2.png b/pos_multi_variant/static/description/images/pos_multivariant-2.png new file mode 100644 index 000000000..011d2e55e Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-2.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-2.png~ b/pos_multi_variant/static/description/images/pos_multivariant-2.png~ new file mode 100644 index 000000000..979476ecf Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-2.png~ differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-3.png b/pos_multi_variant/static/description/images/pos_multivariant-3.png new file mode 100644 index 000000000..8fdf073c5 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-3.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-3.png~ b/pos_multi_variant/static/description/images/pos_multivariant-3.png~ new file mode 100644 index 000000000..6951ae5d2 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-3.png~ differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-4.png b/pos_multi_variant/static/description/images/pos_multivariant-4.png new file mode 100644 index 000000000..5fc025cda Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-4.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-5.png b/pos_multi_variant/static/description/images/pos_multivariant-5.png new file mode 100644 index 000000000..d79df84e9 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-5.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-6.png b/pos_multi_variant/static/description/images/pos_multivariant-6.png new file mode 100644 index 000000000..a47291444 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-6.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant-7.png b/pos_multi_variant/static/description/images/pos_multivariant-7.png new file mode 100644 index 000000000..52cd4b8cb Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant-7.png differ diff --git a/pos_multi_variant/static/description/images/pos_multivariant_youtube.png b/pos_multi_variant/static/description/images/pos_multivariant_youtube.png new file mode 100644 index 000000000..2a281b785 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_multivariant_youtube.png differ diff --git a/pos_multi_variant/static/description/images/pos_product_addons.png b/pos_multi_variant/static/description/images/pos_product_addons.png new file mode 100644 index 000000000..25d4d79f4 Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_product_addons.png differ diff --git a/pos_multi_variant/static/description/images/pos_return.jpeg b/pos_multi_variant/static/description/images/pos_return.jpeg new file mode 100644 index 000000000..874a6d32a Binary files /dev/null and b/pos_multi_variant/static/description/images/pos_return.jpeg differ diff --git a/pos_multi_variant/static/description/images/remove_orders.png b/pos_multi_variant/static/description/images/remove_orders.png new file mode 100644 index 000000000..8096e2708 Binary files /dev/null and b/pos_multi_variant/static/description/images/remove_orders.png differ diff --git a/pos_multi_variant/static/description/index.html b/pos_multi_variant/static/description/index.html new file mode 100644 index 000000000..4bbcd7fb4 --- /dev/null +++ b/pos_multi_variant/static/description/index.html @@ -0,0 +1,402 @@ + + +
cybrosys-logo
+ +
+
+
+

POS Product Multi variant

+

Configure Multi-Variant Products For POS

+
+

Key Highlights

+
    +
  • checkMulti-variant option in product configuration.
  • +
  • checkOption for adding extra price for the variant.
  • +
  • checkOption for activating/inactivating variant types in POS.
  • +
  • check Notification for multi-variant products in POS.
  • +
  • checkEasy selection of variant type from Wizard.
  • +
  • check Displays variant details in order receipt and order.
  • +
+ +
+
+
+
+ + + + + + +
+
+
+ + + +
+
+ +

Overview

+
+

+ POS Multi-variant module is an advanced way for managing product variants from the point of sale application. The module helps the user to configure product variants straight from POS. User can set extra price, also activate/inactivate the option for variants. As multi-variant products are displayed with a label, it comes easy for the user to sort which is multi-variant and which is not. User can confirm the variant type to POS orders.

+
+ +
+ +

POS Multi-variant

+
+
    + +
  • + checkMulti-variant option in product configuration.
  • + +
  • + checkOption for adding extra price for the variant.
  • + +
  • + checkOption for activating/inactivating variant types in POS.
  • + +
  • + checkNotification for multi-variant products in POS.
  • + +
  • + checkEasy selection of variant type from wizard.
  • + +
  • + checkDisplays variant details in order receipt and order.
  • +
+
+ + + +
+ +
+

Screenshots

+
+
+
+ + + +
+
+
+
+ + +
+ +

Video

+
+

POS Booking Order Demo

+ + +
+ Cybrosys Cover Video +
+ +
+
+ + + +
+
    + + +
+
+
+
+
+
+ +
+

Suggested Products

+
+ +
+ + +
+

Our Service

+
+ +
+
+
+

Our Industries

+
+ +
+
+
+ +
+
+

Trading

+

Easily procure and sell your products.

+
+
+
+
+ +
+
+

Manufacturing

+

Plan, track and schedule your operations.

+
+
+
+
+ +
+
+

Restaurant

+

Run your bar or restaurant methodical.

+
+
+
+
+ +
+
+

POS

+

Easy configuring and convivial selling.

+
+
+
+
+ +
+
+

E-commerce & Website

+

Mobile friendly, awe-inspiring product pages.

+
+
+
+
+ +
+
+

Hotel Management

+

An all-inclusive hotel management application.

+
+
+
+
+ +
+
+

Education

+

A Collaborative platform for educational management.

+
+
+
+
+ +
+
+

Service Management

+

Keep track of services and invoice accordingly.

+
+
+
+
+
+ + + + +
+
+
+

Need Any Help?

+
+ +

If you have anything to share with us based on your use of this module, please let us know. We are ready to offer our support.

+
+

Email us

+

odoo@cybrosys.com / info@cybrosys.com

+ +
+
+

Contact Us

+ www.cybrosys.com +
+
+ +
+
+ + +
+
+
+ + + + +
+
+ +
+ + + + + + + + +
+
+
+ + diff --git a/pos_multi_variant/static/src/css/label.css b/pos_multi_variant/static/src/css/label.css new file mode 100644 index 000000000..ded427199 --- /dev/null +++ b/pos_multi_variant/static/src/css/label.css @@ -0,0 +1,54 @@ + +.pos .product .variant { + position: absolute; + top: 50px; + left: 2px; + right: 2px; + vertical-align: top; + color: white; + line-height: 13px; + background: #0070F7; + padding: 2px 5px; + border-radius: 2px; +} + +.variants{ + position: absolute; + bottom: -11px; + left: 2px; + right: 2px; + vertical-align: top; + color: white; + line-height: 13px; + background: #1b9c99; + padding: 2px 5px; + border-radius: 2px; +} +.extra-price{ +position: absolute; + top: 2px; + right: 2px; + vertical-align: top; + color: white; + line-height: 13px; + background: #ff6a6a; + padding: 2px 5px; + border-radius: 2px; +} +.tag{ +background-color:#d7d7d7; +font-style: italic; +} +.variant-selected{ + position: absolute; + bottom: 23px; + left: 2px; + right: 2px; + vertical-align: top; + color: white; + line-height: 13px; + font-size: 15px; + background: #0831b3; + padding: 2px 5px; + border-radius: 2px; +} \ No newline at end of file diff --git a/pos_multi_variant/static/src/js/ProductPopup.js b/pos_multi_variant/static/src/js/ProductPopup.js new file mode 100644 index 000000000..3cf03842a --- /dev/null +++ b/pos_multi_variant/static/src/js/ProductPopup.js @@ -0,0 +1,213 @@ +odoo.define('pos_multi_variant.ProductPopup', function (require) +{ "use strict"; + + var PosBaseWidget = require('point_of_sale.BaseWidget'); + var gui = require('point_of_sale.gui'); + var models = require('point_of_sale.models'); + var core = require('web.core'); + var screens = require('point_of_sale.screens'); + var PopupWidget = require('point_of_sale.popups'); + var Widget = require("web.Widget"); + var QWeb = core.qweb; + var rpc = require('web.rpc'); + var _t = require('web.core')._t; + + models.load_models([ + { model: 'variants.tree', + fields: ["variants.tree", "pos_active", "value", "attribute", "variants_id", "extra_price"], + loaded: function(self, variants_tree) + { self.variant_tree = variants_tree; + _.each(variants_tree, function(item) + { self.item = item; + }); + } + },{ model: 'product.attribute.value', + fields: ["id", "name"], + loaded: function(self,values) + { self.values = values; + } + }]); + + var super_models = models.PosModel.prototype.models; + models.load_fields('product.product','pos_variants'); + models.load_fields('product.product','variant_line_ids'); + + var _super_orderline = models.Orderline.prototype; + models.Orderline = models.Orderline.extend + ({ initialize: function(attr, options) + { _super_orderline.initialize.call(this,attr,options); + this.product_variants = this.product_variants || []; + }, + init_from_JSON: function(json) + { _super_orderline.init_from_JSON.apply(this,arguments); + this.product_variants = json.product_variants || []; + }, + export_as_JSON: function () + { var json = _super_orderline.export_as_JSON.apply(this, arguments); + json.product_variants = this.product_variants || []; + return json; + }, + }); + + var ProductPopUp = PopupWidget.extend + ({ template: 'ProductPopUp', + + init: function(parent, options) + { this._super(parent, options); + this.options = {}; + this.pos_reference = ""; + }, + + show: function(options) + { var self =this; + this._super(options); + this.render_list(options); + }, + + events: + { 'click .button.cancel': 'click_cancel', + 'click .button.confirm': 'click_confirm', + 'click .product': 'click_variant', + }, + + click_variant:function(e) + { var order = this.self.pos.get('selectedOrder') + var self = e.currentTarget + var action = $(self).find('.action').text(); + var categories = [] + + var category = $(self).find('.action').data('category'); + $('.product-img').find('.variant-selected').each(function () + { if($(this).data('category') == category) // if so + { $(this).text("").removeClass('variant-selected'); + $(self).find('.action').text("Selected").addClass('variant-selected'); + } + }); + $(self).find('.action').text("Selected").addClass('variant-selected'); + var add = $(self).find('.extra-price').text().substr(1).slice(0, -2); + var type = $(self).find('.variants').text(); + $(self).find('.variant-selected').attr('data-price', add); + $(self).find('.variant-selected').attr('data-type', type); + }, + + render_list:function(options) + { this.list = options.list + this.image_url = options.image_url + this.pos_reference = options.data + this.variant_values = options.values + this.self = options.self + var AddError = "variants are not added"; + var ActiveError = "No active variants " + var NotActive = 0; + var AttributeNumbers = [] + var pushed = [] + + for (var i = 0; i < this.list.length; i++) + { if(this.list[i].pos_active == false) + { NotActive += 1 + } + if(this.list[i].pos_active == true) + { if (!pushed.includes(this.list[i].attribute[0])) + { var temp = {}; + temp.id = this.list[i].attribute[0]; + temp.name = this.list[i].attribute[1] + pushed.push(this.list[i].attribute[0]) + AttributeNumbers.push(temp) + } + } + if(this.list.length == NotActive) + { $("#notify").append(ActiveError); + } + } + var tag = "
"; + for ( var i in AttributeNumbers) + { tag += "

"+AttributeNumbers[i].name+"

"; + for (var attr = 0; attr < this.list.length; attr++) + { if (AttributeNumbers[i].id == this.list[attr].attribute[0]) + { var values = this.list[attr].value.length + for(var j = 0; j < values; j++) + { if(this.list[attr].extra_price) + { var price = '+'+this.format_currency(this.list[attr].extra_price)} + else + { var price = '+'+this.format_currency(0.00)} + for(var k=0; k < this.variant_values.length; k++) + { if((this.variant_values[k].id == this.list[attr].value[j]) && this.list[attr].pos_active == true) + { var rows ="
" + + "
"+ + "" + + ""+price+""+ + "

"+ + ""+this.variant_values[k].name+""+ + "
"+ + "
" + tag += rows + } + } + } + } + } + } + tag += "
" + $("#notify").append(tag); + + if(!(this.pos_reference.variant_line_ids.length>0)) + { $("#notify").append(AddError); + } + }, + + click_cancel: function() + { var order = this.self.pos.get('selectedOrder').selected_orderline.product_variants = [] + this.gui.close_popup(); + }, + + click_confirm: function() + { var price = 0.00 + var order = this.self.pos.get_order(); + var selected_orderline = order.selected_orderline + $('.product-img').find('.variant-selected').each(function () + { price += parseFloat($(this).data('price')) + var variant = order.selected_orderline.product_variants + variant.push + ({ 'extra_price': $(this).data('price'), + 'type': $(this).data('type'), + }) + }); + selected_orderline.price_manually_set = true; + selected_orderline.price += price + selected_orderline.trigger('change', selected_orderline); + this.gui.close_popup(); + } + }); + gui.define_popup({name:'ProductSelection', widget: ProductPopUp}); + + screens.ProductScreenWidget.include + ({ click_product: function(product) + { var image_url = this.get_product_image(product.id); + var self = this; + var variant_tree = this.pos.variant_tree + var list = [] + var values = this.pos.values + for(var i = 0; i < variant_tree.length; i++) + { if(variant_tree[i].variants_id[0] == product.product_tmpl_id) + { list.push(variant_tree[i]); } + } + if(product.to_weight && this.pos.config.iface_electronic_scale) + { this.gui.show_screen('scale',{product: product});} + else if(product.pos_variants) + { this.pos.get_order().add_product(product); + this.gui.show_popup('ProductSelection', + { 'title': product.display_name, + data: product, + image_url: image_url, + list: list, + values: values, + self: self + }); + } + else + { this.pos.get_order().add_product(product); } + }, + get_product_image: function(product) + { return window.location.origin + '/web/image?model=product.product&field=image_medium&id='+product; } + }); +}); diff --git a/pos_multi_variant/static/src/xml/label.xml b/pos_multi_variant/static/src/xml/label.xml new file mode 100644 index 000000000..4af2260b5 --- /dev/null +++ b/pos_multi_variant/static/src/xml/label.xml @@ -0,0 +1,61 @@ + + + + + + +
+ Product image + + + + + + + + Multi-variant + + + + + + + + + + Multi-variant + + +
+
+
+ + +
+ +
  • + + : + + at + +
  • +
    + +
    +
    +
    + + + +
    + + +
    + +
    +
    + +
    + + diff --git a/pos_multi_variant/static/src/xml/popup.xml b/pos_multi_variant/static/src/xml/popup.xml new file mode 100644 index 000000000..b25f2b729 --- /dev/null +++ b/pos_multi_variant/static/src/xml/popup.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/pos_multi_variant/views/pos_variants.xml b/pos_multi_variant/views/pos_variants.xml new file mode 100644 index 000000000..007c81f07 --- /dev/null +++ b/pos_multi_variant/views/pos_variants.xml @@ -0,0 +1,30 @@ + + + + + pos.variants + product.template + + + +
    + +
    +
    + + + + + + + + + + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/pos_multi_variant/views/pos_wizard.xml b/pos_multi_variant/views/pos_wizard.xml new file mode 100644 index 000000000..7d58d2a42 --- /dev/null +++ b/pos_multi_variant/views/pos_wizard.xml @@ -0,0 +1,10 @@ + + + +