PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.20
ووسلام – همگام سازی ووکامرس و باسلام v1.10.20
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 1.8.5 1.8.6 All 53 releases
sync-basalam / CHANGELOG.md

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

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