Pricing, promotions and settlement

Period

Supply costs for fresh food change often, and each channel has its own list prices, coupons and period prices. Target‑margin sale prices are calculated from supply cost, fees and VAT. After each update, an official channel lookup confirms the price. Regular sale prices and promotion prices are managed separately. Channel settlements, refunds and bank transactions each go to their own ledger to reconcile expected and actual profit.

Updates channel sale prices to reflect supply costs and fees,
and reconciles profit against settlements and actual cash

GoPostgreSQLTypeScriptNext.js

  • Price updates calculated from supply cost, channel fees and VAT for a target margin, confirmed by official lookups after each update
  • Separate policies for regular and promotional prices, including Coupang coupons and instant discounts and Toss Shopping limited‑time prices
  • Price freezing that fixes listed sale prices and bounds promotion prices
  • An append‑only settlement ledger for official Coupang and Toss Shopping settlements that deducts only official refunds from order profit, exactly once
  • Cash ledger that separates bank statement files from supplier deposits by location
  • Profit reconciliation that shows profit per product and option, plus unallocated costs

Channel prices that drifted from policy

Problem
Even after a pricing policy changed, the price actually applied on a channel could differ, and old jobs overlapped with new ones.
Solution
Policy intent and channel results are recorded separately, and the latest evaluation closes earlier jobs for the same policy. Each update is confirmed by an official lookup and reapplied when needed.

Rate limits versus ordinary rejections

Problem
When prices changed in quick succession, the channel rejected requests for rate limiting, but these were closed as ordinary rejections and the cause was lost.
Solution
Each seller account has a minimum interval between price updates, and only confirmed rate limits are rescheduled. Rejection codes and reasons stay in the record. Temporary limits recover, while unknown outcomes and ordinary rejections are never resent automatically.

Customer prices that differed from channel calculations

Problem
Channels round discounts differently and cap percentage coupons differently, so calculated customer prices did not match the real ones.
Solution
Customer prices are calculated with each channel's actual rounding, and percentage coupons get a separate cap on the maximum discount.

A rejected bank integration

Problem
The open banking application for receiving bank transactions directly was rejected.
Solution
Encrypted transaction files downloaded from the bank are uploaded and imported instead. Transactions with the same time and amount are told apart, and categories corrected by hand are preserved.

Settlement profit mistaken for final accounts

Problem
Profit calculated from channel settlements could be read as the final accounting result.
Solution
Settlement‑based profit and final accounting are kept apart. Costs without supporting records are never filled with zero. The screen states that profit is calculated on a settlement basis.