Repository
OCA/connector-shopify · module folder · Try on Runboat
Module version
1.0.0
Category
Accounting/Accounting
Folder size
0.16 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/connector-shopify
Last tracking update
2026-07-31 18:11:53
Authors
Odoo Community Association (OCA), Sawir Studio
Maintainers
Odoo Community Association (OCA), Sawir Studio
Committers
OCA-git-bot, oca-ci, Ricardo Sawir
Odoo dependencies
Python dependencies
requests, openupgradelib, geoip2
System dependencies
None
Required by
None
Description
Shopify Connector Accounting extends the core connector with Shopify Payments
payouts, balance transactions, fees, disputes, gift-card liability, and
multi-currency reconciliation.

Journal entries are planned from exact Shopify amounts and must balance before
posting. Configuration or amount mismatches raise typed operational errors;
the module never inserts forced balancing lines.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
shopify_dispute_operability_search shopify.dispute.operability.search shopify.dispute search New
shopify_dispute_view_form shopify.dispute.form shopify.dispute form New
shopify_dispute_view_list shopify.dispute.list shopify.dispute list New
shopify_instance_financial_view_form shopify.instance.form.financial shopify.instance form Inherits shopify_connector.shopify_instance_view_form
shopify_payout_operability_search shopify.payout.operability.search shopify.payout search New
shopify_payout_view_form shopify.payout.form shopify.payout form New
shopify_payout_view_list shopify.payout.list shopify.payout list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (10)

New fields (14)
  • amount Monetary
    currency_field='currency_id' readonly=True
  • amount_exact Char
    readonly=True required=True
  • company_id Many2one → res.company
    index=True readonly=True related='instance_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    ondelete='restrict' readonly=True required=True args: 'res.currency'
  • dispute_status Char
    index=True readonly=True
  • dispute_type Char
    index=True readonly=True
  • evidence_due_by Datetime
    readonly=True
  • evidence_sent_on Datetime
    readonly=True
  • finalized_on Datetime
    readonly=True
  • initiated_at Datetime
    readonly=True
  • network_reason_code Char
    readonly=True
  • order_binding_id Many2one → shopify.order
    index=True ondelete='set null' readonly=True string='Associated Order' args: 'shopify.order'
  • raw_payload Json
    readonly=True
  • reason Char
    readonly=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • gift_card_move_id Many2one → account.move
    copy=False ondelete='set null' readonly=True string='Gift Card Liability Entry' args: 'account.move'
Public methods (0)

No public methods.

New fields (12)
  • dispute_ids One2many → shopify.dispute
    args: 'shopify.dispute', 'instance_id'
  • gift_card_liability_account_id Many2one → account.account
    compute='_compute_gift_card_liability_account' help="The configured gift-card product's income account, used as a liability account for sales and redemptions." args: 'account.account'
  • payout_adjustment_account_id Many2one → account.account
    check_company=True ondelete='restrict' args: 'account.account'
  • payout_auto_post Boolean
    default=False
  • payout_currency_gain_account_id Many2one → account.account
    check_company=True ondelete='restrict' args: 'account.account'
  • payout_currency_loss_account_id Many2one → account.account
    check_company=True ondelete='restrict' args: 'account.account'
  • payout_fee_account_id Many2one → account.account
    check_company=True domain="[('account_type', 'in', ('expense', 'expense_direct_cost'))]" ondelete='restrict' string='Payout Fee Expense Account' args: 'account.account'
  • payout_ids One2many → shopify.payout
    args: 'shopify.payout', 'instance_id'
  • payout_import_date_from Date
  • payout_import_date_to Date
  • payout_journal_id Many2one → account.journal
    check_company=True domain="[('type', 'in', ('bank', 'cash'))]" ondelete='restrict' args: 'account.journal'
  • shopify_payments_state Selection
    default='unknown' readonly=True required=True args: [('unknown', 'Not Checked'), ('enabled', 'Enabled'), ('unavailable', 'Unavailable')]
Public methods (1)
  • action_import_payouts(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (18)
  • company_id Many2one → res.company
    index=True readonly=True related='instance_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    ondelete='restrict' readonly=True required=True args: 'res.currency'
  • entry_id Many2one → account.move
    check_company=True copy=False ondelete='set null' readonly=True string='Generated Journal Entry' args: 'account.move'
  • fee_amount Monetary
    currency_field='currency_id' readonly=True
  • fee_exact Char
    readonly=True required=True
  • gross_amount Monetary
    currency_field='currency_id' readonly=True
  • gross_exact Char
    readonly=True required=True
  • issued_at Datetime
    index=True readonly=True
  • legacy_resource_id Char
    index=True readonly=True
  • net_amount Monetary
    currency_field='currency_id' readonly=True
  • net_exact Char
    readonly=True required=True
  • payout_status Char
    index=True readonly=True
  • raw_payload Json
    readonly=True
  • reference Char
    index=True readonly=True required=True
  • summary Json
    readonly=True
  • transaction_ids One2many → shopify.payout.transaction
    string='Balance Transactions' args: 'shopify.payout.transaction', 'payout_id'
  • transaction_type Char
    readonly=True
  • unmatched_count Integer
    compute='_compute_unmatched_count' string='Unmatched Transactions'
Public methods (1)
  • action_generate_entry(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (25)
  • adjustment_reason Char
    readonly=True
  • amount Monetary
    currency_field='currency_id' readonly=True
  • amount_exact Char
    readonly=True required=True
  • company_id Many2one → res.company
    index=True readonly=True related='instance_id.company_id' store=True args: 'res.company'
  • currency_id Many2one → res.currency
    ondelete='restrict' readonly=True required=True args: 'res.currency'
  • display_type Char
    readonly=True
  • fee Monetary
    currency_field='currency_id' readonly=True
  • fee_exact Char
    readonly=True required=True
  • instance_id Many2one → shopify.instance
    index=True ondelete='cascade' required=True args: 'shopify.instance'
  • is_unmatched Boolean
    index=True readonly=True
  • net Monetary
    currency_field='currency_id' readonly=True
  • net_exact Char
    readonly=True required=True
  • order_binding_id Many2one → shopify.order
    index=True ondelete='set null' readonly=True string='Associated Order' args: 'shopify.order'
  • payout_id Many2one → shopify.payout
    index=True ondelete='cascade' required=True args: 'shopify.payout'
  • raw_payload Json
    readonly=True
  • reconciliation_account_id Many2one → account.account
    check_company=True ondelete='restrict' readonly=True args: 'account.account'
  • route Selection
    readonly=True args: [('clearing', 'Gateway Clearing'), ('adjustment', 'Adjustment'), ('gift_card', 'Gift Card Liability'), ('fee', 'Fee Expense')]
  • shopify_id Char
    index=True readonly=True required=True
  • source_id Char
    readonly=True
  • source_order_transaction_id Char
    index=True readonly=True
  • source_type Char
    index=True readonly=True
  • test Boolean
    readonly=True
  • transaction_date Datetime
    index=True readonly=True
  • transaction_type Char
    index=True readonly=True
  • unmatched_reason Char
    readonly=True
Public methods (0)

No public methods.