PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.24
ووسلام – همگام سازی ووکامرس و باسلام v1.10.24
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 1.10.0 1.9.2 All 58 releases
sync-basalam / CHANGELOG.md

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

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