cli-dolibarr 3.2.0__tar.gz → 3.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/PKG-INFO +1 -1
  2. cli_dolibarr-3.2.1/cli_dolibarr/dolibarr/__init__.py +1 -0
  3. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/schema.py +8 -2
  4. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/schema.json +287 -1
  5. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/PKG-INFO +1 -1
  6. cli_dolibarr-3.2.0/cli_dolibarr/dolibarr/__init__.py +0 -1
  7. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/LICENSE +0 -0
  8. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/README.md +0 -0
  9. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/README.md +0 -0
  10. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/__init__.py +0 -0
  11. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/_template.py +0 -0
  12. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/accountancy.py +0 -0
  13. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/agendaevents.py +0 -0
  14. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/apibridge.py +0 -0
  15. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/bankaccounts.py +0 -0
  16. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/boms.py +0 -0
  17. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/categories.py +0 -0
  18. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/config.py +0 -0
  19. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/contacts.py +0 -0
  20. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/contracts.py +0 -0
  21. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/delivery.py +0 -0
  22. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/documents.py +0 -0
  23. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/donations.py +0 -0
  24. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/expensereports.py +0 -0
  25. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/interventions.py +0 -0
  26. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/invoices.py +0 -0
  27. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/knowledge.py +0 -0
  28. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/login.py +0 -0
  29. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/member_types.py +0 -0
  30. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/members.py +0 -0
  31. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/mobilehub.py +0 -0
  32. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/mobilehubapi.py +0 -0
  33. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/mos.py +0 -0
  34. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/multicurrencies.py +0 -0
  35. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/orderprocessor.py +0 -0
  36. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/orders.py +0 -0
  37. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/partnerships.py +0 -0
  38. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/pdfa.py +0 -0
  39. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/products.py +0 -0
  40. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/projects.py +0 -0
  41. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/proposals.py +0 -0
  42. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/quickprint.py +0 -0
  43. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/receptions.py +0 -0
  44. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/recruitments.py +0 -0
  45. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/salaries.py +0 -0
  46. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/setup.py +0 -0
  47. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/shipments.py +0 -0
  48. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/status.py +0 -0
  49. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/stock.py +0 -0
  50. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/stockmodule.py +0 -0
  51. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/stockmovements.py +0 -0
  52. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/subscriptions.py +0 -0
  53. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_invoices.py +0 -0
  54. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_orders.py +0 -0
  55. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_proposals.py +0 -0
  56. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierinvoices.py +0 -0
  57. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierorders.py +0 -0
  58. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierproposals.py +0 -0
  59. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/system.py +0 -0
  60. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/tasks.py +0 -0
  61. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/thirdparties.py +0 -0
  62. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/tickets.py +0 -0
  63. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/users.py +0 -0
  64. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/warehouses.py +0 -0
  65. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/webhook.py +0 -0
  66. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/workstations.py +0 -0
  67. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/zapier.py +0 -0
  68. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/__init__.py +0 -0
  69. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/client.py +0 -0
  70. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/config.py +0 -0
  71. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/output.py +0 -0
  72. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/schema_agents.py +0 -0
  73. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/schema_generator.py +0 -0
  74. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/schema_manager.py +0 -0
  75. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/session_client.py +0 -0
  76. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/dolibarr_cli.py +0 -0
  77. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/extrafields_cache.json +0 -0
  78. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/hermes_plugin/__init__.py +0 -0
  79. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/models_supplement.json +0 -0
  80. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/__init__.py +0 -0
  81. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_core.py +0 -0
  82. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_enrich.py +0 -0
  83. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_full_e2e.py +0 -0
  84. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_tools.py +0 -0
  85. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tools/__init__.py +0 -0
  86. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tools/executor.py +0 -0
  87. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tools/tools_schema.py +0 -0
  88. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/utils/__init__.py +0 -0
  89. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/SOURCES.txt +0 -0
  90. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/dependency_links.txt +0 -0
  91. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/entry_points.txt +0 -0
  92. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/requires.txt +0 -0
  93. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/top_level.txt +0 -0
  94. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/pyproject.toml +0 -0
  95. {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cli-dolibarr
3
- Version: 3.2.0
3
+ Version: 3.2.1
4
4
  Summary: CLI tool for Dolibarr ERP/CRM REST API management
5
5
  Author: CLI Anything
6
6
  License-Expression: MIT
@@ -0,0 +1 @@
1
+ __version__ = "3.2.1"
@@ -357,13 +357,13 @@ def refresh(ctx, admin_api_key):
357
357
  4. Auto-infers remaining bad models
358
358
  """
359
359
  client = _get_client(ctx)
360
+ original_key = client.session.headers.get('DOLAPIKEY', '')
360
361
  resolved_key = _resolve_admin_key(ctx, admin_api_key)
361
- if resolved_key:
362
- client.session.headers['DOLAPIKEY'] = resolved_key
363
362
  try:
364
363
  manager = SchemaManager()
365
364
  click.echo("Refreshing schema...")
366
365
 
366
+ # Step 1: sync with normal user key (swagger returns full API for normal users)
367
367
  click.echo(" [1/4] Syncing from Dolibarr swagger...")
368
368
  swagger = manager.fetch_swagger(client)
369
369
  schema = manager.normalize(swagger)
@@ -372,7 +372,10 @@ def refresh(ctx, admin_api_key):
372
372
  models_count = len(schema['models'])
373
373
  click.echo(f" {endpoints} endpoints, {models_count} models")
374
374
 
375
+ # Step 2: extrafields with admin key (temporarily elevate permissions)
375
376
  click.echo(" [2/4] Fetching extrafields...")
377
+ if resolved_key:
378
+ client.session.headers['DOLAPIKEY'] = resolved_key
376
379
  ef_stats = {'injected_models': 0, 'injected_fields': 0, 'elementtypes': 0}
377
380
  try:
378
381
  ef_data = manager.fetch_extrafields(client)
@@ -381,6 +384,9 @@ def refresh(ctx, admin_api_key):
381
384
  f"into {ef_stats['injected_models']} models")
382
385
  except RuntimeError:
383
386
  click.echo(" Skipped (requires admin API key)")
387
+ finally:
388
+ # Restore original key for subsequent steps
389
+ client.session.headers['DOLAPIKEY'] = original_key
384
390
 
385
391
  click.echo(" [3/4] Enriching models...")
386
392
  enrich_stats = manager.enrich()
@@ -1,5 +1,5 @@
1
1
  {
2
- "synced_at": "2026-05-23T07:13:02Z",
2
+ "synced_at": "2026-05-23T12:37:44Z",
3
3
  "source": "swagger",
4
4
  "dolibarr_version": "1",
5
5
  "endpoints": [
@@ -2984,6 +2984,244 @@
2984
2984
  "request_body": null,
2985
2985
  "response_schema": "string"
2986
2986
  },
2987
+ {
2988
+ "path": "/productplus/hscode-specs",
2989
+ "method": "GET",
2990
+ "summary": "获取HS编码规格列表 🔐",
2991
+ "group": "productplus",
2992
+ "parameters": [
2993
+ {
2994
+ "name": "sortfield",
2995
+ "in": "query",
2996
+ "type": "string",
2997
+ "required": false
2998
+ },
2999
+ {
3000
+ "name": "sortorder",
3001
+ "in": "query",
3002
+ "type": "string",
3003
+ "required": false
3004
+ },
3005
+ {
3006
+ "name": "limit",
3007
+ "in": "query",
3008
+ "type": "integer",
3009
+ "required": false
3010
+ },
3011
+ {
3012
+ "name": "page",
3013
+ "in": "query",
3014
+ "type": "integer",
3015
+ "required": false
3016
+ }
3017
+ ],
3018
+ "request_body": null,
3019
+ "response_schema": "array"
3020
+ },
3021
+ {
3022
+ "path": "/productplus/hscode-specs",
3023
+ "method": "POST",
3024
+ "summary": "创建HS编码规格 🔐",
3025
+ "group": "productplus",
3026
+ "parameters": [],
3027
+ "request_body": "productplusCreateHscodeSpecModel",
3028
+ "response_schema": "array"
3029
+ },
3030
+ {
3031
+ "path": "/productplus/hscode-specs/{id}",
3032
+ "method": "GET",
3033
+ "summary": "按ID获取HS编码规格 🔐",
3034
+ "group": "productplus",
3035
+ "parameters": [
3036
+ {
3037
+ "name": "id",
3038
+ "in": "path",
3039
+ "type": "integer",
3040
+ "required": true
3041
+ }
3042
+ ],
3043
+ "request_body": null,
3044
+ "response_schema": "string"
3045
+ },
3046
+ {
3047
+ "path": "/productplus/hscode-specs/{id}",
3048
+ "method": "PUT",
3049
+ "summary": "更新HS编码规格 🔐",
3050
+ "group": "productplus",
3051
+ "parameters": [
3052
+ {
3053
+ "name": "id",
3054
+ "in": "path",
3055
+ "type": "integer",
3056
+ "required": true
3057
+ }
3058
+ ],
3059
+ "request_body": "productplusUpdateHscodeSpecModel",
3060
+ "response_schema": "array"
3061
+ },
3062
+ {
3063
+ "path": "/productplus/hscode-specs/{id}",
3064
+ "method": "DELETE",
3065
+ "summary": "删除HS编码规格 🔐",
3066
+ "group": "productplus",
3067
+ "parameters": [
3068
+ {
3069
+ "name": "id",
3070
+ "in": "path",
3071
+ "type": "integer",
3072
+ "required": true
3073
+ }
3074
+ ],
3075
+ "request_body": null,
3076
+ "response_schema": "array"
3077
+ },
3078
+ {
3079
+ "path": "/productplus/hscode-specs/by-code/{hscode}",
3080
+ "method": "GET",
3081
+ "summary": "按编码获取HS编码规格 🔐",
3082
+ "group": "productplus",
3083
+ "parameters": [
3084
+ {
3085
+ "name": "hscode",
3086
+ "in": "path",
3087
+ "type": "string",
3088
+ "required": true
3089
+ }
3090
+ ],
3091
+ "request_body": null,
3092
+ "response_schema": "string"
3093
+ },
3094
+ {
3095
+ "path": "/productplus/currency-prices",
3096
+ "method": "GET",
3097
+ "summary": "获取多货币定价列表 🔐",
3098
+ "group": "productplus",
3099
+ "parameters": [
3100
+ {
3101
+ "name": "fk_product",
3102
+ "in": "query",
3103
+ "type": "integer",
3104
+ "required": false
3105
+ },
3106
+ {
3107
+ "name": "currency_code",
3108
+ "in": "query",
3109
+ "type": "string",
3110
+ "required": false
3111
+ },
3112
+ {
3113
+ "name": "fk_soc",
3114
+ "in": "query",
3115
+ "type": "integer",
3116
+ "required": false
3117
+ },
3118
+ {
3119
+ "name": "limit",
3120
+ "in": "query",
3121
+ "type": "integer",
3122
+ "required": false
3123
+ },
3124
+ {
3125
+ "name": "page",
3126
+ "in": "query",
3127
+ "type": "integer",
3128
+ "required": false
3129
+ }
3130
+ ],
3131
+ "request_body": null,
3132
+ "response_schema": "array"
3133
+ },
3134
+ {
3135
+ "path": "/productplus/currency-prices",
3136
+ "method": "POST",
3137
+ "summary": "创建多货币定价 (Upsert逻辑) 🔐",
3138
+ "group": "productplus",
3139
+ "parameters": [],
3140
+ "request_body": "productplusCreateCurrencyPriceModel",
3141
+ "response_schema": "array"
3142
+ },
3143
+ {
3144
+ "path": "/productplus/currency-prices/{id}",
3145
+ "method": "GET",
3146
+ "summary": "按ID获取多货币定价 🔐",
3147
+ "group": "productplus",
3148
+ "parameters": [
3149
+ {
3150
+ "name": "id",
3151
+ "in": "path",
3152
+ "type": "integer",
3153
+ "required": true
3154
+ }
3155
+ ],
3156
+ "request_body": null,
3157
+ "response_schema": "string"
3158
+ },
3159
+ {
3160
+ "path": "/productplus/currency-prices/{id}",
3161
+ "method": "PUT",
3162
+ "summary": "按ID更新多货币定价 🔐",
3163
+ "group": "productplus",
3164
+ "parameters": [
3165
+ {
3166
+ "name": "id",
3167
+ "in": "path",
3168
+ "type": "integer",
3169
+ "required": true
3170
+ }
3171
+ ],
3172
+ "request_body": "productplusUpdateCurrencyPriceModel",
3173
+ "response_schema": "array"
3174
+ },
3175
+ {
3176
+ "path": "/productplus/currency-prices/{id}",
3177
+ "method": "DELETE",
3178
+ "summary": "删除多货币定价 🔐",
3179
+ "group": "productplus",
3180
+ "parameters": [
3181
+ {
3182
+ "name": "id",
3183
+ "in": "path",
3184
+ "type": "integer",
3185
+ "required": true
3186
+ }
3187
+ ],
3188
+ "request_body": null,
3189
+ "response_schema": "array"
3190
+ },
3191
+ {
3192
+ "path": "/productplus/price-lookup",
3193
+ "method": "GET",
3194
+ "summary": "价格查询 - 阶梯价格 + 客户优先级 🔐",
3195
+ "group": "productplus",
3196
+ "parameters": [
3197
+ {
3198
+ "name": "id",
3199
+ "in": "query",
3200
+ "type": "integer",
3201
+ "required": false
3202
+ },
3203
+ {
3204
+ "name": "currency",
3205
+ "in": "query",
3206
+ "type": "string",
3207
+ "required": false
3208
+ },
3209
+ {
3210
+ "name": "qty",
3211
+ "in": "query",
3212
+ "type": "integer",
3213
+ "required": false
3214
+ },
3215
+ {
3216
+ "name": "socid",
3217
+ "in": "query",
3218
+ "type": "integer",
3219
+ "required": false
3220
+ }
3221
+ ],
3222
+ "request_body": null,
3223
+ "response_schema": "array"
3224
+ },
2987
3225
  {
2988
3226
  "path": "/products/{id}",
2989
3227
  "method": "GET",
@@ -11250,6 +11488,54 @@
11250
11488
  }
11251
11489
  }
11252
11490
  },
11491
+ "productplusCreateHscodeSpecModel": {
11492
+ "properties": {
11493
+ "dummy": {
11494
+ "type": "integer",
11495
+ "description": "Restler POST参数占位"
11496
+ },
11497
+ "request_data": {
11498
+ "type": "array",
11499
+ "description": "请求体JSON"
11500
+ }
11501
+ }
11502
+ },
11503
+ "productplusUpdateHscodeSpecModel": {
11504
+ "properties": {
11505
+ "dummy": {
11506
+ "type": "integer",
11507
+ "description": "Restler PUT参数占位"
11508
+ },
11509
+ "request_data": {
11510
+ "type": "array",
11511
+ "description": "请求体JSON"
11512
+ }
11513
+ }
11514
+ },
11515
+ "productplusCreateCurrencyPriceModel": {
11516
+ "properties": {
11517
+ "dummy": {
11518
+ "type": "integer",
11519
+ "description": "Restler POST参数占位"
11520
+ },
11521
+ "request_data": {
11522
+ "type": "array",
11523
+ "description": "请求体JSON"
11524
+ }
11525
+ }
11526
+ },
11527
+ "productplusUpdateCurrencyPriceModel": {
11528
+ "properties": {
11529
+ "dummy": {
11530
+ "type": "integer",
11531
+ "description": "Restler PUT参数占位"
11532
+ },
11533
+ "request_data": {
11534
+ "type": "array",
11535
+ "description": "请求体JSON"
11536
+ }
11537
+ }
11538
+ },
11253
11539
  "updateProductsModel": {
11254
11540
  "properties": {
11255
11541
  "label": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cli-dolibarr
3
- Version: 3.2.0
3
+ Version: 3.2.1
4
4
  Summary: CLI tool for Dolibarr ERP/CRM REST API management
5
5
  Author: CLI Anything
6
6
  License-Expression: MIT
@@ -1 +0,0 @@
1
- __version__ = "3.2.0"
File without changes
File without changes
File without changes