Add store-item bulk create, unlimited stock, and contact-for-price UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-08 15:36:41 +03:30
co-authored by Cursor
parent 5eaf7fb046
commit ad83fc1099
15 changed files with 803 additions and 77 deletions
+36
View File
@@ -408,14 +408,32 @@ const en = {
'storeItems.create.loadingVariations': 'Loading product variations...',
'storeItems.create.price': 'Price (IRT)',
'storeItems.create.stock': 'Stock',
'storeItems.create.unlimited': 'Unlimited',
'storeItems.create.removeRow': 'Remove row',
'storeItems.create.addRow': 'Add row',
'storeItems.create.addAllProducts': 'Add all products',
'storeItems.create.addingAll': 'Creating for all products…',
'storeItems.create.addAllDone': 'Created {created}, skipped {skipped}, failed {failed}',
'storeItems.create.addAllConfirmTitle': 'Add store items for all products?',
'storeItems.create.addAllConfirmIntro':
'Sellable variants will be created for every product that is not yet in the store. Use this only when you want to add all products to the store at once.',
'storeItems.create.addAllConfirmMax':
'At most the first 5 options from variations will be created (not the full combination of all variations).',
'storeItems.create.addAllConfirmSkip':
'Products that are already in the store will be skipped.',
'storeItems.create.addAllConfirmHeavy':
'Especially with a large number of products, this is a heavy task — use it wisely.',
'storeItems.create.addAllAgree': 'I understand and want to continue',
'storeItems.create.addAllConfirm': 'Create all',
'storeItems.create.addAllResultTitle': 'Bulk create finished',
'storeItems.create.addAllDoneBtn': 'Done',
'storeItems.create.cancel': 'Cancel',
'storeItems.create.submit': 'Create store items',
'storeItems.create.submitting': 'Creating…',
'storeItems.create.errorProducts': 'Unable to load products.',
'storeItems.create.errorVariations': 'Unable to load product variations.',
'storeItems.create.errorCreate': 'Unable to create store items.',
'storeItems.price.contact': 'Contact for price',
'storeItems.edit.title': 'Edit Store Items',
'storeItems.edit.save': 'Save changes',
'storeItems.edit.saving': 'Saving…',
@@ -1475,14 +1493,32 @@ const fa: Record<MessageKey, string> = {
'storeItems.create.loadingVariations': 'در حال بارگذاری تنوع‌های محصول...',
'storeItems.create.price': 'قیمت (IRT)',
'storeItems.create.stock': 'موجودی',
'storeItems.create.unlimited': 'نامحدود',
'storeItems.create.removeRow': 'حذف ردیف',
'storeItems.create.addRow': 'افزودن ردیف',
'storeItems.create.addAllProducts': 'افزودن همه محصولات',
'storeItems.create.addingAll': 'در حال ایجاد برای همه محصولات…',
'storeItems.create.addAllDone': 'ایجاد شد {created}، رد شد {skipped}، ناموفق {failed}',
'storeItems.create.addAllConfirmTitle': 'افزودن اقلام برای همه محصولات؟',
'storeItems.create.addAllConfirmIntro':
'برای هر محصولی که هنوز به فروشگاه اضافه نشده است، تنوع‌های قابل فروش ساخته می‌شود. فقط وقتی می‌خواهید همهٔ محصولات یک‌جا به فروشگاه اضافه شود از این گزینه استفاده کنید.',
'storeItems.create.addAllConfirmMax':
'حداکثر ۵ گزینهٔ اول از تنوع‌ها ساخته خواهد شد (نه ترکیب کامل همهٔ تنوع‌ها).',
'storeItems.create.addAllConfirmSkip':
'محصولاتی که در فروشگاه هستند رد خواهند شد.',
'storeItems.create.addAllConfirmHeavy':
'این کار به‌خصوص در تعداد محصول بالا، کار سنگینی محسوب می‌شود — از آن هوشمندانه استفاده کنید.',
'storeItems.create.addAllAgree': 'متوجه شدم و می‌خواهم ادامه دهم',
'storeItems.create.addAllConfirm': 'ایجاد برای همه',
'storeItems.create.addAllResultTitle': 'ایجاد گروهی تمام شد',
'storeItems.create.addAllDoneBtn': 'باشه',
'storeItems.create.cancel': 'انصراف',
'storeItems.create.submit': 'ایجاد اقلام فروشگاه',
'storeItems.create.submitting': 'در حال ایجاد…',
'storeItems.create.errorProducts': 'بارگذاری محصولات ممکن نشد.',
'storeItems.create.errorVariations': 'بارگذاری تنوع‌های محصول ممکن نشد.',
'storeItems.create.errorCreate': 'ایجاد اقلام فروشگاه ممکن نشد.',
'storeItems.price.contact': 'برای قیمت، تماس بگیرید',
'storeItems.edit.title': 'ویرایش اقلام فروشگاه',
'storeItems.edit.save': 'ذخیره تغییرات',
'storeItems.edit.saving': 'در حال ذخیره…',