diff --git a/odoo_fb_insta_product_data_feed/README.rst b/odoo_fb_insta_product_data_feed/README.rst new file mode 100644 index 000000000..06ce2e03a --- /dev/null +++ b/odoo_fb_insta_product_data_feed/README.rst @@ -0,0 +1,46 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Product Data Feed Generation +============================ +Generating a Product Catalog Feeds Sharing Link + +Configuration +============= +* No additional configurations needed + +License +------- +Affero General Public License v3.0 (AGPL v3) +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: (V16) Junaidul Ansar M, Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/odoo_fb_insta_product_data_feed/__init__.py b/odoo_fb_insta_product_data_feed/__init__.py new file mode 100644 index 000000000..da0810b38 --- /dev/null +++ b/odoo_fb_insta_product_data_feed/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from . import controllers, models diff --git a/odoo_fb_insta_product_data_feed/__manifest__.py b/odoo_fb_insta_product_data_feed/__manifest__.py new file mode 100644 index 000000000..592f6c86c --- /dev/null +++ b/odoo_fb_insta_product_data_feed/__manifest__.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +{ + 'name': 'Product Data Feed Generation', + 'version': '16.0.1.0.0', + 'category': 'eCommerce', + 'summary': 'Help to create the catalog for promoting your sale', + 'description': 'Using this module we have to promote and market our sales' + ' through facebook and instagram for using the catalog of ' + 'our product. Many of the businesses sell or advertise ' + 'their product through facebook and instagram. So they' + ' need a catalog that contains the information about your ' + 'products. In this module generate the product data feed ' + 'file for the facebook commerce manager in automatic ' + 'mode(by URL). After adding the data feed URL on facebook ' + 'you will be able to promote your product in sale channels ,' + ' on facebook shops, instagram shopping, with dynamic ads,' + ' and more.', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['website_sale', 'product', 'mail', 'stock'], + 'data': [ + 'security/ir.model.access.csv', + 'views/product_data_feed_views.xml', + 'views/product_data_feed_columns_views.xml', + 'views/field_column_value_views.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'application': False, + 'auto_install': False +} diff --git a/odoo_fb_insta_product_data_feed/controllers/__init__.py b/odoo_fb_insta_product_data_feed/controllers/__init__.py new file mode 100644 index 000000000..96664a177 --- /dev/null +++ b/odoo_fb_insta_product_data_feed/controllers/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from . import odoo_fb_insta_product_data_feed diff --git a/odoo_fb_insta_product_data_feed/controllers/odoo_fb_insta_product_data_feed.py b/odoo_fb_insta_product_data_feed/controllers/odoo_fb_insta_product_data_feed.py new file mode 100644 index 000000000..5dc7e108e --- /dev/null +++ b/odoo_fb_insta_product_data_feed/controllers/odoo_fb_insta_product_data_feed.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (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 . +# +############################################################################### +import csv +from six import StringIO +from odoo import http +from odoo.http import request + + +class ProductData(http.Controller): + """This controller handle for downloading the catalog csv file""" + def generate_formatted_file_content(self, columns, item_filter, record): + """Generating the file content""" + # Apply the filter criteria and fetch the relevant items + filtered_items = request.env[record.used_model].search(item_filter) + formatted_rows = [] + # Iterate over each item and generate a row of values + for item in filtered_items: + row = [] + for column in columns: + if column.type == 'Model Field': + # Access the field value directly + value = getattr(item, column.value_id.name, '') + elif column.type == 'Special': + if column.special_type == 'product_availability': + # Access the product's on-hand quantity + on_hand_qty = item.qty_available + # Set value based on on-hand quantity + if on_hand_qty == 0: + value = 'out of stock' + else: + value = 'in stock' + elif column.special_type == 'qty': + value = item.qty_available + elif column.special_type == 'product_price': + value = item.standard_price + elif column.special_type == 'disc_price': + value = item.list_price + elif column.special_type == 'price_without_tax': + value = item.list_price + elif column.special_type == 'price_currency': + value = self.currency_id.name + elif column.type == 'Text': + value = column.value + elif column.type == 'Value': + value = column.field_value_id.column_name + else: + value = column.value + row.append(value) + formatted_rows.append(row) + return formatted_rows + + @http.route(['/product_data//', + '/product_data/' + ], type="http", + auth='public') + def product_data(self, id, name): + """Making the product data into a CSV formate.""" + record = request.env['product.data.feed'].sudo().browse(id) + column_ids = record.feed_columns_line_ids + item_filter = eval(record.item_filter) if record.item_filter else [] + formatted_file_content = self.generate_formatted_file_content( + column_ids, item_filter, record) + csv_content = StringIO() + csv_writer = csv.writer(csv_content) + column_header = [column.name for column in column_ids] + csv_writer.writerow(column_header) + for row in formatted_file_content: + csv_writer.writerow(row) + # Get CSV content as a string + csv_string = csv_content.getvalue() + csv_content.close() + headers = [ + ('Content-Type', 'text/csv'), + ('Content-Disposition', http.content_disposition(name + '.csv')), + ] + return request.make_response(csv_string, headers=headers) diff --git a/odoo_fb_insta_product_data_feed/doc/RELEASE_NOTES.md b/odoo_fb_insta_product_data_feed/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..9a699a4d7 --- /dev/null +++ b/odoo_fb_insta_product_data_feed/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 22.03.2024 +#### Version 16.0.1.0.0 +#### ADD +- Initial Commit for Product Data Feed Generation diff --git a/odoo_fb_insta_product_data_feed/models/__init__.py b/odoo_fb_insta_product_data_feed/models/__init__.py new file mode 100644 index 000000000..1b8d877fa --- /dev/null +++ b/odoo_fb_insta_product_data_feed/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from . import field_column_value +from . import product_data_feed +from . import product_data_feed_columns diff --git a/odoo_fb_insta_product_data_feed/models/field_column_value.py b/odoo_fb_insta_product_data_feed/models/field_column_value.py new file mode 100644 index 000000000..16e88f73a --- /dev/null +++ b/odoo_fb_insta_product_data_feed/models/field_column_value.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from odoo import fields, models + + +class FieldColumnValue(models.Model): + """Model for storing field column values. + + This class represents field column values used in a product data feed. + It is used to define the mapping of column names to their corresponding + values. + """ + _name = 'field.column.value' + _description = 'Field Column Value' + _rec_name = 'value' + + feed_id = fields.Many2one('product.data.feed', + string='Feed Name', help='Feed Name') + column_name = fields.Char(string='Column Name', + help='Enter the column name.') + value = fields.Char(string='Value', help='Value of the column name.') diff --git a/odoo_fb_insta_product_data_feed/models/product_data_feed.py b/odoo_fb_insta_product_data_feed/models/product_data_feed.py new file mode 100644 index 000000000..bb7ced6ce --- /dev/null +++ b/odoo_fb_insta_product_data_feed/models/product_data_feed.py @@ -0,0 +1,242 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (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 . +# +############################################################################### +import base64 +import secrets +import string +import csv +from io import StringIO +from odoo import api, fields, models + + +class ProductDataFeed(models.Model): + """Data feed model for managing and generating product data feeds. + This class represents a product data feed, which can be used to export + product information in a specific format. It inherits from 'mail.thread' + and 'mail.activity.mixin' to provide messaging and activity tracking + capabilities.""" + _name = 'product.data.feed' + _description = 'Product Data Feed' + _inherit = ['mail.thread', 'mail.activity.mixin'] + + name = fields.Char(string='Name', help='Name of the feed', copy=False, + required=True) + url_link = fields.Char(string='Link', help='Data feed download link', + compute='_compute_url_link' + ) + is_token = fields.Boolean(string='Use Token', + help='Use token or Not for the ' + 'security') + access_token = fields.Char(string='Access Token', + help='Access Token of the feed', + compute='_compute_access_token') + website_id = fields.Many2one('website', string='Websites', + help='Allow this data feed for the selected ' + 'websites.Allow for all if not set ') + format = fields.Char(string='File Formate', + help='The file formate of the data feed.', + default='CSV', readonly=True) + is_file_name = fields.Boolean(string='File Name', + help='Enabled the file name', + ) + name_show = fields.Char(string='File Name', help='Show the file name') + use_model = fields.Selection( + [('Product', 'Product'), ('Product Variant', 'Product Variant')], + string='Use Model', help='Used model of the product feed', + default='Product', required=True) + used_model = fields.Char(string='Used Model', help='Model') + item_filter = fields.Char(string='Item Filter', help='The model domain to' + ' filter for the feed') + feed_columns_line_ids = fields.One2many('product.data.feed.columns', + 'data_feed_columns_id', + string='Columns', + help='Feed column line', + readonly=True, + ) + columns_count = fields.Integer(string='Columns Count', + help='Total number of columns used this ' + 'feed', + compute='_compute_columns_count') + + def generate_formatted_file_content(self, columns, item_filter): + """Generate formatted content for a file based on specified columns + and an item filter.This method applies the provided filter criteria to + fetch relevant items from the environment, and then generates formatted + rows of values for the specified columns for each item.""" + # Apply the filter criteria and fetch the relevant items + filtered_items = self.env[self.used_model].search(item_filter) + formatted_rows = [] + # Iterate over each item and generate a row of values + for item in filtered_items: + row = [] + for column in columns: + if column.type == 'Model Field': + # Access the field value directly + value = getattr(item, column.value_id.name, '') + elif column.type == 'Special': + if column.special_type == 'product_availability': + # Access the product's on-hand quantity + on_hand_qty = item.qty_available + # Set value based on on-hand quantity + if on_hand_qty == 0: + value = 'out of stock' + else: + value = 'in stock' + elif column.special_type == 'qty': + value = item.qty_available + elif column.special_type == 'product_price': + value = item.standard_price + elif column.special_type == 'disc_price': + value = item.list_price + elif column.special_type == 'price_without_tax': + value = item.list_price + elif column.special_type == 'price_currency': + value = self.currency_id.name + elif column.special_type == 'image_link': + value = item.image_1920 + elif column.special_type == 'price_tax': + if item.taxes_id: + value = (item.list_price * ( + item.taxes_id.amount / 100) + + item.list_price) + else: + value = 0.0 + elif column.type == 'Text': + value = column.value + elif column.type == 'Value': + value = column.field_value_id.column_name + else: + value = column.value + row.append(value) + formatted_rows.append(row) + return formatted_rows + + def action_download_doc(self): + """Download the catalog""" + columns = self.feed_columns_line_ids + item_filter = eval(self.item_filter) if self.item_filter else [] + formatted_file_content = self.generate_formatted_file_content( + columns, item_filter) + # Create a CSV content string + csv_content = StringIO() + csv_writer = csv.writer(csv_content) + column_header = [column.name for column in columns] + csv_writer.writerow(column_header) + for row in formatted_file_content: + csv_writer.writerow(row) + encoded_content = csv_content.getvalue().encode('utf-8') + # Close the StringIO buffer + csv_content.close() + attachment = self.env['ir.attachment'].create({ + 'name': self.name_show if self.name_show else 'feed', + 'type': 'binary', + 'datas': base64.b64encode(encoded_content), + 'res_model': self.used_model, + 'res_id': self.id, + 'mimetype': 'text/csv' + }) + return { + 'type': 'ir.actions.act_url', + 'target': 'new', + 'url': f"/web/content/{attachment.id}?download=true" + } + + def action_product_items(self): + """Open the product item list""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Feed Items', + 'view_mode': 'tree,form', + 'res_model': self.used_model, + 'domain': self.item_filter, + 'context': self.env.context, + } + + def action_columns_creation(self): + """Create the columns for feed.""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Columns', + 'view_mode': 'tree,form', + 'res_model': 'product.data.feed.columns', + 'context': { + 'default_feed_id': self.id, + 'default_data_feed_columns_id': self.id, + }, + 'domain': [('feed_id', '=', self.id)] + } + + @api.depends('access_token') + def _compute_access_token(self): + """Update the access token when enabling the token boolean field""" + access_tokens = secrets.token_urlsafe(27) + self.write({'access_token': access_tokens}) + + def action_refresh_token(self): + """Refresh and generate new token""" + access_tokens = secrets.token_urlsafe( + 27) # 27 bytes gives you 36 characters + self.write({'access_token': access_tokens}) + + @api.onchange('is_file_name') + def _onchange_is_file_name(self): + """Generate the random name when enabling the file_name""" + if self.is_file_name: + prefix = "feed-" + random_length = 4 + random_chars = ''.join( + secrets.choice(string.ascii_letters + string.digits) for _ in + range(random_length)) + random_name = prefix + random_chars + self.write({'name_show': random_name}) + + @api.onchange('use_model') + def _onchange_use_model(self): + """When changing the use_model it update the model into used_model""" + if self.use_model == 'Product': + self.write({'used_model': 'product.template'}) + else: + self.write({'used_model': 'product.product'}) + + @api.depends('format', 'name_show', 'is_token') + def _compute_url_link(self): + """Compute the downloading link""" + for feed in self: + base_url = self.env['ir.config_parameter'].get_param( + 'web.base.url') + '/product_data' + if feed.is_token and feed.is_file_name: + feed.url_link = f'{base_url}/{self.id}/{feed.name_show}.{feed.format}?access_token={feed.access_token}' + elif feed.is_file_name: + feed.url_link = f'{base_url}/{self.id}/{feed.name_show}.{feed.format}' + elif feed.is_token: + feed.url_link = f'{base_url}/{self.id}/feed.{feed.format}?access_token={feed.access_token}' + else: + feed.url_link = f'{base_url}/{self.id}/feed.{feed.format}' + + def _compute_columns_count(self): + """Calculate the total number of column count of the current feed""" + for rec in self: + if rec.ids: + rec.columns_count = self.env[ + 'product.data.feed.columns'].search_count( + [('feed_id', '=', rec.id)]) + else: + rec.columns_count = 0 diff --git a/odoo_fb_insta_product_data_feed/models/product_data_feed_columns.py b/odoo_fb_insta_product_data_feed/models/product_data_feed_columns.py new file mode 100644 index 000000000..fa5c94b3c --- /dev/null +++ b/odoo_fb_insta_product_data_feed/models/product_data_feed_columns.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Junaidul Ansar M (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from odoo import fields, models + + +class ProductDataFeedColumns(models.Model): + """Model for defining columns in a product data feed. + + This class represents the columns used in a product data feed. These columns + define the structure of the data to be included in the feed, including + various types such as text, model fields, values, and special types.""" + _name = 'product.data.feed.columns' + _description = 'Product Data Feed Columns' + _inherit = ['mail.thread', 'mail.activity.mixin'] + + name = fields.Char(string='Name', help='Columns name') + feed_id = fields.Many2one('product.data.feed', + string='Feed', help='Feed Name') + type = fields.Selection( + [('Text', 'Text'), ('Model Field', 'Model Field'), + ('Value', 'Value'), ('Special', 'Special')], + string='Type', help='Choose the type of the columns') + value = fields.Char(string="Value", help='Enter the column value') + value_id = fields.Many2one('ir.model.fields', + string="Value", help='Choose the column value', + ) + field_value_id = fields.Many2one('field.column.value', + string="Value", + help='Choose the column value') + data_feed_columns_id = fields.Many2one('product.data.feed', + string='Data Columns', + help='Data columns inverse field') + special_type = fields.Selection( + [('product_price', 'Product Price'), + ('disc_price', 'Discounted Price'), + ('price_currency', 'Price Currency'), + ('product_availability', 'Product Availability'), + ('qty', 'Qty in Stock'), + ('price_tax', 'Product Price(with Taxes)'), + ('price_without_tax', 'Product Price(without Taxes)')], + string='Special Type', help='Choose the special type') diff --git a/odoo_fb_insta_product_data_feed/security/ir.model.access.csv b/odoo_fb_insta_product_data_feed/security/ir.model.access.csv new file mode 100644 index 000000000..9c853fadb --- /dev/null +++ b/odoo_fb_insta_product_data_feed/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_product_data_feed_user,access.product.data.feed.user,model_product_data_feed,base.group_user,1,1,1,1 +access_product_data_feed_columns_user,access.product.data.feed.columns.user,model_product_data_feed_columns,base.group_user,1,1,1,1 +access_field_column_value_user,access.field.column.value.user,model_field_column_value,base.group_user,1,1,1,1 diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/check.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/check.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/chevron.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/chevron.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/cogs.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/cogs.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/consultation.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/consultation.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/ecom-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/ecom-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/education-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/education-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/hotel-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/hotel-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/license.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/license.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/lifebuoy.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/lifebuoy.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/manufacturing-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/manufacturing-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/pos-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/pos-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/puzzle.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/puzzle.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/restaurant-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/restaurant-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/service-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/service-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/trading-black.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/trading-black.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/training.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/training.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/update.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/update.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/user.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/user.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/icons/wrench.png b/odoo_fb_insta_product_data_feed/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/icons/wrench.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/categories.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/categories.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/check-box.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/check-box.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/compass.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/compass.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/corporate.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/corporate.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/customer-support.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/customer-support.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/cybrosys-logo.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/cybrosys-logo.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/features.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/features.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/logo.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/logo.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/pictures.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/pictures.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/pie-chart.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/pie-chart.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/right-arrow.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/right-arrow.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/star.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/star.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/support.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/support.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/misc/whatsapp.png b/odoo_fb_insta_product_data_feed/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/misc/whatsapp.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/modules/1.jpg b/odoo_fb_insta_product_data_feed/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..291635d04 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/modules/1.jpg differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/modules/2.jpg b/odoo_fb_insta_product_data_feed/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..157e5a4d4 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/modules/2.jpg differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/modules/3.png b/odoo_fb_insta_product_data_feed/static/description/assets/modules/3.png new file mode 100644 index 000000000..6e487b48c Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/modules/3.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/modules/4.png b/odoo_fb_insta_product_data_feed/static/description/assets/modules/4.png new file mode 100644 index 000000000..bd1a82caa Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/modules/4.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/modules/5.jpg b/odoo_fb_insta_product_data_feed/static/description/assets/modules/5.jpg new file mode 100755 index 000000000..15892a150 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/modules/5.jpg differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/modules/7.jpg b/odoo_fb_insta_product_data_feed/static/description/assets/modules/7.jpg new file mode 100644 index 000000000..483dd03a4 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/modules/7.jpg differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_models.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_models.png new file mode 100644 index 000000000..6be0094d8 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_models.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_view.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_view.png new file mode 100644 index 000000000..17211fec8 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_view.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb3.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb3.png new file mode 100644 index 000000000..b14af4010 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb3.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb4.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb4.png new file mode 100644 index 000000000..4dcffb99a Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb4.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb5.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb5.png new file mode 100644 index 000000000..e5d748ab8 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb5.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb6.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb6.png new file mode 100644 index 000000000..9816a3597 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb6.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb7.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb7.png new file mode 100644 index 000000000..61273fbdb Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb7.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb8.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb8.png new file mode 100644 index 000000000..2f220474e Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb8.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb9.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb9.png new file mode 100644 index 000000000..cf0480a5c Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb9.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat1.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat1.png new file mode 100644 index 000000000..a529f78ca Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat1.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat2.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat2.png new file mode 100644 index 000000000..08d88faa3 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat2.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_item.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_item.png new file mode 100644 index 000000000..fcddce8b6 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_item.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model.png new file mode 100644 index 000000000..43893dfc3 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model1.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model1.png new file mode 100644 index 000000000..afbc1ad81 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model1.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_tree_view.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_tree_view.png new file mode 100644 index 000000000..f93107fa2 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_tree_view.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/hero.gif b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..199ff2a0e Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/hero.gif differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img101.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img101.png new file mode 100644 index 000000000..859461bba Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img101.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img102.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img102.png new file mode 100644 index 000000000..c6920f251 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img102.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img22.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img22.png new file mode 100644 index 000000000..4a6e60ccd Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img22.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/website.png b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/website.png new file mode 100644 index 000000000..813fee2a1 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/assets/screenshots/website.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/banner.png b/odoo_fb_insta_product_data_feed/static/description/banner.png new file mode 100644 index 000000000..7f6f5f048 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/banner.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/icon.png b/odoo_fb_insta_product_data_feed/static/description/icon.png new file mode 100644 index 000000000..c755d1a56 Binary files /dev/null and b/odoo_fb_insta_product_data_feed/static/description/icon.png differ diff --git a/odoo_fb_insta_product_data_feed/static/description/index.html b/odoo_fb_insta_product_data_feed/static/description/index.html new file mode 100644 index 000000000..9a4e82a72 --- /dev/null +++ b/odoo_fb_insta_product_data_feed/static/description/index.html @@ -0,0 +1,695 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Product Data Feed Generation

+

+ Generate Product Catalog Feeds Link

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

+ Explore This + Module

+
+ + + + +
+
+ +
+

+ Overview +

+
+
+
+ Using this module we have to promote and market our sales through + facebook and + instagram for using the catalog of our product. Many of the businesses + sell + or advertise their product through facebook and instagram. So they need + a catalog that contains the information about your products. In this + module + generate the product data feed file for the facebook commerce manager in + automatic mode(by URL). After adding the data feed URL on facebook you + will be able to promote your product in sale channels , on facebook + shops, + instagram shopping, with dynamic ads, and more. +
+
+ + +
+
+ +
+

+ Features +

+
+
+
+
+ + Community & + Enterprise Support. +
+
+ + You can create the catalog of the product easily(Feed creation) +
+
+ + You can also add multiple feeds. +
+
+ + The data feed formate is CSV file. +
+
+ + You can filter the records based on the domain. +
+
+ + You can enable the auto generated file name. +
+
+ + You can share the Feed Link to anyone and post the link Facebook or Instagram. +
+ +
+
+ + +
+
+ +
+

+ Screenshots +

+
+
+
+
+

+ Product Data Feed. +

+

+ Go to Website -> eCommerce Menu -> Product Data Feed + -> + Under the eCommerce Menu you can see the Product Data Feed submenu + clicking the menu its open the Product data Feed creation model. +

+ +
+
+

+ Product Data Feed Tree View. +

+

Here you could see the list view of the Data Feed

+ +
+
+

+ Product Data Feed Model. +

+

Inside the form view, you can configure the data feed security and format options.

+ +
+
+

+ *You could make the data feed token protected by enabling Use Token option.
+ *You can regenerate the access token if needed.
+ *If you use multi websites, you can specify which ones will allow this data feed.
+ *Enable the file name to edit the file name.
+ *You can filter the products.
+ *The file format is CSV by default +

+ +
+
+

+ Product Data Feed Column Smart Button View . +

+

Inside 'Columns', you could create the columns to show for the data feed.

+ +
+
+

+ Product Data Feed Column Model Creation. +

+

There are different options available.

+ +
+
+

+ Product Data Feed Item Smart Button View. +

+

All the filtered products can be seen inside the smart button 'Items'

+ +
+
+

+ Copying the Product Data Feed Link. +

+

+Copy the link to the product data feed file to share it with anyone, or you can paste the link on Facebook. By doing this, you will be able to promote your product on various sales channels.

+ +
+

+ Add the Catalogue. +

+ +
+

+ Select the E-commerce Catalogue Type. +

+ +
+

+ Select the Owner and Enter the Catalogue Name. +

+ +
+

+ Click View Catalogue, to View the Catalogue. +

+ +
+

+ Open Data Sources. +

+ +
+

+ Select Data Feed then Next. +

+ +
+

+ Paste Product Data Feed Link here. +

+ +
+
+

+ Add more Details about the Product. +

+ +
+

+ View of Product Data Feed. +

+ +
+
+ +
+
+

+ Downloaded File +

+

The downloaded file will look like this

+ +
+ + + + +
+
+ +
+

+ Related Products

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

+ Our Services

+
+
+
+
+
+ +
+
+ Odoo Customization
+
+
+
+ +
+
+ Odoo Implementation
+
+
+
+ +
+
+ Odoo Support
+
+
+
+ +
+
+ Hire Odoo Developer
+
+
+
+ +
+
+ Odoo Integration
+
+
+
+ +
+
+ Odoo Migration
+
+
+
+ +
+
+ Odoo Consultancy
+
+
+
+ +
+
+ Odoo Implementation
+
+
+
+ +
+
+ Odoo Licensing Consultancy
+
+
+
+ + +
+
+ +
+

+ Our Industries

+
+
+
+
+
+ +
+ Trading
+

+ Easily procure and sell your products

+
+
+
+
+ +
+ POS
+

+ Easy configuration and convivial experience

+
+
+
+
+ +
+ Education
+

+ A platform for educational management

+
+
+
+
+ +
+ Manufacturing
+

+ Plan, track and schedule your operations

+
+
+
+
+ +
+ E-commerce & Website
+

+ Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +
+ Service Management
+

+ Keep track of services and invoice

+
+
+
+
+ +
+ Restaurant
+

+ Run your bar or restaurant methodically

+
+
+
+
+ +
+ Hotel Management
+

+ An all-inclusive hotel management application

+
+
+
+
+ + +
+
+ +
+

+ Support

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 27707

+
+
+
+
+
+
+
+ +
+
+
+ diff --git a/odoo_fb_insta_product_data_feed/views/field_column_value_views.xml b/odoo_fb_insta_product_data_feed/views/field_column_value_views.xml new file mode 100644 index 000000000..2db8bdb61 --- /dev/null +++ b/odoo_fb_insta_product_data_feed/views/field_column_value_views.xml @@ -0,0 +1,19 @@ + + + + + field.column.value.view.form + field.column.value + +
+ + + + + + + +
+
+
+
diff --git a/odoo_fb_insta_product_data_feed/views/product_data_feed_columns_views.xml b/odoo_fb_insta_product_data_feed/views/product_data_feed_columns_views.xml new file mode 100644 index 000000000..8f1753d67 --- /dev/null +++ b/odoo_fb_insta_product_data_feed/views/product_data_feed_columns_views.xml @@ -0,0 +1,49 @@ + + + + + product.data.feed.columns.view.form + product.data.feed.columns + +
+ + +
+ + + +
+
+
+
+ + + product.data.feed.columns.view.tree + product.data.feed.columns + + + + + + + + + +
diff --git a/odoo_fb_insta_product_data_feed/views/product_data_feed_views.xml b/odoo_fb_insta_product_data_feed/views/product_data_feed_views.xml new file mode 100644 index 000000000..1b3487e7a --- /dev/null +++ b/odoo_fb_insta_product_data_feed/views/product_data_feed_views.xml @@ -0,0 +1,111 @@ + + + + + Data Feed + ir.actions.act_window + product.data.feed + tree,form + +

+ Click to add the data feed details. +

+
+
+ + + product.data.feed.view.form + product.data.feed + +
+
+
+ + +
+ +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ + + product.data.feed.view.tree + product.data.feed + + + + + + + + + + + +