PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.8
ووسلام – همگام سازی ووکامرس و باسلام v1.10.8
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.8, at CHANGELOG.md

622 lines 17.5 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.8 - 2026-08-15</summary>
6
7 ### Added
8 - Added independent settings for updating variation prices and variation stock
9
10 ### Changed / Improved
11 - Connected variations are now updated individually through Core v4
12 - Price-only variation updates send only `primary_price`, while stock-only updates send only `stock`
13 - Variation price updates work independently from the product price setting
14 - Custom update mode now requires at least one selected field and shows the plugin error toast without refreshing the page when none is selected
15 - Full, quick, selected, and automatic updates no longer create jobs or API requests when the custom field selection is empty
16 - Product admin JavaScript now uses a file-aware cache version so the latest validation behavior is loaded immediately after deployment
17
18 </details>
19
20 <details>
21
22 <summary>1.10.7 - 2026-08-11</summary>
23
24 ### Fixed
25 - Ticket validation and API failures are now shown as admin toasts instead of WordPress `admin-post.php` error pages
26 - New-ticket submissions now use AJAX, preserving entered text, credentials, and uploaded-image previews when a request fails; if the ticket was created before access storage failed, retrying updates only the access data and does not create a duplicate ticket
27 - Ticket JavaScript now uses a file-aware cache version so updated validation and submission behavior is loaded immediately after deployment
28
29 </details>
30
31 <details>
32
33 <summary>1.10.6 - 2026-08-11</summary>
34
35 ### Fixed
36 - 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
37 - 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
38 - 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
39 - 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
40 - 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)
41 - Products with an empty Basalam product id no longer produce a malformed update request
42
43 ### Added
44 - 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
45
46 </details>
47
48 <details>
49
50 <summary>1.10.5 - 2026-08-05</summary>
51
52 ### Changed / Improved
53 - Limited bulk product update API requests to a maximum of five per minute without reducing the execution rate of other background jobs
54
55 </details>
56
57 <details>
58
59 <summary>1.10.4 - 2026-08-04</summary>
60
61 ### Fixed
62 - 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
63 - 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
64
65 </details>
66
67 <details>
68
69 <summary>1.10.3 - 2026-07-22</summary>
70
71 ### Changed / Improved
72 - "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)
73 - 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
74 - The category-commission mode is now stored as `commission` instead of `-1`, so it no longer collides with a real negative percentage
75
76 ### Added
77 - 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)
78
79 </details>
80
81 <details>
82
83 <summary>1.10.2 - 2026-07-19</summary>
84
85 ### Changed / Improved
86 - Migrated product photo and video uploads from the legacy direct upload endpoint to Uploadio's presigned media flow
87 - Added SHA-256 metadata, direct staging upload, completion handling, and status polling so product payloads receive the final Basalam media ID and URL
88 - Ensured temporary remote media files are removed after both successful and failed uploads
89 - 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
90
91 </details>
92
93 <details>
94
95 <summary>1.10.1 - 2026-07-13</summary>
96
97 ### Fixed
98 - 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
99
100 </details>
101
102 <details>
103
104 <summary>1.10.0 - 2026-07-11</summary>
105
106 ### Added
107 - 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
108 - 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)
109
110 ### Note
111 - 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
112
113 </details>
114
115 <details>
116
117 <summary>1.9.2 - 2026-07-08</summary>
118
119 ### Security
120 - 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
121 - Hardened output escaping across admin pages, templates and exception messages (esc_html/esc_attr)
122 - Switched internal redirects to wp_safe_redirect and documented direct custom-table queries
123
124 ### Changed / Improved
125 - Tested up to WordPress 7.0
126
127 </details>
128
129 <details>
130
131 <summary>1.9.1 - 2026-06-30</summary>
132
133 ### Fixed
134 - show check-orders button and vertically center its content on mobile/tablet
135
136 </details>
137
138 <details>
139
140 <summary>1.9.0 - 2026-06-21</summary>
141
142 ### Added
143 - add gold product type with purity and weight attributes
144 - add preparation days management for product categories
145
146 ### Fixed
147 - decrease min pkg weight
148
149 </details>
150
151 <details>
152
153 <summary>1.8.8 - 2026-05-18</summary>
154
155 ### Fixed
156 - fix City/state mapping with persian shiping woo
157 - increase count of photo limit
158
159
160 </details>
161
162 <details>
163
164 <summary>1.8.7 - 2026-05-16</summary>
165
166 ### Added
167 - Product video upload support (VideoService, VideoField, VideoSourceResolver)
168 - Circuit breaker alert notifications
169 - replace toast with alert()
170 - Limit on increase precent(max 35%)
171 - Migration 1.8.7
172
173 ### Fixed
174 - Improved file upload, lock manager, and API response handling
175
176 </details>
177
178 <details>
179
180 <summary>1.8.5,1.8.6 - 2026-05-10</summary>
181
182 ### Fixed
183 - deduplictaion orders
184 - fix stuck-processing
185
186 </details>
187
188 <details>
189
190
191 <details>
192
193 <summary>1.8.4 - 2026-05-03</summary>
194
195 ### Fixed
196 - Circuit Breaker mechanism
197
198 </details>
199
200 <details>
201
202 <summary>1.8.3 - 2026-05-03</summary>
203
204 ### Added
205 - Added bulk edit support for wholesale settings, product type, and custom price increase
206 - Added per-product custom price increase support
207 - Added an information API endpoint to improve AI agent support in `admin.hamsalam.ir`
208
209 ### Changed / Improved
210 - Added automatic order creation in status change events when the order does not already exist
211 - Clear saved token on `401 Unauthorized` responses from `*.basalam.com` requests
212 - Show an error when required Woosalam domains are blocked
213 - Prevent task execution when required Woosalam domains are blocked
214
215 ### Fixed
216 - Fixed user-reported issues
217
218 </details>
219
220 <details>
221
222 <summary>1.8.2 - 2026-04-04</summary>
223
224 ### Added
225 - Photo and weight validator for products
226 - Filter hook for contact-us section visibility
227 - Prefix and suffix to product title for category detection
228
229 ### Fixed
230 - Fetch current vendor info without cache
231 </details>
232
233 <details>
234
235 <details>
236
237 <summary>1.8.1 - 2026-03-07</summary>
238
239 ### Added
240 - basalam Chat widget
241
242 </details>
243
244 <details>
245
246 <summary>1.8.0 - 2026-03-05</summary>
247
248 ### Changed / Improved
249 - Introduced an internal DI container (`ContainerInterface`, `Container`, `ServiceProviderInterface`) and centralized service provider wiring.
250 - Added `syncBasalamContainer()` and migrated `syncBasalamPlugin()` / `syncBasalamSettings()` to container-backed access.
251 - Migrated core hotspots from direct instantiation to container resolution:
252 - `ApiServiceManager`
253 - `ProductOperations`
254 - `JobManager`
255 - class-level settings access
256 - Refactored job subsystem wiring for constructor-based dependencies (`AbstractJobType`, job types, `JobRegistry`, `JobsRunner`, `DiscountTaskScheduler`).
257 - Updated action and registrar edges to resolve handlers/listeners via container.
258 - Removed legacy singleton-style accessors in core services and standardized on container-first resolution.
259 - add unInstall
260 - Added dashboard data retrieval in tickets
261 - Added `vendor_id` suffix to product `postmeta`
262 - Added selectable stock priority for variable products
263 - Added a Circuit Breaker mechanism
264
265
266
267 ### Added
268 - Container-backed settings access via `SettingsContainer`.
269
270 </details>
271
272 <details>
273
274 <summary>1.7.9 - 2026-02-25</summary>
275
276 ### Changed / Improved
277 - Added plugin version to all admin CSS/JS enqueue calls for proper cache busting
278
279 </details>
280
281
282 <details>
283
284 <summary>1.7.8 - 2026-02-21</summary>
285
286 ### Added
287 - retry system for jobs
288 - Added announcements section
289 - Added file upload capability in tickets
290 - Added discount reduction percentage setting
291 - Added ability to fetch and sync Basalam orders up to the last 30 days
292 - Added customer name prefix/suffix settings for Basalam orders
293 - Added onboarding section to Woosalam
294
295 ### Changed / Improved
296
297 - Remove Product Operation type
298 - change fetch unsync orders structure
299 - Switched product list fetching from paginate-based API to cursor-based API
300 - Skip webhook creation when the site domain is localhost
301 - Made Woosalam addonable/extensible
302 - Categorized plugin settings
303
304 ### Fix
305 - Fixed ticket links issues
306 - Fixed duplicated products issue
307 - Fixed null value being sent to Basalam on duplicated product disconnect/update flow
308
309 </details>
310
311 <details>
312
313 <summary>1.7.7 - 2026-02-07</summary>
314
315 ### Changed / Improved
316
317 - Enhanced Performance and Security in Ticket Logics
318 - Don't send null value in update product at basalam
319
320 </details>
321
322
323 <details>
324
325 <summary>1.7.6 - 2026-02-01</summary>
326
327 ### Fix
328
329 - Remove Unused Migration
330
331 </details>
332
333 <details>
334
335 <summary>1.7.5 - 2026-01-26</summary>
336
337 ### Added
338
339 - Added Ticketing feature
340
341 </details>
342
343 <details>
344
345 <summary>1.7.4 - 2026-01-6</summary>
346
347 ### Fixed
348
349 - Fix Bugs
350
351 </details>
352
353 <details>
354
355 <summary>1.7.3 - 2025-12-27</summary>
356
357 ### Fixed
358
359 - Fix Bugs
360
361 </details>
362
363 <details>
364
365 <summary>1.7.2 - 2025-12-24</summary>
366
367 ### Fixed
368
369 - Compatibity beetwin HPOS and Legay System
370 - Fix webhook handling and authorization in WebhookService
371
372 </details>
373
374 <details>
375
376 <summary>1.7.1 - 2025-12-23</summary>
377
378 ### Fixed
379
380 - Add Missed Files
381
382 </details>
383
384
385 <details>
386
387 <summary>1.7.0 - 2025-12-20</summary>
388
389 ### Added
390
391 - Added PSR-4 autoloading structure for better code organization
392
393 ### Changed / Improved
394
395 - Enhanced plugin code structure and performance optimizations
396 - Added detailed order information display on orders page
397 - Improved category ID retrieval with reverse order output
398
399 ### Fixed
400
401 - Fixed commission calculation issues
402 - Fixed order fetching problems
403 - Fixed Persian WooCommerce Shipping plugin compatibility issues
404
405 </details>
406
407 <details>
408 <summary>1.6.1 - 2025-12-6</summary>
409
410 ### Changed / Improved
411 - Handle cursor for get order lists
412
413 ### Fixed
414 - don't send request to core.basalam.com
415 - add reduce/increase stock action for woosalam order statuses
416
417 </details>
418
419 <details>
420 <summary>1.6.0 - 2025-12-1</summary>
421 ### Changed / Improved
422 - Added automatic shipping method detection and auto-saving of the shipping name and cost in WooCommerce orders
423
424 </details>
425
426 <details>
427 <summary>1.5.9 - 2025-11-27</summary>
428
429 ### Fixed
430
431 - Add missing default settings to database and return default for single missing setting
432 - Handle customer names without spaces
433 - Correct Persian WooCommerce path
434
435 ### Refactored
436
437 - Simplify check if Persian WooCommerce Shipping plugin is active
438
439 </details>
440
441 <details>
442 <summary>1.5.8 - 2025-11-18</summary>
443
444 ### Changed / Improved
445
446 - Improved batch product update functionality
447 - Enhanced complete product update process
448
449 </details>
450
451 <details>
452 <summary>1.5.7 - 2025-11-17</summary>
453
454 ### Added
455
456 - Added compatibility with Tappin
457 - Added support for currency units irht and irhr
458
459 ### Changed / Improved
460
461 - Implemented automatic price rounding for Basalam compatibility
462 - Changed product enqueue structure from offset-based to ID-based
463 - Made WooCommerce order creation process atomic
464
465 ### Fixed
466
467 - Fixed job manager functionality and proper task execution
468
469 </details>
470
471 <details>
472 <summary>1.5.5 - 2025-11-15</summary>
473
474 ### Changed / Improved
475
476 - Optimized fetch creatable products query using direct SQL for better performance
477 - Improved API service manager to properly decode JSON responses
478 - Enhanced update job detection logic to avoid false positive job status checks
479
480 ### Fixed
481
482 - Fixed API response handling by properly decoding JSON data
483 - Removed commented-out legacy code from plugin initialization
484 - Fixed quick update job status detection in admin dashboard
485 - Resolved duplicate job checking that was causing incorrect "in progress" states
486
487 </details>
488
489 <details>
490 <summary>1.5.4 - 2025-11-6</summary>
491
492 ### Added
493
494 - Migration system for version 1.5.4
495
496 ### Changed / Improved
497
498 - Enhanced onboarding styles and UI improvements
499 - Improved category fetching process with better error handling
500 - Enhanced file uploader service functionality
501 - Optimized product update process
502
503 ### Fixed
504
505 - Fixed error handling in product update service
506 - Removed deprecated photo ban status service
507 - Fixed category mapping page display and functionality
508 - Improved product meta box data handling
509 - Fixed issues in get product data service
510
511 </details>
512
513 <details>
514 <summary>1.5.3 - 2025-10-25</summary>
515
516 ### Fixed
517
518 - Fixed some bugs
519
520 </details>
521
522 <details>
523 <summary>1.5.0 - 2025-10-04</summary>
524
525 ### Added
526
527 - Key-value storage system for plugin settings
528 - Option to select sale price display style (strikethrough or sale price only)
529 - Automatic log file cleanup (weekly)
530 - Manual and automatic task execution rate control (tasks per minute)
531
532 ### Changed / Improved
533
534 - Removed WP Cron dependency for better performance
535 - Enhanced task scheduling system
536
537 ### Fixed
538
539 - Removed invalid variations from product data
540 - Fixed category attributes synchronization issue
541 - Fixed sale price validation before applying
542 - Resolved migration 1.4.0 issues
543
544 </details>
545
546 <details>
547 <summary>1.4.0 - 2025-09-12</summary>
548
549 ### Added
550
551 - Manual product category mapping
552 - Strikethrough pricing for products
553 - Add products from Digikala (Pro version)
554 - Create a free store (Pro version)
555
556 ### Changed / Improved
557
558 - Plugin structure optimization
559
560 ### Fixed
561
562 - Fixed reported issues
563
564 </details>
565
566 <details>
567 <summary>1.3.0 - 2025-07-23</summary>
568
569 ### Added
570
571 - Option to choose operation execution method (AJAX and Queue)
572 - Manual order fetching
573 - Cancel orders
574 - Fetch order changes from Basalam and apply them to WooCommerce orders
575
576 ### Fixed
577
578 - Fixed reported issues
579
580 </details>
581
582 <details>
583 <summary>1.2.0 - 2025-06-27</summary>
584
585 ### Added
586
587 - Bulk product addition
588 - Bulk product update
589 - Auto order confirmation
590
591 ### Fixed
592
593 - Fixed issues reported in previous version
594
595 </details>
596
597 <details>
598 <summary>1.1.0 - 2025-02-13</summary>
599
600 ### Added
601
602 - Automatic fetching and creation of Basalam orders in WooCommerce
603 - Manage orders from WooCommerce (confirm order, request delay, ship order)
604 - Advanced settings for easier use
605
606 ### Fixed
607
608 - Fixed some issues from previous versions
609
610 </details>
611
612 <details>
613 <summary>1.0.0 - 2024-12-31</summary>
614
615 ### Added
616
617 - Add and update products individually and in bulk
618 - Automatic product synchronization
619 - Settings and logs page
620
621 </details>
622