| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) • Invoicing (account) |
| Lines of code | 1457 |
| Technical Name |
mp_kaspi_kz_pricing |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) • Invoicing (account) |
| Lines of code | 1457 |
| Technical Name |
mp_kaspi_kz_pricing |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Kazakhstan Kaspi.kz Price & Stock Pusher
Bulk-update your Kaspi.kz listing prices and stock straight from Odoo pricelists â with your own Kaspi Merchant API token (BYOK).
What it does
This app is a focused dynamic re-pricer for Kaspi.kz sellers in Kazakhstan.
It reads the price for each product from your Odoo pricelist (or the product's
own sales price), turns it into a valid whole-tenge Kaspi listing price, and
generates the Kaspi price-list feed (the kaspi_catalog XML
that Kaspi imports) for the whole catalogue â in offer sets of up to 100, exactly
as the Kaspi price-list format expects. Available stock is written into the same
feed.
Kaspi updates prices and stock by polling a price-list URL you publish
(Kaspi fetches it roughly every hour) â it is not a direct push API. This app
computes every price under your rules and builds that kaspi_catalog
XML for you; you publish it at the feed URL configured in your Kaspi Merchant
Cabinet. Your Merchant API token is used to verify the connection.
Key features
Pricelist-driven prices
Source the price from any Odoo pricelist or the product's Sales Price. Change the pricelist once and re-push â every listing follows.
Whole-tenge rounding
Kaspi listings are whole tenge (no minor unit). Round to the nearest 1 / 10 / 50 / 100 KZT, or force psychological endings such as 12 990 or 12 900.
Margin-floor guard
A price is never pushed below cost à (1 + minimum margin %). A mis-built pricelist can no longer dump your stock at a loss on the marketplace.
Min / max clamps
Global and per-product absolute price floors and ceilings keep every listing inside a sane band.
No-op suppression
Prices that already match the last value sent to Kaspi are skipped, so each run only ships real deltas and the feed stays compact.
Stock in the feed
Available quantity per SKU and per Kaspi warehouse / point-of-service is written
into the feed's <availabilities> block, in the same run or on its own.
Preview before push
A wizard shows exactly what every row will become â computed price, rounded price, previous price and the reason a row is uploaded or skipped â before anything leaves Odoo.
Run history & API log
Every bulk run is recorded with per-row results and every Kaspi API call is logged with status, row count and duration for troubleshooting.
Scheduled rebuild
An optional hourly scheduled action re-prices the whole enabled catalogue and rebuilds the feed automatically. Disabled by default â you turn it on when ready.
BYOK & safe
You paste your own Kaspi Merchant Cabinet token, used to verify the connection.
The generated kaspi_catalog feed is yours to publish; the API base URL
is editable for proxies.
Rounding modes
| Mode | Example input | Result |
|---|---|---|
| Whole tenge | 12 344.70 | 12 345 |
| Round to step 10 | 12 344 | 12 340 |
| Round to step 50 | 12 330 | 12 350 |
| Psychological ...90 | 12 345 | 12 390 |
| Psychological ...900 | 12 600 | 12 900 |
How to use
- Open Settings → Kaspi.kz Pricing, paste your Kaspi Merchant Cabinet API token and your Merchant ID, then click Test Connection.
- Pick a source pricelist, a rounding mode and (optionally) a minimum margin.
- On each product, tick Push to Kaspi and set the Kaspi SKU (or rely on the Internal Reference / Barcode).
- From the product list choose Push to Kaspi.kz, preview, then build the
feed â or let the scheduled action rebuild it hourly. The run's
Price-List Feed (XML) tab holds the generated
kaspi_catalog. - Publish that feed at the price-list URL set in your Kaspi Merchant Cabinet so Kaspi imports it on its regular poll.
Requirements
- Odoo 18.0 or 19.0 (Community or Enterprise).
- An active Kaspi Merchant Cabinet account with an API token.
- The Python
requestslibrary (shipped with Odoo).
This connector generates the Kaspi kaspi_catalog
price-list feed and verifies the connection with your own Kaspi merchant
credentials. It is not affiliated with Kaspi.kz.
Screenshots
Api Log
Push Prices
Pricing Runs
Settings
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module