PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.22
ووسلام – همگام سازی ووکامرس و باسلام v1.10.22
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 1.9.1 1.9.0 1.8.8 All 55 releases
sync-basalam / CHANGELOG.md

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

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