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

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