KakaoTalk Store Management
Connect your KakaoTalk Channel + KakaoTalk Shopping (talk-store) to Odoo through the official KakaoTalk REST API. KakaoTalk is Korea's #1 messenger (~50M MAU domestic) and exposes two partner-relevant surfaces: Channel Biz Messaging (alim-talk + friend-talk push notifications) and KakaoTalk Shopping / Gift (talk-store catalog + orders).
This module is distinct from kakao_store_management -- KakaoTalk talk-store is a different catalog space from Kakao Shopping. Install both if you operate both.
Compatibility: Odoo 17 / 18 / 19 Price: $249 (one-time) License: Up to 3 domain activations
Key Features
- KakaoTalk REST API v2 (commerce) + v1 (messaging)
Authorization: KakaoAK {ADMIN_KEY}server-to-server admin authentication- Multi-instance: run multiple Kakao Developers apps + Channels side by side
- Multi-company isolated via record rules
- talk-store product CRUD with Korean + English bilingual titles
- talk-store order list / detail / confirm / ship / refund flows
- Per-product and per-variant inventory sync
- Category tree mirror
- Alim-Talk transactional notifications via approved templates
- Friend-Talk promotional messages with FRIEND_TALK_SCHEMA enforcement
- Memo-to-Me personal push (user access token)
- Channel friend CRM with marketing-consent + friend-status tracking
- Order-status auto-push on paid / shipped / delivered transitions
- Approved-template lifecycle tracking (draft / submitted / approved / rejected)
- HMAC-SHA256 webhook signature verification (commerce only)
- Async queue worker with 24-hour delivery-id deduplication
- OWL dashboard with three Chart.js visualisations + 6 KPIs + auto-refresh
Prerequisites
- Odoo 17, 18, or 19 (Community or Enterprise edition)
- An active ECOSIRE license for this module
- A Kakao Developers account at https://developers.kakao.com/
- A registered Kakao Channel (Kakao Business -- channel public ID like
_AbCdEf) - Kakao Developers app Admin Key (used as
Authorization: KakaoAK {ADMIN_KEY}) - For alim-talk: pre-approved templates registered with Kakao Business (multi-day moderation)
Installation
- Download the module ZIP from your ECOSIRE Dashboard
- Extract to your Odoo addons directory:
unzip ecosire-kakaotalk-*.zip -d /opt/odoo/addons/ - Restart the Odoo service:
sudo systemctl restart odoo - Navigate to Apps, click Update Apps List
- Search for "KakaoTalk Store Management" and click Install
- Enter your ECOSIRE license key when prompted
Configuration
Step 1: Obtain Kakao API Credentials
- Go to the Kakao Developers Console and create / open your application
- From App Settings -> App Keys note:
- Admin Key (server-to-server, NEVER expose client-side)
- REST API Key (used for some user-context flows)
- From Kakao Business -> Channel note your Channel Public ID (format
_AbCdEf) - Optional: provision an Webhook Shared Secret in Developers Console -> Webhooks if you want commerce webhooks
Step 2: Connect in Odoo
- Navigate to KakaoTalk -> Configuration -> Instances
- Create a new instance and enter:
- Instance Name -- friendly label (e.g. "ECOSIRE KakaoTalk Channel")
- API Endpoint URL -- defaults to
https://kapi.kakao.com - Channel Public ID -- your
_AbCdEfchannel ID - Admin Key -- the KakaoAK admin key (encrypted at rest)
- REST API Key -- optional
- User Access Token -- optional, only needed for memo-to-me
- Webhook Shared Secret -- only if you configured a commerce webhook
- Click Test Connection. The module verifies BOTH auth AND a list endpoint -- so a green checkmark means your admin key is valid AND has commerce scope.
- The detected store name will be auto-filled.
Step 3: Initial Sync
After successful test connection:
- Click Sync Categories to mirror the talk-store category tree
- Click Sync Products to import all talk-store products as
kakaotalk.product.mappingrecords - Click Sync Orders to import historical orders (defaults to last 30 days)
- Click Sync Channel Friends to import channel-relations users (consented users only)
Step 4: Configure Auto-Sync
In the Sync Configuration notebook:
- Auto-Sync Products -- enable for periodic product re-sync
- Auto-Sync Orders -- enable for periodic order pulls
- Auto-Sync Inventory -- push Odoo inventory levels to KakaoTalk
- Webhooks Enabled -- enable once your webhook subscription is set up in Developers Console
- Auto-Send Alim-Talk on Order Status Change -- fires templates on paid / shipped / delivered transitions
Activate the matching scheduled actions under Settings -> Technical -> Automation -> Scheduled Actions:
- KakaoTalk: Sync Products (every 30 min, disabled by default)
- KakaoTalk: Sync Orders (every 15 min, disabled by default)
- KakaoTalk: Push Inventory (hourly, disabled by default)
- KakaoTalk: Process Queue Jobs (every 5 min, ENABLED by default)
- KakaoTalk: Cleanup Old Queue Jobs (daily, ENABLED by default)
Messaging Setup
Alim-Talk (Transactional Notifications)
Alim-talk requires a Kakao-approved template ID. The approval process takes 1-5 business days.
- Register your template in Kakao Business Console -> Alim-Talk -> Templates
- Wait for Kakao moderation approval
- In Odoo navigate to KakaoTalk -> Messaging -> Templates
- Create a new template:
- Template Name -- friendly label
- Message Type -- "Alim-Talk (Notification)"
- KakaoTalk Template ID -- the approved ID from Kakao Business
- Template Body -- the registered text (with
#{var_name}variable placeholders) - Variables (JSON) -- default values, e.g.
{"customer_name": "Default", "order_no": "ORD-1234"}
- Click Mark Submitted then Mark Approved (after Kakao approves)
Friend-Talk (Promotional)
Friend-talk uses a fixed schema validated server-side by Kakao:
| Field | Description |
|---|---|
title | Headline |
image_url | Banner image (HTTPS) |
regular_price | Original price text |
discount_price | Sale price text |
rate | Discount percentage text |
button_title | CTA button label |
button_url | CTA destination |
The module enforces this schema client-side -- any unknown key triggers a KakaoTalkValidationError before the network round-trip.
Order-Status Auto-Push
If you enable Auto-Send Alim-Talk on Order Status Change on the instance:
- Navigate to the instance form
- Open the Alim-Talk Order Templates notebook (only visible when auto-send is on)
- Pick the approved alim-talk template for each transition: Paid / Shipped / Delivered
The dispatch is queued (not synchronous) so order-status updates from sync never block on Kakao network latency.
Webhooks (Commerce Only)
KakaoTalk Biz Messaging is outbound push only -- no inbound webhook for chat replies. The Chat-Bot API is a separate enrollment.
For commerce events:
- Configure your webhook URL in Kakao Developers Console -> Webhooks pointing to:
https://your-odoo-domain.com/kakaotalk/webhook/orderhttps://your-odoo-domain.com/kakaotalk/webhook/product
- Set the shared secret on the instance form (encrypted, never logged)
- The controller verifies HMAC-SHA256 signatures on every inbound request and dedupes on the
X-Kakao-Delivery-Idheader inside a 24-hour window
Dashboard
Navigate to KakaoTalk -> Dashboard for:
- 6 KPI cards -- Total Sales, Orders, Channel Friends, Products (with out-of-stock count), Message Delivery Rate (with sent/failed counts), Sync Success Rate
- 3 charts -- 7-day Sales Trend (line), Order Status (doughnut), Message Delivery (doughnut: Sent / Delivered / Failed)
- Quick action buttons -- View Orders, Products, Channel Friends, Templates, Push Log, Queue Jobs
- Recent Activity feed -- last 10 queue events
- Status footer -- pending queue jobs, errors needing review, last sync time
- Auto-refresh every 60 seconds
- Dark mode aware (Odoo 17/18/19)
- Mobile responsive breakpoints
Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
Connection failed: Auth rejected | Admin key invalid or scope missing | Verify Admin Key in Kakao Developers Console -> App Settings -> App Keys; ensure commerce + messaging scopes are enabled |
Template gate: template not approved | Sending alim-talk before Kakao approves your template | Submit template in Kakao Business; wait 1-5 business days; mark approved in Odoo only after Kakao confirms |
Recipient has not added the Kakao Channel | Trying to send to a user who isn't a channel friend | Server-side enforced -- you cannot bypass; user must add the channel manually |
Rate limited (retry after Ns) | Per-app quota exhausted | Backoff handled automatically by client; reduce send burst or request a quota increase from Kakao |
| Alim-Talk sent but not delivered | Recipient unfollowed channel after consent | Mark is_channel_friend = False on the customer mapping; sync will refresh on next channel-friends pull |
Limitations
- No customer object in talk-store -- buyers are channel-friends, not standalone records
- Approved-template gate for alim-talk is a manual, multi-day process (out of module's control)
- No inbound webhook for chat replies -- requires separate Chat-Bot API enrollment
- Korean docs primary -- API field names are stable; descriptions translated in this module
- talk-store != Kakao Shopping -- this module owns the talk-store catalog space; pair with
kakao_store_managementif you also operate Kakao Shopping
Related Modules
- Kakao Commerce Store Management -- Kakao Shopping storefront (different catalog space)
Support
- Email: [email protected]
- Website: https://www.ecosire.com/
- License management: ECOSIRE Dashboard