PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.29
ووسلام – همگام سازی ووکامرس و باسلام v1.10.29
1.10.29 1.10.28 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 All 62 releases
sync-basalam / CHANGELOG.md

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

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