1.0.0 (2025-05-07)
Bug Fixes
- 401 from parallel logins (c5136fd)
- add channel id field on invoices (54bb519)
- add defaults if mfg/expirty dates are missing (ceb72e6)
- add filters for
WarehouseandAccount Group(b7b9f4d) - add filters on various field (092be51)
- add js to warn about use of old settings (30178be)
- add memberships to items (fbc10e2)
- add param self to remaining methods (42eee93)
- add proper filters for warehouse map (302b5d8)
- add template name in variant item name (#170) (339cfe3)
- add validation for
Amazon Fields Map(bab7702) - added points as payments (b998332)
- added therapist to the list of employees (0a75dc2)
- allow updating is_stock_item after creaetion (433a3d6)
- apply taxes at actuals (#36) (624e144)
- assign attribute instead of item (4c017b0)
- attach documents before submitting (2e1e2ee)
- AttributeSets error (389080e)
- avoid 0 values payment entry and mark items as sales items by default (#163) (54a4105)
- avoid duplicate logs for old order sync (9f90628)
- avoid duplication of product on shopify (341625c)
- avoid possible infinite loop with save triggers (bc8e46d)
- avoid triggering custom field creation (01a9c26)
- bad logging (cd210c2)
- better error message in case of HTTPError (e70e586)
- better message for WH registration failure (60ed710)
- bump python version to 3.8 (a31155c)
- bump shopify api version (203df24)
- bump shopify API version (#254) (d0fb890)
- Bump shopify version (#310) (0eeef5e)
- can't save new item (efe512a)
- can't save new item (5da0ea8)
- capture curency code from order data (5023dc0)
- cast to string before concatenating (3cf612b)
- change fieldtype to reduce row size (4142837)
- change tax fields to invoice field names (d325041)
- changing datatypes to small text (81cf062)
- check enabled status before uploading item (48aed46)
- check existence of custom field "amazon_item_code" (a817cf9)
- check for current webhooks (00879cb)
- check for emp on line item level (2752336)
- check item_code for unicommerce requirements (d4ccea3)
- check order status right before invoicing (04bf9fc)
- CI (83713e4)
- CI (4d451e2)
- ci commits (23e2234)
- clear all stale webhooks when registering (4dbdc15)
- clear old integration logs automatically (4452fea)
- code to add employee (5149d4d)
- configurable client id (cd0033f)
- consider all warehouse for non-inventory ops (1966dc2)
- consider reserved qty when updating inventory (c462841)
- consider variant id while creating new item (0a2021b)
- convert HTML to text while syncing description (#235) (3546eca)
- convert tax title to string (a6765a0)
- convert tax title to string (723dca6)
- correct endpoint for sales invoice generation (868c4d9)
- correct invoice label API (#88) (f4bd860)
- correct method for defaults (d9b38ba)
- correct shipping provider code in invoice (b814753)
- Correctly filter existing return order (2fe3d07)
- Correctly wrap function (b1dc35c)
- create_brand() (ddf31d2)
- create_manufacturer() (230104d)
- custom fields for sales invoice items (3edfffc)
- customer name concatenation (#175) (f8ac70b)
- deduplicate cusomters based on address (37d4944)
- delete custom field amazon_item_code after migration (1eab7b7)
- delete logs in single query before uninstall (8b8251a)
- disable uploading of items in data import (b72717b)
- document modified in two separate calls (9ead99c)
- don't add unchanged items (8889a86)
- don't add unchanged items (#66) (948301e)
- don't lock while updating tokens (5910636)
- don't match templates by skus (#34) (d6dec82)
- don't try to create session if not configured (#10) (58b0eab)
- don't try to create session if not configured (#10) (a671070)
- don't use stored value while unregistering (be220f7)
- dont check for old settings on v14 (#48) (cd6e09d)
- dont log error for item query (2b3fa0c)
- dont run invoice hooks if unicommerce isn't enabled (cb5853f)
- dont update existing custom fields (a688635)
- dont upload price on unicommerce (6a526e1)
- employee filters and added db.commit (#147) (92b2340)
- error case (a125c29)
- error when there is no billing address is shopify order (#283) (d1e7354)
- error when there is no billing address is shopify order (#283) (f9a9dd1)
- error while getting asin or product-id from report_document (2114f56)
- false error about old settings (c63bcd8)
- file save fails if filename contains
/(3ca7541) - first inventory sync failing (#54) (c2acda4)
- first inventory sync failing (#54) (c8ce50e)
- for demo (220d51c)
- generate manifest before submit (e99e64e)
- get ecommerce item (1bc0f53)
- get sales invoice API requires facility code (2bd845a)
- get_erpnext_item not considering template (aa08e1b)
- gift card adding (6725104)
- Give low priority to SKU (#287) (042c88a)
- handle case when error message is missing (1a86ece)
- handle case where shipping address is same (4618a93)
- handle inconsistency in state naming in Unicommerce (50d3f1a)
- handle refresh token expiry (5c3115b)
- handle success/failure properly (fecfcb0)
- handle tax inclusive shipping (a4b2fbb)
- handle tax inclusive shipping (870c239)
- handle wrong credentials gracefully (17c392c)
- hide default SI generation button (5010bd9)
- hide irrelevant manifest fields in print (1126680)
- if warehouse map is available, use it in DN (cb0cd72)
- ignore 0 tax amount (ee164d5)
- ignore any possible exception from old deleted doctype (32a62fc)
- ignore deleted variants from sync (27c6907)
- ignore incomplete items while migrating (fdaeb14)
- ignore mandatory fields while syncing address (#28) (06c3de0)
- ignore non batched items in auto grn (8e9f673)
- ignore permissions while updating token (fa461c8)
- ignore picklist validation if not enabled (1fee343)
- improve logging for item sync (40001f3)
- improve scanning of packages (d1bbbe1)
- incorrect patch file (2a6d5e5)
- increase migration timeout and other fixes (d7b1f67)
- increase timespan for searching new orders (fdfbdf0)
- initiate manifest items if not existing (e12db27)
- integration_item_code for inventory sync (#7) (64d6146)
- inventory sync failure when last_run not present (88eaefe)
- invoice not submitting with WH allocation (6fa6561)
- item level discount calculations (#56) (1eaf360)
- item level discount calculations (#56) (5c58d82)
- item wise tax detail missing on shipping lines (#232) (08e41d2)
- item_group_name (9583e44)
- item-wise tax distribution (92b5eb7)
- iterate and fetch all locations (af4c57c)
- keep all items for fully cancelled order (fa89ba9)
- keep return warehouse on location mapping (a45a7cd)
- keep shopify api ops in decorated function (a81df87)
- keyError(processingStatus) (6cd99e1)
- lack of variant_id should not mean template (910dd61)
- limit inventory updates in single request (f050044)
- limit maximum number of days to sync to 14 (e836e8f)
- link created SI with SO (3e2c67d)
- linter (65c232e)
- linter issue (1ed822c)
- linter issue (a791d44)
- linter issue (ee80db5)
- linter issue (e8e1916)
- linter issue: (fbe8f86)
- linting issues (f676b2c)
- linting issues (369fcda)
- linting issues (e1b2f3d)
- log item level failures during inventory sync (592bf79)
- logging zenoti error message, status code and title (97d7d0c)
- make
statetitle case (d0b2da0) - make fields mandatory based on status (a6677db)
- make tax description upper case (ca1a39a)
- map shopify weight unit to ERPNext (3e2f5c3)
- misc unicommerce fixes (#89) (710d0db)
- misleading "success" message for DN when SO doesn't exist (7ea6d15)
- module def for tax account child table (7170974)
- move custom field creation (9a2d4d0)
- move status update job to from 30 to 60 min (0b7e922)
- old data migration checks not stopping (70c0688)
- only add shipping line if >0 (fc354ef)
- only log inventory sync failure in single log (5e8928e)
- only set inventory tracking if is_stock_item (cac20c1)
- order -> payload for new function definition (6a38497)
- pass on product_id in case of variant (aea67a7)
- patch shopify methods during test (1dff9f6)
- patch to update custom fields (a2824a9)
- patch:
set_default_amazon_item_fields_map(#263) (27f777b) - phone number mapping in address (#198) (66a3782)
- populate correct rate for item-tax reports (ac5cff5)
- pos related issues (07d4d5f)
- possible deadlock while deleting dummy prices (#177) (c22dd49)
- possible missing updates during time of sync (01fafe0)
- prioritize user input in tax description (83c5299)
- proceed for center code only when response available (36b567a)
- proceed for center code only when response available (2ab0fa4)
- proceed for center code only when response available (#68) (b397228), closes #56
- proceed only if response from api received (d0fb8dd)
- proceed with stock reconciliation only when response available (#69) (feb0c8b), closes #56
- product sync (3acebaa)
- re-introduce consolidation (36e3a39)
- reload SO page after invoice is generated (9591e05)
- remove cancelled items from WH allocations (52958c2)
- remove explicit commit (462253d)
- remove explicit commits (#31) (1f117b8)
- remove image upload (9dcec08)
- remove the trailing comma after the last SKU (#201) (2894160)
- removed print statement (d6b65d9)
- removed Tax Mapping doctype (fa7196c)
- removed unwnated file (23261aa)
- repeat items in sales invoice (eae1b18)
- restrict retry button to system managers (b67c15e)
- reverting error_message field type to text editor (96a039a)
- rollback failed order syncs (#40) (67198b8)
- rollback on errors (1db68e9)
- Round tax in description and add to shipping calculations (#21) (#22) (0e6318d)
- RTO return credit note extra paramter (8daa8f6)
- run uniqueness check only on insert (7e34e87)
- sales invoice syncing issue (#143) (6baa4c6)
- sales order status not updated on cancel (99382a2)
- sales transaction issues (#138) (5817c1b)
- same items inventory sync across multiple WH (71675fb)
- save after renewing tokens (1c0f51e)
- scan duplicate and manifested packages (6b4a624)
- send full image url path (f0d4aee)
- set default field-map onload (60c936a)
- setting for updating changes to existing item (9c6919b)
- setting last sync (8b6d604)
- shopify default customer (#270) (187ffdb)
- shopify default customer (#270) (882207f)
- shopify sync issue without customer (8d41768)
- shopify sync issue without customer (3763ab5)
- shopify: correct module name (b217265)
- shopify: don't run migration before enabling (3ea1e3e)
- shopify: handle multiple instance of same item in delivery (7d663c1)
- shopify: ignore invalid dummy phone numbers (61da9fa)
- shopify: ignore unsupported methods in resync (77d41d5)
- show update button only if upload is enabled (95e8f4a)
- SI falsely stuck in queued state (bc3558b)
- SI line item quantity functionality (4676774)
- skip cancel_order if order is not found (dfb851e)
- sku only allowed for non-template items (df5d6eb)
- start and end date (09a91cc)
- State mapping (f158a4a)
- status not chaning from queued on retry (0060e29)
- store invoice data and logs (a92a019)
- syncing therapists creates duplication records (#150) (2d06962)
- tax category to avoid tax templates (#32) (cfd4132)
- tests (212127b)
- tests for mocking webhook response (62d9876)
- timeout issue in item and stock reconcilation (#135) (cf61bae)
- tips related issue (df50aa2)
- try both sku and product id for getting item code (10366b8)
- type case (db948ec)
- typo (fea8bec)
- typo in addres field (92b853b)
- typos (7e7c288)
- unable to save
Amazon SP API Settings(#262) (ffb7c97) - undo consolidation of items in SO (f6b8800)
- unicommerce date format (18ea0e5)
- unicommerce: set
namealso when syncing new item (6b2199f) - unicommerce: use updated since instead of from_date (91b2ee9)
- update filters for buying and selling list (b965af5)
- update labels for custom app (4041b2c)
- update package dimension failing (cab8b37)
- updated woocommerce connection test (896a9d5)
- updated woocommerce connection test (acf48b8)
- updating webhooks for first time (e0f7de5)
- use center code insted of center name (9abd316)
- use correct invoice series while invoicing (#121) (b342b9e)
- use correct target for mapped doc (a88ae28)
- use db column existence instead of meta for check (e65ad9e)
- use default shopify customer is none provided (afb7543)
- use doc local flags for locking behaviour (d58b7de)
- use dummy price list to avoid clashes (#168) (c01e0b1)
- use get_password() to get value for password fields (651ac22)
- use invoice reponse for label link (9301c01)
- use net_total for total discount (845e962)
- use RQ job to query active jobs (f7100d2)
- use separate endpoint if item exists (29944f3)
- use set instead of setattr (f68f924)
- use shopify order date during old order sync (3848f19)
- use simpler endpoint for invoice generation (b6d41d0)
- use SO data in absense of invoice response (db09591)
- use tax category to ignore item tax templates (502026f)
- Use TZ aware ISO 8601 date format (9613b5c)
- Use UTC timestamp for filtering recent orders (6ab22a0)
- use zulu time in search sale order (b0ff1de)
- ux: add appropriate query filters (cd807d2)
- ux: allow stock manager/user to use manifest (#95) (90517c1)
- ux: better title for logs (347564e)
- ux: clean up shopify setting page (#26) (58e8a6e)
- ux: cleanup ecommerce item views (dbc7a72)
- ux: cleanup log list view (137b571)
- UX: Correct URL in shopify webhooks (71d5a3f)
- ux: custom field order of insertion (0e45b9f)
- ux: don't show Sync buttons in local doc (e525f9e)
- ux: don't validate unless required (bbdb2a4)
- ux: hide old doctype to avoid confusion (#3) (7d682fe)
- ux: improve form view for uni manifest (e8a76c0)
- ux: redo channel config form layour (3ab26ff)
- ux: remove tokens on disabling integration (f9ea9d2)
- UX: show logs button on shopify setting (9d131f5)
- validate address (e96c206)
- validation for company links in channel conf (9380677)
- verify hmac unconditionally (7f22c45)
- Verify if enable perpetual inventory is unchecked and set unchecked if checked (45b1184)
- Verify if enable perpetual inventory is unchecked and set unchecked if checked (#67) (60a136b), closes #56
- Warning about recomputed taxes (1bb9198)
- wh mappings should be unique (8b9aef8)
- wrap resync in savepoint (fcd7680)
- zenoti category (syntax issue) (#142) (acdc2a3)
- zenoti category api url issue (#144) (591c781)
- zenoti employee syncing issue (#148) (af0d8cc)
- zenoti handling api rate limits (#146) (9920ba4)
- zenoti item tax template (#156) (e6d7216)
- zenoti item_to_search dict key (#145) (36a3a6c)
- zenoti posting date time issue (#149) (651bf3c)
- zenoti removed syncing of item/category on syncing of Stock Reconi. (#155) (89b5bff)
- zenoti settings shouldn't trigger unless enabled (e79f701)
Features
- (Uni-commerce) generate Delivery Note and sync item fields (#239) (f474301)
- Add field "Enable Amazon" (b04a92d)
- add field "is_old_data_migrated" (12e4004)
- add func to migrate old user data (99db302)
- add hourly job for syncing inventory (a5d8851)
- add inventory_synced_on field (9e33e71)
- add invoice generation APIs (caf00fb)
- add PDF in sales invoice (da06f9f)
- add price, sku on creating item on shopify (084b9b5)
- add required sections in unicommerce setting (ea412d4)
- add table
Amazon Fields MapinAmazon SP API Settings(45d48ac) - Added masters for Zenoti Center, Category and some fixes (#134) (6c7b901)
- allow selecting group warehouses in mapping (23d180f)
- Amazon SP-API Integration (#161) (16ccae4)
- amazon_methods.py (09ac586)
- amazon_methods.py (84da303)
- amazon_methods.py (6cd0fbc)
- amazon_methods.py (233e88b)
- amazon_methods.py (71c414e)
- amazon_sp_api_settings.get_products_details() (f8e91d0)
- amazon_sp_api_settings.py (47822a3)
- amazon_sp_api.py (45e2222)
- amazon-sp: validate credentials on save (3257794)
- AmazonSPAPISettings.get_order_details() (fcec461)
- AmazonSPAPISettings.schedule_get_order_details() (66ed5da)
- api client method for sales order data (fa01cef)
- api method for getting inventory snapshot (20ec7ff)
- api methods for create/get shipping manifest (56854d9)
- Auto GRN settings and stock entry type (caeb249)
- background item syncing (e857245)
- barcode in manifest item lines (a316b9c)
- basic doctypes reqd for shipping manifest (6455a8f)
- basic SO syncing (4638d62)
- bulk import API and auto GRN (#125) (408d324)
- Bulk import products from Shopify (#133) (40d7f92)
- bulk retry failed jobs (2f9bb71)
- cancel fully cancelled orders (5d1229b)
- capture batch no on SO item (2914e60)
- capture COD charges (7451a16)
- capture COD flag and shipping method (d4b330d)
- capture facility code at order creation (7d2cb1f)
- capture gift wrap charges (838e13a)
- capture return code on credit notes (bf7b525)
- capture shipping costs in tax lines (04be1c7)
- change product status on disabling item (e81d7ad)
- check order cancellation status at sync (a165ddf)
- class AmazonRepository (56f3ac1)
- client method for creating invoice using shipping package (789831d)
- config for shipping per channel (fabca88)
- configurable interval for inventory sync (#19) (1f40638)
- connect with shopify and setup webhooks (f979eb3)
- consider SKU in Ecommerce item (a4d087f)
- consolidate quantity by wh, sku and price (2f52956)
- cost center config in unicommerce_channel (296a206)
- create and close manifest on unicommerce (48a0d9a)
- create credit note for fully returned orders (ce5ce24)
- create custom fields on enabling shopify (b2ef575)
- create delivery notes (188a399)
- Create DocType "Amazon SP API Settings" (5b0afe9)
- create draft credit notes for returns (RTO) (1ed1f96)
- Create module "Amazon SP-API" (c889c1d)
- create payment entry from Sales Invoice (fb28230)
- customerCode to deduplicate when available (09c6b88)
- default item group configuration (ece0ab9)
- Default sales tax account in shopify (7c18889)
- default warehouse per unicommerce channel (435e6dc)
- DocType "Amazon SP API Settings" (0a32750)
- dynamically link SO and SI row items (188b830)
- ecommerce integration logging (91370eb)
- Ecommerce item DocType (2e1d6f7)
- ecommerce item doctype to link erpnext items (979d9ce)
- Enable a description text for the final invoice on each tax line setting (#15) (e1099e6)
- facility code in package list on manifest (918f42e)
- fetch orders to be synced from unicommerce (5468f23)
- fetch packages from open invoices (913a83e)
- field to track manifest status on invoice (77f0208)
- field validations and fetching for manifest (4032474)
- flag to ignore status for fetching WH (03573f1)
- generate invoice from order (324abcf)
- get_catalog_items_instance() (ae167e6)
- get_reports_instance() (dda707e)
- get/create sales invoice using api client (a743a7a)
- Handle HTTPError in "get_access_token" (994d901)
- indicator for log status in list view (d584a15)
- Initialize App (e6116ef)
- inventory sync with Unicommerce (1278328)
- invoice and shipping package code fields (fe74990)
- invoice status field on sales order (fe7f28e)
- item variant sync (#212) (d1c6b22)
- item-product category mapping (0340bfa)
- leave comment if totals dont match (7e10335)
- log clearing support (0d8d5b5)
- log generation status based on existence of invoice (326dfa6)
- logging inventory update status (150d9ec)
- make invoice submission optional (f9ee7d3)
- manual sync from UI (0c6c667)
- map shopify locations to ERPNext Warehouse (f5d9f46)
- match SKU to reduce duplication (a6543a2)
- method to update shipping package details (2e63c98)
- migrate old item data (eb4a285)
- migrate sync old orders feature (c5f90e6)
- minor: add customer note as comment on doc (#27) (954a05d)
- minor: add raw data to doc to allow scripting (26e2903)
- minor: open logs from setting page (c24110a)
- move multi-invoice generation to background (f5aee54)
- new child doctype
Amazon Fields Map(e3d1bf2) - open sales order from invoice page (341458d)
- open unicommerce item from item form (78ef0b4)
- open unicommerce manifest (de06e6c)
- open Unicommerce order URL from SO (519f219)
- option to auto-make payment entries (8c1385c)
- option to make draft payment entries (431a7f1)
- option to only sync complete orders (e57fd90)
- partial CIR returns (ac1c9db)
- pass WH details when generating invoice (66b80e0)
- pick custom naming series for documents (0c52761)
- populate naming series fields with defaults (2a2f03c)
- prevent GRN stock entry cancellation (b36f5f0)
- provision for linking variants (4041828)
- Reports.create_report() (ddfd7cd)
- return created sales orders list from AmazonRepository.get_orders() (990b804)
- return products list from AmazonRepository.get_products_details() (b24d0a8)
- reverse mapping for items (0e2e806)
- Sales Invoice sync (b8d9acf)
- scan AWB barcode to add package in manifest (37b18e4)
- select a package type in Sales Order (52921a9)
- set scan identifier as first barcode (bc74a90)
- set shopify_order_json for customizations (d700e4c)
- shopify: consolidate tax accounts in order (4d60fb0)
- shopify: resync item in bulk import (bed3723)
- shopify: sync shopify selling rate (#221) (3ae06a6)
- specify return warehouse for each channel (ad2cb81)
- status sync for shipping packages (c8d9d7a)
- stock entry hook submitting GRN (a29ef6f)
- store order item code in child table (0228898)
- store tracking no. and shipping provider (8e1dbf4)
- sync customer (250d8df)
- sync customer (8f5ecdd)
- sync invoice labels (a4d7054)
- sync item from unicommerce to ERPNext (3313bbd)
- sync item sizes (349b999)
- sync order status periodically (14e5045)
- sync sales invoice (d8f85c8)
- sync shopify sales order (8341697)
- sync transfer orders (f428171)
- sync warehouse qty (2708917)
- tax field mappings (9200f52)
- tax fields in unicommerce channel (bdb08bd)
- test_data.py (3229355)
- total discount on each item row (bd3374a)
- unicommerce package type doctype (b6ba1c4)
- Unicommerce settings + authentication (214a3fe)
- UnicommerceAPIClient and basic item wrapper (9cc3c50)
- unicommerce: capture batch group field (#186) (e8a932b)
- unicommerce: channel config doctype (8a5cdb7)
- unicommerce: func for uploading ERPNext item (3aa554e)
- unicommerce: Sales Invoice creation through picklist (#240) (8410c59)
- unicommerce: TCS account (#104) (0e9595e)
- unicommerce: warehouse mapping (3170523)
- update fields in setting, add tax map table (e160ae7)
- update manifest status on invoices (5325eb6)
- update package size in shipping package (a995f77)
- update partially cancelled items (5754ed2)
- update status of cancelled shopify orders (b2b212c)
- upload new single erpnext item to shopify (8134526)
- use batch code from unicommerce (7b44bf0)
- Use ecommerce_item for mapping shopify items (6a130f6)
- ux: open grn button (a28fba1)
- validate incoming SO items (2ade779)
- validate stock entry for unicommerce GRN (741c904)
- validation for max_retry_limit (4f5cabc)
- warehouse allocations for generating invoice (4b7b766)
- warehouse specific addresses in SO #118 (4c814f8)
- Woocommerce Integraion (7de7e92)
- zenoti category naming (#141) (33dd06a)
- Zenoti final changes (df53f2d)
- Zenoti initial commit (5672fea)
Performance Improvements
- add index on filterable custom fields (a11b877)
- batch and commit inventory updates to shopify (#233) (0dbdc0b)
- check item existence before creating (68d7730)
- create item price only for new item (695b3d2)
- directly call get_catalog_item() from get_products_details() (9f76720)
- use cached shopify settings (80ec3a2)
Reverts
- consolidation of items (6378186)