[REL] connector_amazon_sp: for 11.0

This commit is contained in:
Jared Kipe
2022-02-04 13:25:45 -08:00
parent 8b2afa882d
commit bf7192f71a
48 changed files with 4264 additions and 0 deletions

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_amazon_backend_form" model="ir.ui.view">
<field name="name">amazon.backend.form</field>
<field name="model">amazon.backend</field>
<field name="arch" type="xml">
<form string="Amazon Backend">
<header>
</header>
<sheet>
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name" class="oe_inline" />
</h1>
<group name="amazon" string="Amazon Configuration">
<notebook>
<page string="API" name="api">
<group>
<field name="api_refresh_token" />
<field name="api_lwa_client_id" />
<field name="api_lwa_client_secret" />
</group>
<group>
<field name="api_aws_access_key" />
<field name="api_aws_secret_key" />
<field name="api_role_arn" />
<field name="merchant_id" />
<field name="active"/>
</group>
</page>
</notebook>
</group>
<group name="main_configuration" string="Main Configuration">
<group name="order_configuration" string="Order Defaults">
<field name="warehouse_ids" widget="many2many_tags"/>
<field name="buffer_qty"/>
<field name="analytic_account_id"/>
<field name="fiscal_position_id"/>
<field name="team_id"/>
<field name="user_id"/>
<field name="sale_prefix"/>
<field name="payment_mode_id"/>
<field name="carrier_id"/>
<field name="pricelist_id"/>
<field name="product_categ_id"/>
</group>
<group name="fba_order_configuration" string="Amazon Fulfilled">
<field name="fba_warehouse_ids" widget="many2many_tags"/>
<field name="fba_buffer_qty"/>
<field name="fba_analytic_account_id"/>
<field name="fba_fiscal_position_id"/>
<field name="fba_team_id"/>
<field name="fba_user_id"/>
<field name="fba_sale_prefix"/>
<field name="fba_payment_mode_id"/>
<field name="fba_carrier_id"/>
<field name="fba_pricelist_id"/>
</group>
<group name="automation" string="Automation">
<field name="scheduler_order_import_running" invisible="1" />
<field name="scheduler_order_import"/>
<p attrs="{'invisible': [('scheduler_order_import_running', '=', True)]}" class="text-danger" colspan="2">
The automatic scheduler is not currently enabled.
</p>
<p attrs="{'invisible': [('scheduler_order_import_running', '=', False)]}" class="text-success" colspan="2">
The automatic scheduler is enabled.
</p>
<field name="scheduler_product_inventory_export_running" invisible="1" />
<field name="scheduler_product_inventory_export"/>
<p attrs="{'invisible': [('scheduler_product_inventory_export_running', '=', True)]}" class="text-danger" colspan="2">
The automatic scheduler is not currently enabled.
</p>
<p attrs="{'invisible': [('scheduler_product_inventory_export_running', '=', False)]}" class="text-success" colspan="2">
The automatic scheduler is enabled.
</p>
<field name="scheduler_product_price_export_running" invisible="1" />
<field name="scheduler_product_price_export"/>
<p attrs="{'invisible': [('scheduler_product_price_export_running', '=', True)]}" class="text-danger" colspan="2">
The automatic scheduler is not currently enabled.
</p>
<p attrs="{'invisible': [('scheduler_product_price_export_running', '=', False)]}" class="text-success" colspan="2">
The automatic scheduler is enabled.
</p>
</group>
</group>
<notebook>
<page name="import" string="Imports">
<p class="oe_grey oe_inline">
By clicking on the buttons,
you will initiate the synchronizations
with Amazon.
Note that the import or exports
won't be done directly,
they will create 'Jobs'
executed as soon as possible.
</p>
<p class="oe_grey oe_inline">
Once imported,
some types of records,
like the products or categories,
need a manual review.
You will find the list
of the new records to review
in the menu 'Connectors > Checkpoint'.
</p>
<group>
<div>
<label string="Import sale orders since" class="oe_inline"/>
<field name="import_orders_from_date"
class="oe_inline"
nolabel="1"/>
</div>
<button name="import_sale_orders"
type="object"
class="oe_highlight"
string="Import in background"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_amazon_backend_tree" model="ir.ui.view">
<field name="name">amazon.backend.tree</field>
<field name="model">amazon.backend</field>
<field name="arch" type="xml">
<tree string="Amazon Backend">
<field name="name"/>
<field name="import_orders_from_date"/>
</tree>
</field>
</record>
<record id="action_amazon_backend" model="ir.actions.act_window">
<field name="name">Amazon Backends</field>
<field name="res_model">amazon.backend</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_amazon_backend_tree"/>
</record>
<menuitem id="menu_amazon_root_connector"
parent="connector.menu_connector_root"
name="Amazon"
sequence="10"
groups="connector.group_connector_manager"/>
<menuitem id="menu_amazon_backend_connector"
name="Backends"
parent="menu_amazon_root_connector"
action="action_amazon_backend"/>
<menuitem id="menu_amazon_backend"
name="Backends"
parent="amazon_config_menu"
action="action_amazon_backend"/>
</odoo>

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_feed_form" model="ir.ui.view">
<field name="name">amazon.feed.form</field>
<field name="model">amazon.feed</field>
<field name="arch" type="xml">
<form string="Amazon Feed">
<header>
<button name="submit_feed" string="Submit" type="object" states="new" class="btn-primary"/>
<button name="submit_feed" string="Re-Submit" type="object" states="submitted,error_on_submit" />
<button name="check_feed" string="Check Feed" type="object" states="submitted" class="btn-primary"/>
<field name="state" widget="statusbar" statusbar_visible="new,submitted"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box"/>
<group>
<group>
<field name="external_id" readonly="1"/>
<field name="type" readonly="1"/>
<field name="content_type" readonly="1"/>
<field name="data" readonly="1"/>
</group>
<group>
<field name="create_date" readonly="1"/>
<field name="write_date" readonly="1"/>
<field name="backend_id" required="1"/>
<field name="response" readonly="1"/>
<field name="amazon_state" readonly="1"/>
<field name="amazon_stock_picking_id" attrs="{'invisible': [('amazon_stock_picking_id', '=', False)]}"/>
<field name="amazon_product_product_id" attrs="{'invisible': [('amazon_product_product_id', '=', False)]}"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_feed_tree" model="ir.ui.view">
<field name="name">amazon.feed.tree</field>
<field name="model">amazon.feed</field>
<field name="arch" type="xml">
<tree string="Amazon Feeds" decoration-muted="amazon_state=='DONE'">
<field name="create_date" readonly="1"/>
<field name="write_date" readonly="1"/>
<field name="external_id"/>
<field name="type"/>
<field name="backend_id"/>
<field name="state"/>
<field name="amazon_state"/>
</tree>
</field>
</record>
<record id="action_amazon_feed" model="ir.actions.act_window">
<field name="name">Amazon SP Feeds</field>
<field name="res_model">amazon.feed</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_amazon_feed"
name="Feeds"
action="action_amazon_feed"
parent="amazon_feed_menu"
sequence="2" />
</odoo>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Top menu item -->
<menuitem id="amazon_sale_menu_root"
name="Amazon SP"
web_icon="connector_amazon_sp,static/description/icon.png"
sequence="8"/>
<menuitem id="amazon_sale_order_menu"
name="Orders"
parent="amazon_sale_menu_root"
sequence="2"/>
<menuitem id="amazon_product_product_menu"
name="Listings"
parent="amazon_sale_menu_root"
sequence="20"/>
<menuitem id="amazon_feed_menu"
name="Feeds"
parent="amazon_sale_menu_root"
sequence="50"/>
<menuitem id="amazon_config_menu"
name="Configuration"
parent="amazon_sale_menu_root"
sequence="100"/>
</odoo>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_product_product_form" model="ir.ui.view">
<field name="name">amazon.product.product.form</field>
<field name="model">amazon.product.product</field>
<field name="arch" type="xml">
<form string="Amazon Product Listing">
<header>
<button name="button_submit_product" string="Submit Product" type="object" states="draft" class="btn-primary"/>
<button name="button_submit_product" string="Update Product" type="object" states="sent" />
<button name="button_update_inventory" string="Update Inventory" type="object" states="sent" class="btn-primary"/>
<button name="button_update_price" string="Update Price" type="object" states="sent" class="btn-primary"/>
<field name="state" widget="statusbar" statusbar_visible="draft,sent" clickable="True"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box"/>
<div class="oe_title">
<h1>
<field name="external_id" required="1" string="Amazon SKU"/>
</h1>
<h2>
<field name="asin" string="ASIN"/>
</h2>
</div>
<group>
<group>
<field name="odoo_id" required="1" string="Product"/>
<field name="default_code"/>
<field name="warehouse_id" domain="['|', ('id', 'in', backend_warehouse_ids), ('id', 'in', backend_fba_warehouse_ids)]"/>
<field name="buffer_qty"/>
</group>
<group>
<field name="backend_id" required="1"/>
<field name="backend_warehouse_ids" invisible="1"/>
<field name="backend_fba_warehouse_ids" invisible="1"/>
<field name="date_product_sent" readonly="1"/>
<field name="date_inventory_sent" readonly="1"/>
<field name="date_price_sent" readonly="1"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_amazon_product_tree" model="ir.ui.view">
<field name="name">amazon.product.product.tree</field>
<field name="model">amazon.product.product</field>
<field name="arch" type="xml">
<tree string="Amazon Listings">
<field name="external_id"/>
<field name="odoo_id"/>
<field name="asin"/>
<field name="backend_id"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="action_amazon_product_product" model="ir.actions.act_window">
<field name="name">Amazon SP Listings</field>
<field name="res_model">amazon.product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_amazon_product_product"
name="Listings"
action="action_amazon_product_product"
parent="amazon_product_product_menu"
sequence="2" />
<!-- Additional Pricelist Menu -->
<menuitem id="menu_amazon_pricelist"
name="Pricelists"
parent="amazon_config_menu"
action="product.product_pricelist_action2" />
</odoo>

View File

@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.form.inherit.amazon_sp</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook" position="inside">
<field name="is_amazon_order" invisible="1"/>
<field name="amazon_bind_id" invisible="1"/>
<page string="Amazon SP Information" attrs="{'invisible': ['|', ('is_amazon_order', '=', True), ('amazon_bind_id', '=', False)]}">
<group>
<group>
<field name="fulfillment_channel"/>
<field name="total_amount" string="Amazon Total" widget="monetary"/>
<field name="ship_service_level"/>
<field name="ship_service_level_category"/>
<field name="marketplace"/>
<field name="order_type"/>
<field name="is_business_order"/>
<field name="is_global_express_enabled"/>
<field name="is_premium"/>
<field name="is_sold_by_ab"/>
</group>
</group>
</page>
</xpath>
</field>
</record>
<record id="view_amazon_order_tree" model="ir.ui.view">
<field name="name">amazon.sale.order.tree</field>
<field name="model">amazon.sale.order</field>
<field name="arch" type="xml">
<tree string="Amazon SP Sales Orders" decoration-danger="abs(total_amount-amount_total)>0.01" decoration-bf="message_needaction==True" decoration-muted="state=='cancel'">
<field name="message_needaction" invisible="1"/>
<field name="name" string="Order Number"/>
<field name="fulfillment_channel"/>
<field name="is_prime"/>
<field name="effective_date"/>
<field name="date_planned"/>
<field name="requested_date"/>
<field name="confirmation_date"/>
<field name="amount_total" sum="Total Tax Included" widget="monetary"/>
<field name="total_amount" sum="Amazon Total Tax Included" widget="monetary" string="Amazon Total"/>
<field name="currency_id" invisible="1"/>
<field name="invoice_status"/>
<field name="state" invisible="1"/>
</tree>
</field>
</record>
<record id="view_amazon_order_form" model="ir.ui.view">
<field name="name">amazon.sale.order.form</field>
<field name="model">amazon.sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//header" position="replace">
<header>
<button name="action_confirm" id="action_confirm" string="Confirm Sale" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['draft', 'sent'])]}"/>
<button name="action_cancel" states="draft,sent,sale" type="object" string="Cancel"/>
<button name="action_draft" states="cancel" type="object" string="Set to Quotation"/>
<button name="action_unlock" type="object" string="Unlock" states="done" groups="sales_team.group_sale_manager"/>
<field name="state" widget="statusbar" statusbar_visible="draft,sent,sale"/>
</header>
</xpath>
<xpath expr="//sheet/group/group[1]" position="inside">
<field name="fulfillment_channel"/>
<field name="is_prime"/>
<field name="is_business_order"/>
<field name="is_global_express_enabled"/>
<field name="is_premium"/>
<field name="is_sold_by_ab"/>
</xpath>
<xpath expr="//sheet/group/group[2]" position="inside">
<field name="ship_service_level"/>
<field name="ship_service_level_category"/>
<field name="marketplace"/>
<field name="order_type"/>
</xpath>
<xpath expr="//field[@name='amount_total']" position="after">
<field name="total_amount" string="Amazon Total" widget="monetary"/>
</xpath>
</field>
</record>
<record id="action_amazon_orders" model="ir.actions.act_window">
<field name="name">Amazon SP Orders</field>
<field name="res_model">amazon.sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_amazon_order_tree"/>
</record>
<menuitem id="menu_amazon_sale_order"
name="Orders"
action="action_amazon_orders"
parent="amazon_sale_order_menu"
sequence="2" groups="sales_team.group_sale_salesman"/>
</odoo>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_delivery_carrier_form_with_provider_amazon_sp" model="ir.ui.view">
<field name="name">delivery.carrier.form.provider.amazon_sp</field>
<field name="model">delivery.carrier</field>
<field name="inherit_id" ref="delivery.view_delivery_carrier_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='destination']" position='before'>
<page name="amazon_sp_general" string="Amazon" attrs="{'invisible': [('delivery_type', '=', 'amazon_sp_mfn')]}">
<group>
<group>
<field name="amazon_sp_carrier_code" string="CarrierCode" />
<field name="amazon_sp_carrier_name" string="CarrierName" />
<field name="amazon_sp_shipping_method" string="ShippingMethod" />
</group>
</group>
</page>
<page name="amazon_sp_mfn" string="Amazon SP MFN" attrs="{'invisible': [('delivery_type', '!=', 'amazon_sp_mfn')]}">
<group>
<p>This shipping method will pull details from a linked Sale Order.</p>
<group>
<field name="amazon_sp_mfn_allowed_services" attrs="{'required': [('delivery_type', '=', 'amazon_sp_mfn')]}"/>
</group>
<group>
<field name="amazon_sp_mfn_label_formats" attrs="{'required': [('delivery_type', '=', 'amazon_sp_mfn')]}"/>
</group>
</group>
</page>
</xpath>
</field>
</record>
<record id="product_packaging_delivery_form_amazon_sp" model="ir.ui.view">
<field name="name">product.packaging.form.delivery.amazon_sp</field>
<field name="model">product.packaging</field>
<field name="inherit_id" ref="delivery.product_packaging_delivery_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='package_carrier_type']" position='after'>
<field name="amazon_sp_mfn_allowed_services"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- This view's classes/structure do not make it easy to remove without direct class -->
<template id="report_picking_inherit" inherit_id="stock.report_picking">
<xpath expr="//div[@class='page']/div[@class='row']/div[2]" position="attributes">
<attribute name="t-if">not o.has_amazon_pii()</attribute>
</xpath>
</template>
<template id="report_delivery_document_inherit" inherit_id="stock.report_delivery_document">
<xpath expr="//div[@name='customer_address']" position="attributes">
<attribute name="t-if">not o.has_amazon_pii()</attribute>
</xpath>
</template>
</odoo>