Skip to main content

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: $499 (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​

  1. Download the module ZIP from your ECOSIRE Dashboard
  2. Extract to your Odoo addons directory:
    unzip ecosire-kakaotalk-*.zip -d /opt/odoo/addons/
  3. Restart the Odoo service:
    sudo systemctl restart odoo
  4. Navigate to Apps, click Update Apps List
  5. Search for "KakaoTalk Store Management" and click Install
  6. Enter your ECOSIRE license key when prompted

Configuration​

Step 1: Obtain Kakao API Credentials​

  1. Go to the Kakao Developers Console and create / open your application
  2. From App Settings -> App Keys note:
    • Admin Key (server-to-server, NEVER expose client-side)
    • REST API Key (used for some user-context flows)
  3. From Kakao Business -> Channel note your Channel Public ID (format _AbCdEf)
  4. Optional: provision an Webhook Shared Secret in Developers Console -> Webhooks if you want commerce webhooks

Step 2: Connect in Odoo​

  1. Navigate to KakaoTalk -> Configuration -> Instances
  2. 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 _AbCdEf channel 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
  3. 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.
  4. The detected store name will be auto-filled.

Step 3: Initial Sync​

After successful test connection:

  1. Click Sync Categories to mirror the talk-store category tree
  2. Click Sync Products to import all talk-store products as kakaotalk.product.mapping records
  3. Click Sync Orders to import historical orders (defaults to last 30 days)
  4. 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.

  1. Register your template in Kakao Business Console -> Alim-Talk -> Templates
  2. Wait for Kakao moderation approval
  3. In Odoo navigate to KakaoTalk -> Messaging -> Templates
  4. 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"}
  5. Click Mark Submitted then Mark Approved (after Kakao approves)

Friend-Talk (Promotional)​

Friend-talk uses a fixed schema validated server-side by Kakao:

FieldDescription
titleHeadline
image_urlBanner image (HTTPS)
regular_priceOriginal price text
discount_priceSale price text
rateDiscount percentage text
button_titleCTA button label
button_urlCTA 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:

  1. Navigate to the instance form
  2. Open the Alim-Talk Order Templates notebook (only visible when auto-send is on)
  3. 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:

  1. Configure your webhook URL in Kakao Developers Console -> Webhooks pointing to:
    • https://your-odoo-domain.com/kakaotalk/webhook/order
    • https://your-odoo-domain.com/kakaotalk/webhook/product
  2. Set the shared secret on the instance form (encrypted, never logged)
  3. The controller verifies HMAC-SHA256 signatures on every inbound request and dedupes on the X-Kakao-Delivery-Id header 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​

SymptomLikely CauseFix
Connection failed: Auth rejectedAdmin key invalid or scope missingVerify Admin Key in Kakao Developers Console -> App Settings -> App Keys; ensure commerce + messaging scopes are enabled
Template gate: template not approvedSending alim-talk before Kakao approves your templateSubmit template in Kakao Business; wait 1-5 business days; mark approved in Odoo only after Kakao confirms
Recipient has not added the Kakao ChannelTrying to send to a user who isn't a channel friendServer-side enforced -- you cannot bypass; user must add the channel manually
Rate limited (retry after Ns)Per-app quota exhaustedBackoff handled automatically by client; reduce send burst or request a quota increase from Kakao
Alim-Talk sent but not deliveredRecipient unfollowed channel after consentMark 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_management if you also operate Kakao Shopping
  • Kakao Commerce Store Management (kakao_store_management) -- Kakao Shopping storefront (different catalog space; documentation is not published yet)

Support​