PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.6
ووسلام – همگام سازی ووکامرس و باسلام v1.10.6
1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 All 53 releases
sync-basalam / CHANGELOG.md

CHANGELOG.md in ووسلام – همگام سازی ووکامرس و باسلام 1.10.6, at CHANGELOG.md

594 lines 16.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 # Changelog
2
3 <details>
4
5 <summary>1.10.6 - 2026-08-11</summary>
6
7 ### Fixed
8 - Product images in AVIF or another image format unsupported by Basalam are now converted to JPEG before the upload request, preventing the `422` unsupported-MIME error
9 - Temporary downloaded and converted product-image files are removed after both successful and failed uploads; when the server cannot decode the source format, the plugin now returns an actionable error instead of sending an invalid MIME type to Basalam
10 - A copied product no longer inherits *any* Woosalam data from the product it was copied from — not the Basalam connection, and not the per-product settings (video, custom price change, gold/mobile fields, product type and value, wholesale, discount flag). Every `sync_basalam_*` / `_sync_basalam_*` meta on the duplicate and its variations is stripped before WooCommerce saves the duplicate (`woocommerce_duplicate_product_exclude_meta`), cleaned again after duplication, and also cleaned for copies made by third-party duplicate plugins (`dp_duplicate_post`, `dp_duplicate_page`, `duplicate_post_post_copy`). Individual keys can be kept via the `sync_basalam_duplicate_purge_meta_keys` filter
11 - Disconnecting a product now removes the connection meta of every vendor id (previously only the currently configured vendor's keys were removed, so a stale, hard to find key could stay in the database) and clears `sync_basalam_variation_id` from all variations, not only from products currently typed as variable
12 - No product data, status change, or discount is sent to Basalam while two or more WooCommerce products share one Basalam product id. The operation is stopped with a clear message instead of overwriting the wrong Basalam product (this is what made old prices and old stock reappear on Basalam)
13 - Products with an empty Basalam product id no longer produce a malformed update request
14
15 ### Added
16 - A one-time repair on update that finds WooCommerce products sharing a Basalam product id, keeps the connection on the oldest (original) product, disconnects the copies, and reports the result in an admin notice and the plugin log
17
18 </details>
19
20 <details>
21
22 <summary>1.10.5 - 2026-08-05</summary>
23
24 ### Changed / Improved
25 - Limited bulk product update API requests to a maximum of five per minute without reducing the execution rate of other background jobs
26
27 </details>
28
29 <details>
30
31 <summary>1.10.4 - 2026-08-04</summary>
32
33 ### Fixed
34 - Preserved complete URLs in new ticket messages, ticket replies, and optional access-information fields, including percent-encoded URL segments that WordPress text sanitization previously removed
35 - Updated ticket media uploads to send `type=ticket_item` and `collection=IMAGE` as multipart form fields to the `/media` endpoint, and fixed the upload service to return the API response
36
37 </details>
38
39 <details>
40
41 <summary>1.10.3 - 2026-07-22</summary>
42
43 ### Changed / Improved
44 - "Price increase" became "price change" everywhere (code, markup, CSS classes): negative values are supported, so e.g. `-10` lowers the final Basalam price by 10% (percentages are capped at 35% increase and 35% decrease; values outside the -100..100 range are fixed Toman amounts)
45 - The global setting key was renamed from `increase_price_value` to `price_change_value`, and the per-product meta from `_sync_basalam_increase_price_value` to `_sync_basalam_price_change_value`. Old values are not migrated — re-enter the price change in the settings
46 - The category-commission mode is now stored as `commission` instead of `-1`, so it no longer collides with a real negative percentage
47
48 ### Added
49 - A "custom price change" field in the Basalam product settings tab and in the products list bulk edit, so a single product or a selection of products can override the global value (or switch to category commission)
50
51 </details>
52
53 <details>
54
55 <summary>1.10.2 - 2026-07-19</summary>
56
57 ### Changed / Improved
58 - Migrated product photo and video uploads from the legacy direct upload endpoint to Uploadio's presigned media flow
59 - Added SHA-256 metadata, direct staging upload, completion handling, and status polling so product payloads receive the final Basalam media ID and URL
60 - Ensured temporary remote media files are removed after both successful and failed uploads
61 - Streamed remote media downloads and multipart uploads with size-aware limits and timeouts to support large product videos without buffering the entire file in PHP memory
62
63 </details>
64
65 <details>
66
67 <summary>1.10.1 - 2026-07-13</summary>
68
69 ### Fixed
70 - When Basalam rejects a product create/update with `422` because the description contains forbidden content (social-network names, page/channel mentions, etc.), the plugin now extracts the flagged phrases — highlighted inside `<em>...</em>` in the response `snippet` — strips them from the description, and automatically retries (up to 3 times). Previously the sanitizer looked for a non-existent `value` field, so nothing was removed and the retry never helped
71
72 </details>
73
74 <details>
75
76 <summary>1.10.0 - 2026-07-11</summary>
77
78 ### Added
79 - Merged the "Woosalam Plus" add-on into the core plugin as a built-in "Financial Management" section: view store balance, active settlement requests, settlement history, and submit settlement requests to wallet or bank account
80 - Added the `customer.identity.read` scope to the Basalam OAuth connection request (required to fetch the user's bank account list in the settlement flow)
81
82 ### Note
83 - Users who connected to Basalam before this release must reconnect ("Connect to Basalam") once so the new scope is granted before the bank-account settlement feature works
84
85 </details>
86
87 <details>
88
89 <summary>1.9.2 - 2026-07-08</summary>
90
91 ### Security
92 - Fixed a CSRF vulnerability in the Basalam OAuth callback (`basalam-save-token`) that could let a forged request overwrite the stored connection credentials; the callback now requires a single-use, time-limited authorization that the admin actively started, and the "connect to Basalam" links go through a nonce-protected request
93 - Hardened output escaping across admin pages, templates and exception messages (esc_html/esc_attr)
94 - Switched internal redirects to wp_safe_redirect and documented direct custom-table queries
95
96 ### Changed / Improved
97 - Tested up to WordPress 7.0
98
99 </details>
100
101 <details>
102
103 <summary>1.9.1 - 2026-06-30</summary>
104
105 ### Fixed
106 - show check-orders button and vertically center its content on mobile/tablet
107
108 </details>
109
110 <details>
111
112 <summary>1.9.0 - 2026-06-21</summary>
113
114 ### Added
115 - add gold product type with purity and weight attributes
116 - add preparation days management for product categories
117
118 ### Fixed
119 - decrease min pkg weight
120
121 </details>
122
123 <details>
124
125 <summary>1.8.8 - 2026-05-18</summary>
126
127 ### Fixed
128 - fix City/state mapping with persian shiping woo
129 - increase count of photo limit
130
131
132 </details>
133
134 <details>
135
136 <summary>1.8.7 - 2026-05-16</summary>
137
138 ### Added
139 - Product video upload support (VideoService, VideoField, VideoSourceResolver)
140 - Circuit breaker alert notifications
141 - replace toast with alert()
142 - Limit on increase precent(max 35%)
143 - Migration 1.8.7
144
145 ### Fixed
146 - Improved file upload, lock manager, and API response handling
147
148 </details>
149
150 <details>
151
152 <summary>1.8.5,1.8.6 - 2026-05-10</summary>
153
154 ### Fixed
155 - deduplictaion orders
156 - fix stuck-processing
157
158 </details>
159
160 <details>
161
162
163 <details>
164
165 <summary>1.8.4 - 2026-05-03</summary>
166
167 ### Fixed
168 - Circuit Breaker mechanism
169
170 </details>
171
172 <details>
173
174 <summary>1.8.3 - 2026-05-03</summary>
175
176 ### Added
177 - Added bulk edit support for wholesale settings, product type, and custom price increase
178 - Added per-product custom price increase support
179 - Added an information API endpoint to improve AI agent support in `admin.hamsalam.ir`
180
181 ### Changed / Improved
182 - Added automatic order creation in status change events when the order does not already exist
183 - Clear saved token on `401 Unauthorized` responses from `*.basalam.com` requests
184 - Show an error when required Woosalam domains are blocked
185 - Prevent task execution when required Woosalam domains are blocked
186
187 ### Fixed
188 - Fixed user-reported issues
189
190 </details>
191
192 <details>
193
194 <summary>1.8.2 - 2026-04-04</summary>
195
196 ### Added
197 - Photo and weight validator for products
198 - Filter hook for contact-us section visibility
199 - Prefix and suffix to product title for category detection
200
201 ### Fixed
202 - Fetch current vendor info without cache
203 </details>
204
205 <details>
206
207 <details>
208
209 <summary>1.8.1 - 2026-03-07</summary>
210
211 ### Added
212 - basalam Chat widget
213
214 </details>
215
216 <details>
217
218 <summary>1.8.0 - 2026-03-05</summary>
219
220 ### Changed / Improved
221 - Introduced an internal DI container (`ContainerInterface`, `Container`, `ServiceProviderInterface`) and centralized service provider wiring.
222 - Added `syncBasalamContainer()` and migrated `syncBasalamPlugin()` / `syncBasalamSettings()` to container-backed access.
223 - Migrated core hotspots from direct instantiation to container resolution:
224 - `ApiServiceManager`
225 - `ProductOperations`
226 - `JobManager`
227 - class-level settings access
228 - Refactored job subsystem wiring for constructor-based dependencies (`AbstractJobType`, job types, `JobRegistry`, `JobsRunner`, `DiscountTaskScheduler`).
229 - Updated action and registrar edges to resolve handlers/listeners via container.
230 - Removed legacy singleton-style accessors in core services and standardized on container-first resolution.
231 - add unInstall
232 - Added dashboard data retrieval in tickets
233 - Added `vendor_id` suffix to product `postmeta`
234 - Added selectable stock priority for variable products
235 - Added a Circuit Breaker mechanism
236
237
238
239 ### Added
240 - Container-backed settings access via `SettingsContainer`.
241
242 </details>
243
244 <details>
245
246 <summary>1.7.9 - 2026-02-25</summary>
247
248 ### Changed / Improved
249 - Added plugin version to all admin CSS/JS enqueue calls for proper cache busting
250
251 </details>
252
253
254 <details>
255
256 <summary>1.7.8 - 2026-02-21</summary>
257
258 ### Added
259 - retry system for jobs
260 - Added announcements section
261 - Added file upload capability in tickets
262 - Added discount reduction percentage setting
263 - Added ability to fetch and sync Basalam orders up to the last 30 days
264 - Added customer name prefix/suffix settings for Basalam orders
265 - Added onboarding section to Woosalam
266
267 ### Changed / Improved
268
269 - Remove Product Operation type
270 - change fetch unsync orders structure
271 - Switched product list fetching from paginate-based API to cursor-based API
272 - Skip webhook creation when the site domain is localhost
273 - Made Woosalam addonable/extensible
274 - Categorized plugin settings
275
276 ### Fix
277 - Fixed ticket links issues
278 - Fixed duplicated products issue
279 - Fixed null value being sent to Basalam on duplicated product disconnect/update flow
280
281 </details>
282
283 <details>
284
285 <summary>1.7.7 - 2026-02-07</summary>
286
287 ### Changed / Improved
288
289 - Enhanced Performance and Security in Ticket Logics
290 - Don't send null value in update product at basalam
291
292 </details>
293
294
295 <details>
296
297 <summary>1.7.6 - 2026-02-01</summary>
298
299 ### Fix
300
301 - Remove Unused Migration
302
303 </details>
304
305 <details>
306
307 <summary>1.7.5 - 2026-01-26</summary>
308
309 ### Added
310
311 - Added Ticketing feature
312
313 </details>
314
315 <details>
316
317 <summary>1.7.4 - 2026-01-6</summary>
318
319 ### Fixed
320
321 - Fix Bugs
322
323 </details>
324
325 <details>
326
327 <summary>1.7.3 - 2025-12-27</summary>
328
329 ### Fixed
330
331 - Fix Bugs
332
333 </details>
334
335 <details>
336
337 <summary>1.7.2 - 2025-12-24</summary>
338
339 ### Fixed
340
341 - Compatibity beetwin HPOS and Legay System
342 - Fix webhook handling and authorization in WebhookService
343
344 </details>
345
346 <details>
347
348 <summary>1.7.1 - 2025-12-23</summary>
349
350 ### Fixed
351
352 - Add Missed Files
353
354 </details>
355
356
357 <details>
358
359 <summary>1.7.0 - 2025-12-20</summary>
360
361 ### Added
362
363 - Added PSR-4 autoloading structure for better code organization
364
365 ### Changed / Improved
366
367 - Enhanced plugin code structure and performance optimizations
368 - Added detailed order information display on orders page
369 - Improved category ID retrieval with reverse order output
370
371 ### Fixed
372
373 - Fixed commission calculation issues
374 - Fixed order fetching problems
375 - Fixed Persian WooCommerce Shipping plugin compatibility issues
376
377 </details>
378
379 <details>
380 <summary>1.6.1 - 2025-12-6</summary>
381
382 ### Changed / Improved
383 - Handle cursor for get order lists
384
385 ### Fixed
386 - don't send request to core.basalam.com
387 - add reduce/increase stock action for woosalam order statuses
388
389 </details>
390
391 <details>
392 <summary>1.6.0 - 2025-12-1</summary>
393 ### Changed / Improved
394 - Added automatic shipping method detection and auto-saving of the shipping name and cost in WooCommerce orders
395
396 </details>
397
398 <details>
399 <summary>1.5.9 - 2025-11-27</summary>
400
401 ### Fixed
402
403 - Add missing default settings to database and return default for single missing setting
404 - Handle customer names without spaces
405 - Correct Persian WooCommerce path
406
407 ### Refactored
408
409 - Simplify check if Persian WooCommerce Shipping plugin is active
410
411 </details>
412
413 <details>
414 <summary>1.5.8 - 2025-11-18</summary>
415
416 ### Changed / Improved
417
418 - Improved batch product update functionality
419 - Enhanced complete product update process
420
421 </details>
422
423 <details>
424 <summary>1.5.7 - 2025-11-17</summary>
425
426 ### Added
427
428 - Added compatibility with Tappin
429 - Added support for currency units irht and irhr
430
431 ### Changed / Improved
432
433 - Implemented automatic price rounding for Basalam compatibility
434 - Changed product enqueue structure from offset-based to ID-based
435 - Made WooCommerce order creation process atomic
436
437 ### Fixed
438
439 - Fixed job manager functionality and proper task execution
440
441 </details>
442
443 <details>
444 <summary>1.5.5 - 2025-11-15</summary>
445
446 ### Changed / Improved
447
448 - Optimized fetch creatable products query using direct SQL for better performance
449 - Improved API service manager to properly decode JSON responses
450 - Enhanced update job detection logic to avoid false positive job status checks
451
452 ### Fixed
453
454 - Fixed API response handling by properly decoding JSON data
455 - Removed commented-out legacy code from plugin initialization
456 - Fixed quick update job status detection in admin dashboard
457 - Resolved duplicate job checking that was causing incorrect "in progress" states
458
459 </details>
460
461 <details>
462 <summary>1.5.4 - 2025-11-6</summary>
463
464 ### Added
465
466 - Migration system for version 1.5.4
467
468 ### Changed / Improved
469
470 - Enhanced onboarding styles and UI improvements
471 - Improved category fetching process with better error handling
472 - Enhanced file uploader service functionality
473 - Optimized product update process
474
475 ### Fixed
476
477 - Fixed error handling in product update service
478 - Removed deprecated photo ban status service
479 - Fixed category mapping page display and functionality
480 - Improved product meta box data handling
481 - Fixed issues in get product data service
482
483 </details>
484
485 <details>
486 <summary>1.5.3 - 2025-10-25</summary>
487
488 ### Fixed
489
490 - Fixed some bugs
491
492 </details>
493
494 <details>
495 <summary>1.5.0 - 2025-10-04</summary>
496
497 ### Added
498
499 - Key-value storage system for plugin settings
500 - Option to select sale price display style (strikethrough or sale price only)
501 - Automatic log file cleanup (weekly)
502 - Manual and automatic task execution rate control (tasks per minute)
503
504 ### Changed / Improved
505
506 - Removed WP Cron dependency for better performance
507 - Enhanced task scheduling system
508
509 ### Fixed
510
511 - Removed invalid variations from product data
512 - Fixed category attributes synchronization issue
513 - Fixed sale price validation before applying
514 - Resolved migration 1.4.0 issues
515
516 </details>
517
518 <details>
519 <summary>1.4.0 - 2025-09-12</summary>
520
521 ### Added
522
523 - Manual product category mapping
524 - Strikethrough pricing for products
525 - Add products from Digikala (Pro version)
526 - Create a free store (Pro version)
527
528 ### Changed / Improved
529
530 - Plugin structure optimization
531
532 ### Fixed
533
534 - Fixed reported issues
535
536 </details>
537
538 <details>
539 <summary>1.3.0 - 2025-07-23</summary>
540
541 ### Added
542
543 - Option to choose operation execution method (AJAX and Queue)
544 - Manual order fetching
545 - Cancel orders
546 - Fetch order changes from Basalam and apply them to WooCommerce orders
547
548 ### Fixed
549
550 - Fixed reported issues
551
552 </details>
553
554 <details>
555 <summary>1.2.0 - 2025-06-27</summary>
556
557 ### Added
558
559 - Bulk product addition
560 - Bulk product update
561 - Auto order confirmation
562
563 ### Fixed
564
565 - Fixed issues reported in previous version
566
567 </details>
568
569 <details>
570 <summary>1.1.0 - 2025-02-13</summary>
571
572 ### Added
573
574 - Automatic fetching and creation of Basalam orders in WooCommerce
575 - Manage orders from WooCommerce (confirm order, request delay, ship order)
576 - Advanced settings for easier use
577
578 ### Fixed
579
580 - Fixed some issues from previous versions
581
582 </details>
583
584 <details>
585 <summary>1.0.0 - 2024-12-31</summary>
586
587 ### Added
588
589 - Add and update products individually and in bulk
590 - Automatic product synchronization
591 - Settings and logs page
592
593 </details>
594