{errors.name}
+ )} + +Banner Image
+{errors.description}
+ )} + +{errors.redirectUrl}
+ )} + + {/* Action Buttons */} ++ Cancel Order +
++ This will cancel the order and mark it as cancelled by admin. A refund record will be created. +
+Is Reserved Coupon
+Coupon Codes
++ Each code creates a separate coupon with the same settings. +
+ {(values.couponCodes || []).map((code: string, index: number) => { + const codeError = Array.isArray(errors.couponCodes) + ? (errors.couponCodes as any)[index] + : errors.couponCodes + return ( +{codeError}
} +{(errors.couponCodes as any).message}
+ )} ++ Discount Type * +
+ +Valid Till
+Exclusive Apply
+ ++ Target Audience {isReserved ? '(Disabled for Reserved Coupons)' : ''} +
+ +Applicable Users (Optional)
+ +Select Applicable Users
+Loading...
: null} + {hasMoreUsers && !isFetchingUsers ? ( + + ) : null} + > + } + /> +Add Multiple Coupons
++ Generate {patternCode ? `${patternPrefix}${patternStart + 1}, ${patternPrefix}${patternStart + 2}, ...` : 'sequential'} codes from your pattern +
+{placeholder}
: null} + setValue(e.target.value ? new Date(`${e.target.value}T00:00:00`) : null)} + placeholder={placeholder} + className="w-full rounded border border-gray-300 px-2 py-2 text-sm font-medium text-gray-800" + /> +Select Time
: null} + handleTimeChange(e.target.value)} + className="w-full rounded border border-gray-300 px-2 py-1 text-sm font-medium text-gray-800" + /> +Select Date
: null} + handleDateChange(e.target.value)} + className="w-full rounded border border-gray-300 px-2 py-1 text-sm font-medium text-gray-800" + /> +Select Time
: null} + handleTimeChange(e.target.value)} + className="w-full rounded border border-gray-300 px-2 py-1 text-sm font-medium text-gray-800" + /> +{heading}
+ ) : null} + +{heading ?? placeholder ?? 'Select'}
+No options found
+ ) : null} ++ Add Order Notes +
+ ++ Order #{order.readableId} +
++ Select an action to perform +
+{message ?? ''}
+Store
+Product Type
+Variants
+ +Variant {vIndex + 1}
+ {isMarkedDeleted && ( +Deleted
+Attributes
+ +Flash Available
+Offer SKU
+Combo Only SKU
+Suspend SKU
+Included Items
+ ++ {isEditing ? 'Edit Product Group' : 'Create Product Group'} +
+ +{formik.errors.group_name}
+ )} + + {/* Description */} ++ Products ({products.length}) +
++ {product.name} +
+{label}
+ +{label}
+No options found
+ ) : null} ++ {isEditMode ? 'Edit Slot' : 'Create New Slot'} +
+ +Delivery Date & Time
+Freeze Date & Time
+Vendor Snippets
+ {values.vendorSnippetList.map((snippet: VendorSnippet, index: number) => ( ++ Snippet Options +
+ + {options.map((option, index) => { + const Icon = iconMap[option.icon] + return ( + + ) + })} +{order.orderId}
+{order.customerName}
+₹{order.totalAmount}
++ {orderDate.toLocaleDateString()} +
++ Delivery: {slotTime.toLocaleString()} +
+Products:
+ {order.products.map((product, index) => { + const isMatched = order.matchedProducts.includes(product.productId) + return ( ++ {product.productName} + {isMatched && ' ⭐'} +
++ {product.quantity} {product.unit} × ₹{product.price} +
++ ₹{product.subtotal.toFixed(2)} +
++ Matched {order.matchedProducts.length} product(s) from snippet "{order.snippetCode}" +
+Orders for "{snippetCode}"
++ {totalOrders} order{totalOrders !== 1 ? 's' : ''} • Total: ₹{totalRevenue.toFixed(2)} +
+No matching orders
++ No orders found that match this snippet's criteria +
+Owner
+Store Image
++ {item.label} +
+ +{errors.tagName}
+ ) : null} + +{errors.tagDescription}
+ ) : null} + + {/* Image Upload Section */} ++ Tag Image {mode === 'edit' ? '(Upload new to replace)' : '(Optional)'} +
+ +Mark as Dashboard Tag
++ Related Stores +
++ Products +
++ Drag to reorder • {selectedProducts.length} items +
+No products selected yet
++ Tag Options +
+ + {options.map((option, index) => { + const Icon = option.icon + return ( + + ) + })} ++ Add User Incident +
++ Record an incident for this user. This will be visible in their profile. +
++ Higher negativity scores indicate more serious incidents (e.g., repeated cancellations, abusive behavior). +
++ User Incidents +
+ ++ {dayjs(incident.dateAdded).format('MMM DD, YYYY • h:mm A')} +
++ Score: {incident.negativityScore} +
++ {incident.adminComment} +
++ Added by {incident.addedBy} +
+ {incident.orderId && ( + <> ++ Order #{incident.orderId} +
+ > + )} ++ No incidents recorded for this user +
++ {isEditing ? 'Edit Vendor Snippet' : 'Create Vendor Snippet'} +
+ +{formik.errors.snippetCode}
+ )} ++ Check if this snippet is permanent and not tied to a specific delivery slot +
+Delivery Slot
+{formik.errors.slotId}
+ )} +{formik.errors.skuIds}
+ )} +Valid Till (Optional)
++ Leave empty for no expiry +
+{product.shortDescription}
+ )} + ++ {product.longDescription || 'No detailed description available for this product.'} +
+₹{sku.price}
+ {sku.marketPrice && ( +₹{sku.marketPrice}
+ )} +Buy {deal.quantity}
+Valid until {new Date(deal.validTill).toLocaleDateString()}
+₹{deal.price}
+Total Price
+{review.reviewBody}
+ + {review.signedImageUrls && review.signedImageUrls.length > 0 && ( +{review.adminResponse}
+ {review.signedAdminImageUrls && review.signedAdminImageUrls.length > 0 && ( ++ Replying to {selectedReview.userName} +
->