PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.1.26
ووسلام – همگام سازی ووکامرس و باسلام v1.1.26
1.1.26 1.10.27 1.10.24 1.10.25 1.10.23 1.10.22 1.10.21 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 All 60 releases
sync-basalam / CHANGELOG.md

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

839 lines 25.8 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.26 - 2026-10-01</summary>
6
7 ### Added
8 - Show the Basalam product name as visible order item meta (`نا�
9 �
10 حصول در باسلا�
11 `) on WooCommerce orders, for both mapped products and the "not defined in your site" placeholder product
12 - Show a clickable link to the Basalam product page (`لینک �
13 حصول در باسلا�
14 `) as visible order item meta
15
16 </details>
17
18 <details>
19
20 <summary>1.10.25 - 2026-09-30</summary>
21
22 ### Changed / Improved
23 - Revoke the stored Basalam vendor authorization on upgrade so every store reconnects and grants the currently required scopes
24
25 ### Note
26 - Existing connections must reauthenticate after updating to this version
27
28 </details>
29
30 <details>
31
32 <summary>1.10.24 - 2026-09-30</summary>
33
34 ### Added
35 - Request the `vendor.product.read` scope when connecting to Basalam
36
37 ### Note
38 - Existing connections must reauthenticate to grant the new product read scope
39
40 </details>
41
42 <details>
43
44 <summary>1.10.23 - 2026-09-28</summary>
45
46 ### Added
47 - Request the `vendor.financial.read` and `vendor.financial.write` scopes when connecting to Basalam
48
49 ### Changed / Improved
50 - Blur and lock the financial management page when a financial API request returns HTTP 403, with a direct button to reconnect to Basalam
51
52 ### Note
53 - Existing connections must reauthenticate to grant the new financial scopes
54
55 </details>
56
57 <details>
58
59 <summary>1.10.22 - 2026-09-27</summary>
60
61 ### Added
62 - Added an optional recurring full product update every 24 or 48 hours, configured beside the product sync control; new and existing stores default to 48 hours and can turn the schedule off
63
64 ### Changed / Improved
65 - Automatic product connection now searches for safe title matches among Basalam products after scanning the vendor catalog
66 - Aligned the dashboard controls and advanced settings on narrow screens, and centered the add and update product dialogs at matching mobile sizes
67
68 ### Fixed
69 - The product update dialog now reads live queue status when opened and while visible, clearing completed-job messages without a page reload
70 - Empty-queue probes no longer hold the async dispatch lease, so newly created jobs can start promptly while shutdown dispatch continues to repair the database connection
71
72 </details>
73
74 <details>
75
76 <summary>1.10.21 - 2026-09-17</summary>
77
78 ### Fixed
79 - "All fields" and "price & stock" update modes always send one complete product request with the variants array (without Basalam variation ids), matching earlier major versions; the dedicated variation endpoint is only used in "custom" mode with the variation price/stock fields enabled
80 - Product updates now recover automatically when WooCommerce contains stale Basalam variation IDs, rebuilding and saving the current variation mapping instead of repeatedly failing with HTTP 404
81 - Commission lookup now uses Basalam's product-specific commission API for products already connected to Basalam; new or unconnected products continue to use category-based commission lookup, with product commission responses cached during the sync request
82
83 </details>
84
85 <details>
86
87 <summary>1.10.20 - 2026-09-17</summary>
88
89 ### Fixed
90 - Basalam authorization callbacks no longer fail when Redis or Memcached drops the temporary OAuth marker; the single-use authorization proof is now carried in a signed, time-limited HttpOnly cookie
91
92 </details>
93
94 <details>
95
96 <summary>1.10.19 - 2026-09-17</summary>
97
98 ### Changed / Improved
99 - Single-product update jobs now run before bulk and full-update coordinator jobs
100
101 </details>
102
103 <details>
104
105 <summary>1.10.18 - 2026-09-12</summary>
106
107 ### Fixed
108 - Public plugin metadata, help, terms, and privacy links now use the live canonical Hamsalam and Basalam URLs instead of the retired `wp.hamsalam.ir` host
109 - Product create and update requests now retry once without product or variation SKUs when Basalam rejects a duplicate SKU
110
111 </details>
112
113 <details>
114
115 <summary>1.10.17 - 2026-09-09</summary>
116
117 ### Fixed
118 - Async job dispatch runs during shutdown again, keeping queue probes and loopback requests out of the storefront response path
119 - The dispatch lease is reserved before checking the queue, preventing concurrent requests from launching duplicate async runners
120
121 </details>
122
123 <details>
124
125 <summary>1.10.16 - 2026-09-08</summary>
126
127 ### Fixed
128 - Installing a newer plugin package now clears the previous version's force-update gate, allowing migrations, hooks, and the background jobs runner to start normally
129 - Hotfix builds newer than the latest published package are no longer disabled when the version API has not registered them yet
130
131 </details>
132
133 <details>
134
135 <summary>1.10.15 - 2026-09-08</summary>
136
137 ### Fixed
138 - Large product queues no longer spawn overlapping AJAX runners from normal site traffic; one runner now owns the entire processing batch and duplicate workers exit immediately
139 - Async runner dispatches are leased for 25 seconds instead of one second, preventing PHP worker exhaustion and storefront 503/504 errors during full or quick product updates
140 - Installing a newer plugin package now clears the previous version's force-update gate, allowing migrations, hooks, and the background jobs runner to start normally
141 - Hotfix builds newer than the latest published package are no longer disabled when the version API has not registered them yet
142
143 </details>
144
145 <details>
146
147 <summary>1.10.14 - 2026-09-08</summary>
148
149 ### Added
150 - Product SKUs are now sent to Basalam when creating or updating products, and variation SKUs are sent with variant payloads and per-variation updates; a new "کد �
151 حصول (SKU)" option controls the field in custom update mode (enabled by default)
152
153 ### Fixed
154 - The async job runner now dispatches from init instead of shutdown, avoiding database "commands out of sync" errors caused by unread result sets left by other shutdown callbacks
155
156 </details>
157
158 <details>
159
160 <summary>1.10.13 - 2026-09-01</summary>
161
162 ### Added
163 - Added a manual vendor-status recheck button to inactive-vendor notices so store owners can immediately restore synchronization after reactivating their Basalam booth
164
165 ### Changed / Improved
166 - Local environments now bypass vendor-status checks and inactive-vendor restrictions; the daily vendor-status cron is also unscheduled locally
167 - The category detection endpoint now uses API v2.0 while preserving the existing response consumer contract
168
169 </details>
170
171 <details>
172
173 <summary>1.10.12 - 2026-08-29</summary>
174
175 ### Fixed
176 - Restored the AJAX click handlers for product update, archive, restore, and disconnect actions on the WooCommerce product editor
177
178 ### Changed / Improved
179 - The authenticated Woosalam chat widget now loads on every WordPress admin screen while other Woosalam assets remain scoped to their relevant pages
180
181 </details>
182
183 <details>
184
185 <summary>1.10.11 - 2026-08-26</summary>
186
187 ### Fixed
188 - Product media MIME types are now detected from the actual file contents before checking the filename extension
189 - Non-standard image MIME aliases such as `image/jpg`, `image/pjpeg`, and vendor-specific PNG/BMP values are normalized to the canonical values accepted by Basalam Uploadio
190 - The media upload request and multipart file transfer now use the same canonical MIME type, preventing valid JPEG images from failing with a `422` unsupported-MIME response
191
192 </details>
193
194 <details>
195
196 <summary>1.10.10 - 2026-08-25</summary>
197
198 ### Added
199 - Added a daily vendor-status check with persistent inactive-duration tracking and automatic recovery when the vendor becomes active again
200 - Added state-specific admin notices, dashboard badges, disabled controls, and explanatory UI for limited and suspended synchronization modes
201
202 ### Changed / Improved
203 - Vendors inactive for less than 21 days can no longer create products; manual, bulk, queued, and automatic updates are restricted to price and stock
204 - Vendors inactive for 21 days or longer can no longer create, update, archive, restore, or discount products until the vendor becomes active again
205 - Product jobs revalidate the vendor policy at execution time so queued work cannot bypass a later status change
206 - Improved background job dispatch and limited admin assets and notices to relevant Woosalam, product, and order screens
207 - Aligned the connection-status header, card, and inner synchronization panel across active and inactive states
208
209 </details>
210
211 <details>
212
213 <summary>1.10.9 - 2026-08-16</summary>
214
215 ### Fixed
216 - The ticket reply access form is now shown only after site access is rejected; it stays hidden while access is pending, after approval, and when the status is missing or unknown
217
218 </details>
219
220 <details>
221
222 <summary>1.10.8 - 2026-08-15</summary>
223
224 ### Added
225 - Added independent settings for updating variation prices and variation stock
226
227 ### Changed / Improved
228 - Connected variations are now updated individually through Core v4
229 - Price-only variation updates send only `primary_price`, while stock-only updates send only `stock`
230 - Variation price updates work independently from the product price setting
231 - Custom update mode now requires at least one selected field and shows the plugin error toast without refreshing the page when none is selected
232 - Full, quick, selected, and automatic updates no longer create jobs or API requests when the custom field selection is empty
233 - Product admin JavaScript now uses a file-aware cache version so the latest validation behavior is loaded immediately after deployment
234
235 </details>
236
237 <details>
238
239 <summary>1.10.7 - 2026-08-11</summary>
240
241 ### Fixed
242 - Ticket validation and API failures are now shown as admin toasts instead of WordPress `admin-post.php` error pages
243 - 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
244 - Ticket JavaScript now uses a file-aware cache version so updated validation and submission behavior is loaded immediately after deployment
245
246 </details>
247
248 <details>
249
250 <summary>1.10.6 - 2026-08-11</summary>
251
252 ### Fixed
253 - 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
254 - 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
255 - 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
256 - 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
257 - 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)
258 - Products with an empty Basalam product id no longer produce a malformed update request
259
260 ### Added
261 - 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
262
263 </details>
264
265 <details>
266
267 <summary>1.10.5 - 2026-08-05</summary>
268
269 ### Changed / Improved
270 - Limited bulk product update API requests to a maximum of five per minute without reducing the execution rate of other background jobs
271
272 </details>
273
274 <details>
275
276 <summary>1.10.4 - 2026-08-04</summary>
277
278 ### Fixed
279 - 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
280 - 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
281
282 </details>
283
284 <details>
285
286 <summary>1.10.3 - 2026-07-22</summary>
287
288 ### Changed / Improved
289 - "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)
290 - 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
291 - The category-commission mode is now stored as `commission` instead of `-1`, so it no longer collides with a real negative percentage
292
293 ### Added
294 - 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)
295
296 </details>
297
298 <details>
299
300 <summary>1.10.2 - 2026-07-19</summary>
301
302 ### Changed / Improved
303 - Migrated product photo and video uploads from the legacy direct upload endpoint to Uploadio's presigned media flow
304 - Added SHA-256 metadata, direct staging upload, completion handling, and status polling so product payloads receive the final Basalam media ID and URL
305 - Ensured temporary remote media files are removed after both successful and failed uploads
306 - 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
307
308 </details>
309
310 <details>
311
312 <summary>1.10.1 - 2026-07-13</summary>
313
314 ### Fixed
315 - 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
316
317 </details>
318
319 <details>
320
321 <summary>1.10.0 - 2026-07-11</summary>
322
323 ### Added
324 - 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
325 - 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)
326
327 ### Note
328 - 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
329
330 </details>
331
332 <details>
333
334 <summary>1.9.2 - 2026-07-08</summary>
335
336 ### Security
337 - 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
338 - Hardened output escaping across admin pages, templates and exception messages (esc_html/esc_attr)
339 - Switched internal redirects to wp_safe_redirect and documented direct custom-table queries
340
341 ### Changed / Improved
342 - Tested up to WordPress 7.0
343
344 </details>
345
346 <details>
347
348 <summary>1.9.1 - 2026-06-30</summary>
349
350 ### Fixed
351 - show check-orders button and vertically center its content on mobile/tablet
352
353 </details>
354
355 <details>
356
357 <summary>1.9.0 - 2026-06-21</summary>
358
359 ### Added
360 - add gold product type with purity and weight attributes
361 - add preparation days management for product categories
362
363 ### Fixed
364 - decrease min pkg weight
365
366 </details>
367
368 <details>
369
370 <summary>1.8.8 - 2026-05-18</summary>
371
372 ### Fixed
373 - fix City/state mapping with persian shiping woo
374 - increase count of photo limit
375
376
377 </details>
378
379 <details>
380
381 <summary>1.8.7 - 2026-05-16</summary>
382
383 ### Added
384 - Product video upload support (VideoService, VideoField, VideoSourceResolver)
385 - Circuit breaker alert notifications
386 - replace toast with alert()
387 - Limit on increase precent(max 35%)
388 - Migration 1.8.7
389
390 ### Fixed
391 - Improved file upload, lock manager, and API response handling
392
393 </details>
394
395 <details>
396
397 <summary>1.8.5,1.8.6 - 2026-05-10</summary>
398
399 ### Fixed
400 - deduplictaion orders
401 - fix stuck-processing
402
403 </details>
404
405 <details>
406
407
408 <details>
409
410 <summary>1.8.4 - 2026-05-03</summary>
411
412 ### Fixed
413 - Circuit Breaker mechanism
414
415 </details>
416
417 <details>
418
419 <summary>1.8.3 - 2026-05-03</summary>
420
421 ### Added
422 - Added bulk edit support for wholesale settings, product type, and custom price increase
423 - Added per-product custom price increase support
424 - Added an information API endpoint to improve AI agent support in `admin.hamsalam.ir`
425
426 ### Changed / Improved
427 - Added automatic order creation in status change events when the order does not already exist
428 - Clear saved token on `401 Unauthorized` responses from `*.basalam.com` requests
429 - Show an error when required Woosalam domains are blocked
430 - Prevent task execution when required Woosalam domains are blocked
431
432 ### Fixed
433 - Fixed user-reported issues
434
435 </details>
436
437 <details>
438
439 <summary>1.8.2 - 2026-04-04</summary>
440
441 ### Added
442 - Photo and weight validator for products
443 - Filter hook for contact-us section visibility
444 - Prefix and suffix to product title for category detection
445
446 ### Fixed
447 - Fetch current vendor info without cache
448 </details>
449
450 <details>
451
452 <details>
453
454 <summary>1.8.1 - 2026-03-07</summary>
455
456 ### Added
457 - basalam Chat widget
458
459 </details>
460
461 <details>
462
463 <summary>1.8.0 - 2026-03-05</summary>
464
465 ### Changed / Improved
466 - Introduced an internal DI container (`ContainerInterface`, `Container`, `ServiceProviderInterface`) and centralized service provider wiring.
467 - Added `syncBasalamContainer()` and migrated `syncBasalamPlugin()` / `syncBasalamSettings()` to container-backed access.
468 - Migrated core hotspots from direct instantiation to container resolution:
469 - `ApiServiceManager`
470 - `ProductOperations`
471 - `JobManager`
472 - class-level settings access
473 - Refactored job subsystem wiring for constructor-based dependencies (`AbstractJobType`, job types, `JobRegistry`, `JobsRunner`, `DiscountTaskScheduler`).
474 - Updated action and registrar edges to resolve handlers/listeners via container.
475 - Removed legacy singleton-style accessors in core services and standardized on container-first resolution.
476 - add unInstall
477 - Added dashboard data retrieval in tickets
478 - Added `vendor_id` suffix to product `postmeta`
479 - Added selectable stock priority for variable products
480 - Added a Circuit Breaker mechanism
481
482
483
484 ### Added
485 - Container-backed settings access via `SettingsContainer`.
486
487 </details>
488
489 <details>
490
491 <summary>1.7.9 - 2026-02-25</summary>
492
493 ### Changed / Improved
494 - Added plugin version to all admin CSS/JS enqueue calls for proper cache busting
495
496 </details>
497
498
499 <details>
500
501 <summary>1.7.8 - 2026-02-21</summary>
502
503 ### Added
504 - retry system for jobs
505 - Added announcements section
506 - Added file upload capability in tickets
507 - Added discount reduction percentage setting
508 - Added ability to fetch and sync Basalam orders up to the last 30 days
509 - Added customer name prefix/suffix settings for Basalam orders
510 - Added onboarding section to Woosalam
511
512 ### Changed / Improved
513
514 - Remove Product Operation type
515 - change fetch unsync orders structure
516 - Switched product list fetching from paginate-based API to cursor-based API
517 - Skip webhook creation when the site domain is localhost
518 - Made Woosalam addonable/extensible
519 - Categorized plugin settings
520
521 ### Fix
522 - Fixed ticket links issues
523 - Fixed duplicated products issue
524 - Fixed null value being sent to Basalam on duplicated product disconnect/update flow
525
526 </details>
527
528 <details>
529
530 <summary>1.7.7 - 2026-02-07</summary>
531
532 ### Changed / Improved
533
534 - Enhanced Performance and Security in Ticket Logics
535 - Don't send null value in update product at basalam
536
537 </details>
538
539
540 <details>
541
542 <summary>1.7.6 - 2026-02-01</summary>
543
544 ### Fix
545
546 - Remove Unused Migration
547
548 </details>
549
550 <details>
551
552 <summary>1.7.5 - 2026-01-26</summary>
553
554 ### Added
555
556 - Added Ticketing feature
557
558 </details>
559
560 <details>
561
562 <summary>1.7.4 - 2026-01-6</summary>
563
564 ### Fixed
565
566 - Fix Bugs
567
568 </details>
569
570 <details>
571
572 <summary>1.7.3 - 2025-12-27</summary>
573
574 ### Fixed
575
576 - Fix Bugs
577
578 </details>
579
580 <details>
581
582 <summary>1.7.2 - 2025-12-24</summary>
583
584 ### Fixed
585
586 - Compatibity beetwin HPOS and Legay System
587 - Fix webhook handling and authorization in WebhookService
588
589 </details>
590
591 <details>
592
593 <summary>1.7.1 - 2025-12-23</summary>
594
595 ### Fixed
596
597 - Add Missed Files
598
599 </details>
600
601
602 <details>
603
604 <summary>1.7.0 - 2025-12-20</summary>
605
606 ### Added
607
608 - Added PSR-4 autoloading structure for better code organization
609
610 ### Changed / Improved
611
612 - Enhanced plugin code structure and performance optimizations
613 - Added detailed order information display on orders page
614 - Improved category ID retrieval with reverse order output
615
616 ### Fixed
617
618 - Fixed commission calculation issues
619 - Fixed order fetching problems
620 - Fixed Persian WooCommerce Shipping plugin compatibility issues
621
622 </details>
623
624 <details>
625 <summary>1.6.1 - 2025-12-6</summary>
626
627 ### Changed / Improved
628 - Handle cursor for get order lists
629
630 ### Fixed
631 - don't send request to core.basalam.com
632 - add reduce/increase stock action for woosalam order statuses
633
634 </details>
635
636 <details>
637 <summary>1.6.0 - 2025-12-1</summary>
638 ### Changed / Improved
639 - Added automatic shipping method detection and auto-saving of the shipping name and cost in WooCommerce orders
640
641 </details>
642
643 <details>
644 <summary>1.5.9 - 2025-11-27</summary>
645
646 ### Fixed
647
648 - Add missing default settings to database and return default for single missing setting
649 - Handle customer names without spaces
650 - Correct Persian WooCommerce path
651
652 ### Refactored
653
654 - Simplify check if Persian WooCommerce Shipping plugin is active
655
656 </details>
657
658 <details>
659 <summary>1.5.8 - 2025-11-18</summary>
660
661 ### Changed / Improved
662
663 - Improved batch product update functionality
664 - Enhanced complete product update process
665
666 </details>
667
668 <details>
669 <summary>1.5.7 - 2025-11-17</summary>
670
671 ### Added
672
673 - Added compatibility with Tappin
674 - Added support for currency units irht and irhr
675
676 ### Changed / Improved
677
678 - Implemented automatic price rounding for Basalam compatibility
679 - Changed product enqueue structure from offset-based to ID-based
680 - Made WooCommerce order creation process atomic
681
682 ### Fixed
683
684 - Fixed job manager functionality and proper task execution
685
686 </details>
687
688 <details>
689 <summary>1.5.5 - 2025-11-15</summary>
690
691 ### Changed / Improved
692
693 - Optimized fetch creatable products query using direct SQL for better performance
694 - Improved API service manager to properly decode JSON responses
695 - Enhanced update job detection logic to avoid false positive job status checks
696
697 ### Fixed
698
699 - Fixed API response handling by properly decoding JSON data
700 - Removed commented-out legacy code from plugin initialization
701 - Fixed quick update job status detection in admin dashboard
702 - Resolved duplicate job checking that was causing incorrect "in progress" states
703
704 </details>
705
706 <details>
707 <summary>1.5.4 - 2025-11-6</summary>
708
709 ### Added
710
711 - Migration system for version 1.5.4
712
713 ### Changed / Improved
714
715 - Enhanced onboarding styles and UI improvements
716 - Improved category fetching process with better error handling
717 - Enhanced file uploader service functionality
718 - Optimized product update process
719
720 ### Fixed
721
722 - Fixed error handling in product update service
723 - Removed deprecated photo ban status service
724 - Fixed category mapping page display and functionality
725 - Improved product meta box data handling
726 - Fixed issues in get product data service
727
728 </details>
729
730 <details>
731 <summary>1.5.3 - 2025-10-25</summary>
732
733 ### Fixed
734
735 - Fixed some bugs
736
737 </details>
738
739 <details>
740 <summary>1.5.0 - 2025-10-04</summary>
741
742 ### Added
743
744 - Key-value storage system for plugin settings
745 - Option to select sale price display style (strikethrough or sale price only)
746 - Automatic log file cleanup (weekly)
747 - Manual and automatic task execution rate control (tasks per minute)
748
749 ### Changed / Improved
750
751 - Removed WP Cron dependency for better performance
752 - Enhanced task scheduling system
753
754 ### Fixed
755
756 - Removed invalid variations from product data
757 - Fixed category attributes synchronization issue
758 - Fixed sale price validation before applying
759 - Resolved migration 1.4.0 issues
760
761 </details>
762
763 <details>
764 <summary>1.4.0 - 2025-09-12</summary>
765
766 ### Added
767
768 - Manual product category mapping
769 - Strikethrough pricing for products
770 - Add products from Digikala (Pro version)
771 - Create a free store (Pro version)
772
773 ### Changed / Improved
774
775 - Plugin structure optimization
776
777 ### Fixed
778
779 - Fixed reported issues
780
781 </details>
782
783 <details>
784 <summary>1.3.0 - 2025-07-23</summary>
785
786 ### Added
787
788 - Option to choose operation execution method (AJAX and Queue)
789 - Manual order fetching
790 - Cancel orders
791 - Fetch order changes from Basalam and apply them to WooCommerce orders
792
793 ### Fixed
794
795 - Fixed reported issues
796
797 </details>
798
799 <details>
800 <summary>1.2.0 - 2025-06-27</summary>
801
802 ### Added
803
804 - Bulk product addition
805 - Bulk product update
806 - Auto order confirmation
807
808 ### Fixed
809
810 - Fixed issues reported in previous version
811
812 </details>
813
814 <details>
815 <summary>1.1.0 - 2025-02-13</summary>
816
817 ### Added
818
819 - Automatic fetching and creation of Basalam orders in WooCommerce
820 - Manage orders from WooCommerce (confirm order, request delay, ship order)
821 - Advanced settings for easier use
822
823 ### Fixed
824
825 - Fixed some issues from previous versions
826
827 </details>
828
829 <details>
830 <summary>1.0.0 - 2024-12-31</summary>
831
832 ### Added
833
834 - Add and update products individually and in bulk
835 - Automatic product synchronization
836 - Settings and logs page
837
838 </details>
839