@base44/app-plugin-commerce 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +117 -0
- package/base44/agents/commerce/StoreAdmin.jsonc +64 -0
- package/base44/entities/commerce.Cart.jsonc +73 -0
- package/base44/entities/commerce.Coupon.jsonc +113 -0
- package/base44/entities/commerce.Customer.jsonc +96 -0
- package/base44/entities/commerce.DownloadPermission.jsonc +54 -0
- package/base44/entities/commerce.EmailLog.jsonc +43 -0
- package/base44/entities/commerce.Order.jsonc +287 -0
- package/base44/entities/commerce.OrderNote.jsonc +31 -0
- package/base44/entities/commerce.OrderRefund.jsonc +64 -0
- package/base44/entities/commerce.PaymentGateway.jsonc +48 -0
- package/base44/entities/commerce.Product.jsonc +291 -0
- package/base44/entities/commerce.ProductAttribute.jsonc +39 -0
- package/base44/entities/commerce.ProductAttributeTerm.jsonc +38 -0
- package/base44/entities/commerce.ProductCategory.jsonc +51 -0
- package/base44/entities/commerce.ProductReview.jsonc +48 -0
- package/base44/entities/commerce.ProductTag.jsonc +30 -0
- package/base44/entities/commerce.ProductVariation.jsonc +167 -0
- package/base44/entities/commerce.ShippingClass.jsonc +30 -0
- package/base44/entities/commerce.ShippingZone.jsonc +41 -0
- package/base44/entities/commerce.ShippingZoneMethod.jsonc +84 -0
- package/base44/entities/commerce.StoreSettings.jsonc +23 -0
- package/base44/entities/commerce.TaxClass.jsonc +23 -0
- package/base44/entities/commerce.TaxRate.jsonc +68 -0
- package/base44/entities/commerce.Webhook.jsonc +57 -0
- package/base44/entities/commerce.WebhookDelivery.jsonc +45 -0
- package/base44/functions/commerce/admin-coupons/entry.ts +100 -0
- package/base44/functions/commerce/admin-customers/entry.ts +141 -0
- package/base44/functions/commerce/admin-orders/entry.ts +396 -0
- package/base44/functions/commerce/admin-orders/helpers.ts +246 -0
- package/base44/functions/commerce/admin-products/entry.ts +506 -0
- package/base44/functions/commerce/admin-refunds/entry.ts +158 -0
- package/base44/functions/commerce/admin-reports/entry.ts +283 -0
- package/base44/functions/commerce/admin-reviews/entry.ts +66 -0
- package/base44/functions/commerce/admin-tools/entry.ts +261 -0
- package/base44/functions/commerce/admin-webhooks/entry.ts +52 -0
- package/base44/functions/commerce/payment-webhook/entry.ts +135 -0
- package/base44/functions/commerce/payments/entry.ts +238 -0
- package/base44/functions/commerce/seed-store/defaults.ts +162 -0
- package/base44/functions/commerce/seed-store/entry.ts +310 -0
- package/base44/functions/commerce/seed-store/sample-data.ts +349 -0
- package/base44/functions/commerce/storefront-account/entry.ts +207 -0
- package/base44/functions/commerce/storefront-cart/cart-pricing.ts +258 -0
- package/base44/functions/commerce/storefront-cart/entry.ts +283 -0
- package/base44/functions/commerce/storefront-catalog/entry.ts +459 -0
- package/base44/functions/commerce/storefront-checkout/cart-pricing.ts +258 -0
- package/base44/functions/commerce/storefront-checkout/entry.ts +485 -0
- package/base44/shared/commerce/auth.ts +60 -0
- package/base44/shared/commerce/coupons.ts +257 -0
- package/base44/shared/commerce/data/continents.ts +75 -0
- package/base44/shared/commerce/data/countries.ts +307 -0
- package/base44/shared/commerce/data/currencies.ts +46 -0
- package/base44/shared/commerce/email-templates.ts +240 -0
- package/base44/shared/commerce/emails.ts +225 -0
- package/base44/shared/commerce/money.ts +66 -0
- package/base44/shared/commerce/orders.ts +251 -0
- package/base44/shared/commerce/payments.ts +495 -0
- package/base44/shared/commerce/reviews.ts +36 -0
- package/base44/shared/commerce/scan.ts +57 -0
- package/base44/shared/commerce/sequence.ts +35 -0
- package/base44/shared/commerce/settings.ts +57 -0
- package/base44/shared/commerce/shipping.ts +215 -0
- package/base44/shared/commerce/stock.ts +227 -0
- package/base44/shared/commerce/stripe.ts +463 -0
- package/base44/shared/commerce/tax.ts +136 -0
- package/base44/shared/commerce/totals.ts +314 -0
- package/base44/shared/commerce/webhooks.ts +116 -0
- package/package.json +37 -0
- package/scripts/install.js +156 -0
- package/skills/commerce/SKILL.md +62 -0
- package/skills/commerce/docs/api-admin.md +186 -0
- package/skills/commerce/docs/api-storefront.md +408 -0
- package/skills/commerce/installation-guidelines.md +91 -0
- package/skills/commerce/post-installation.md +157 -0
- package/skills/commerce/references/emails.md +13 -0
- package/skills/commerce/references/guest-access-security.md +18 -0
- package/skills/commerce/references/limits-and-performance.md +16 -0
- package/skills/commerce/references/media-and-downloads.md +4 -0
- package/skills/commerce/references/online-payments.md +201 -0
- package/skills/commerce/references/product-render.md +87 -0
- package/skills/commerce/references/scheduled-work.md +19 -0
- package/skills/commerce/references/storefront-product-page.md +83 -0
- package/skills/commerce/references/webhooks.md +8 -0
- package/src/commerce/admin/README.md +107 -0
- package/src/commerce/admin/bot/Markdown.jsx +138 -0
- package/src/commerce/admin/bot/StoreAdminBot.jsx +249 -0
- package/src/commerce/admin/bot/pipe-tables.js +116 -0
- package/src/commerce/admin/components/AddressForm.jsx +78 -0
- package/src/commerce/admin/components/ConfirmDialog.jsx +52 -0
- package/src/commerce/admin/components/CountrySelect.jsx +81 -0
- package/src/commerce/admin/components/DataTable.jsx +192 -0
- package/src/commerce/admin/components/DateRangePicker.jsx +91 -0
- package/src/commerce/admin/components/EmptyState.jsx +17 -0
- package/src/commerce/admin/components/MediaUploader.jsx +116 -0
- package/src/commerce/admin/components/MetaDataEditor.jsx +45 -0
- package/src/commerce/admin/components/MoneyInput.jsx +50 -0
- package/src/commerce/admin/components/PageHeader.jsx +29 -0
- package/src/commerce/admin/components/RichTextarea.jsx +21 -0
- package/src/commerce/admin/components/SearchSelect.jsx +142 -0
- package/src/commerce/admin/components/StatusBadge.jsx +17 -0
- package/src/commerce/admin/context/BasePathContext.jsx +26 -0
- package/src/commerce/admin/context/SettingsContext.jsx +207 -0
- package/src/commerce/admin/hooks/useAsync.js +46 -0
- package/src/commerce/admin/hooks/useDebounce.js +11 -0
- package/src/commerce/admin/hooks/useMoney.js +52 -0
- package/src/commerce/admin/hooks/usePagedList.js +83 -0
- package/src/commerce/admin/hooks/usePaymentProvider.js +27 -0
- package/src/commerce/admin/hooks/useRealtime.js +129 -0
- package/src/commerce/admin/index.jsx +34 -0
- package/src/commerce/admin/layout/AccessDenied.jsx +54 -0
- package/src/commerce/admin/layout/AdminLayout.jsx +33 -0
- package/src/commerce/admin/layout/AuthGuard.jsx +84 -0
- package/src/commerce/admin/layout/Sidebar.jsx +130 -0
- package/src/commerce/admin/layout/Topbar.jsx +94 -0
- package/src/commerce/admin/lib/api.js +55 -0
- package/src/commerce/admin/lib/constants.js +157 -0
- package/src/commerce/admin/lib/format.js +27 -0
- package/src/commerce/admin/lib/geo-data.js +125 -0
- package/src/commerce/admin/lib/order-utils.js +147 -0
- package/src/commerce/admin/lib/paths.js +35 -0
- package/src/commerce/admin/lib/product-utils.js +55 -0
- package/src/commerce/admin/pages/Dashboard.jsx +245 -0
- package/src/commerce/admin/pages/coupons/CouponEditor.jsx +565 -0
- package/src/commerce/admin/pages/coupons/CouponsList.jsx +172 -0
- package/src/commerce/admin/pages/customers/CustomerEditor.jsx +318 -0
- package/src/commerce/admin/pages/customers/CustomersList.jsx +169 -0
- package/src/commerce/admin/pages/orders/OrderEditor.jsx +952 -0
- package/src/commerce/admin/pages/orders/OrdersList.jsx +227 -0
- package/src/commerce/admin/pages/orders/components/AddProductDialog.jsx +149 -0
- package/src/commerce/admin/pages/orders/components/DownloadPermissionsPanel.jsx +119 -0
- package/src/commerce/admin/pages/orders/components/LineItemsTable.jsx +208 -0
- package/src/commerce/admin/pages/orders/components/OrderNotesPanel.jsx +123 -0
- package/src/commerce/admin/pages/orders/components/PaymentPanel.jsx +199 -0
- package/src/commerce/admin/pages/orders/components/RefundPanel.jsx +239 -0
- package/src/commerce/admin/pages/orders/components/TotalsBox.jsx +52 -0
- package/src/commerce/admin/pages/products/AttributeTerms.jsx +180 -0
- package/src/commerce/admin/pages/products/Attributes.jsx +183 -0
- package/src/commerce/admin/pages/products/Categories.jsx +236 -0
- package/src/commerce/admin/pages/products/ProductEditor.jsx +267 -0
- package/src/commerce/admin/pages/products/ProductsList.jsx +391 -0
- package/src/commerce/admin/pages/products/Reviews.jsx +255 -0
- package/src/commerce/admin/pages/products/Tags.jsx +150 -0
- package/src/commerce/admin/pages/products/components/ProductDataPanel.jsx +132 -0
- package/src/commerce/admin/pages/products/components/PublishBox.jsx +101 -0
- package/src/commerce/admin/pages/products/components/TaxonomyPanel.jsx +243 -0
- package/src/commerce/admin/pages/products/components/tabs/AdvancedTab.jsx +48 -0
- package/src/commerce/admin/pages/products/components/tabs/AttributesTab.jsx +208 -0
- package/src/commerce/admin/pages/products/components/tabs/DownloadsTab.jsx +91 -0
- package/src/commerce/admin/pages/products/components/tabs/ExternalTab.jsx +41 -0
- package/src/commerce/admin/pages/products/components/tabs/GeneralTab.jsx +103 -0
- package/src/commerce/admin/pages/products/components/tabs/InventoryTab.jsx +93 -0
- package/src/commerce/admin/pages/products/components/tabs/LinkedTab.jsx +102 -0
- package/src/commerce/admin/pages/products/components/tabs/ShippingTab.jsx +86 -0
- package/src/commerce/admin/pages/products/components/tabs/VariationsTab.jsx +377 -0
- package/src/commerce/admin/pages/reports/Reports.jsx +416 -0
- package/src/commerce/admin/pages/settings/EmailsSettings.jsx +240 -0
- package/src/commerce/admin/pages/settings/GeneralSettings.jsx +232 -0
- package/src/commerce/admin/pages/settings/InventorySettings.jsx +146 -0
- package/src/commerce/admin/pages/settings/PaymentsSettings.jsx +260 -0
- package/src/commerce/admin/pages/settings/ProductsSettings.jsx +118 -0
- package/src/commerce/admin/pages/settings/SettingsLayout.jsx +53 -0
- package/src/commerce/admin/pages/settings/ShippingSettings.jsx +304 -0
- package/src/commerce/admin/pages/settings/ShippingZoneEditor.jsx +514 -0
- package/src/commerce/admin/pages/settings/TaxRatesTable.jsx +231 -0
- package/src/commerce/admin/pages/settings/TaxSettings.jsx +281 -0
- package/src/commerce/admin/pages/settings/useGroupForm.jsx +76 -0
- package/src/commerce/admin/pages/status/WebhookEditor.jsx +296 -0
- package/src/commerce/admin/pages/status/Webhooks.jsx +53 -0
- package/src/commerce/admin/routes.jsx +151 -0
- package/src/commerce/utils/index.js +19 -0
- package/src/commerce/utils/shipping-promos.js +99 -0
- package/src/commerce/utils/variants.js +411 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "commerce.Order",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "A store order with embedded line items, shipping/tax/fee/coupon lines and totals. Lifecycle side effects are managed by shared/orders transitionOrder.",
|
|
5
|
+
"properties": {
|
|
6
|
+
"order_number": {
|
|
7
|
+
"type": "integer",
|
|
8
|
+
"description": "Human-facing sequential number, assigned by shared/sequence"
|
|
9
|
+
},
|
|
10
|
+
"order_key": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Random secret key for guest order tracking (order_xxxxx)"
|
|
13
|
+
},
|
|
14
|
+
"status": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"enum": ["pending", "processing", "on-hold", "completed", "cancelled", "refunded", "failed"],
|
|
17
|
+
"default": "pending",
|
|
18
|
+
"description": "Order status"
|
|
19
|
+
},
|
|
20
|
+
"currency": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"default": "USD",
|
|
23
|
+
"description": "ISO 4217 currency code"
|
|
24
|
+
},
|
|
25
|
+
"prices_include_tax": {
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": false,
|
|
28
|
+
"description": "Whether catalog prices included tax at time of order"
|
|
29
|
+
},
|
|
30
|
+
"created_via": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"enum": ["checkout", "admin", "api"],
|
|
33
|
+
"default": "checkout",
|
|
34
|
+
"description": "Order creation channel"
|
|
35
|
+
},
|
|
36
|
+
"customer_id": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Customer entity id; empty = guest"
|
|
39
|
+
},
|
|
40
|
+
"customer_note": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "Note provided by the customer at checkout"
|
|
43
|
+
},
|
|
44
|
+
"customer_ip": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "Customer IP address"
|
|
47
|
+
},
|
|
48
|
+
"customer_user_agent": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "Customer user agent"
|
|
51
|
+
},
|
|
52
|
+
"billing": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"description": "Billing address",
|
|
55
|
+
"properties": {
|
|
56
|
+
"first_name": { "type": "string" },
|
|
57
|
+
"last_name": { "type": "string" },
|
|
58
|
+
"company": { "type": "string" },
|
|
59
|
+
"address_1": { "type": "string" },
|
|
60
|
+
"address_2": { "type": "string" },
|
|
61
|
+
"city": { "type": "string" },
|
|
62
|
+
"state": { "type": "string" },
|
|
63
|
+
"postcode": { "type": "string" },
|
|
64
|
+
"country": { "type": "string" },
|
|
65
|
+
"email": { "type": "string", "format": "email" },
|
|
66
|
+
"phone": { "type": "string" }
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"shipping": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"description": "Shipping address",
|
|
72
|
+
"properties": {
|
|
73
|
+
"first_name": { "type": "string" },
|
|
74
|
+
"last_name": { "type": "string" },
|
|
75
|
+
"company": { "type": "string" },
|
|
76
|
+
"address_1": { "type": "string" },
|
|
77
|
+
"address_2": { "type": "string" },
|
|
78
|
+
"city": { "type": "string" },
|
|
79
|
+
"state": { "type": "string" },
|
|
80
|
+
"postcode": { "type": "string" },
|
|
81
|
+
"country": { "type": "string" },
|
|
82
|
+
"phone": { "type": "string" }
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"payment_method": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"description": "PaymentGateway slug (e.g. bacs|cheque|cod|stripe)"
|
|
88
|
+
},
|
|
89
|
+
"payment_method_title": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"description": "Customer-facing payment method title"
|
|
92
|
+
},
|
|
93
|
+
"transaction_id": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"description": "External gateway transaction id"
|
|
96
|
+
},
|
|
97
|
+
"date_paid": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"format": "date-time",
|
|
100
|
+
"description": "When payment was confirmed"
|
|
101
|
+
},
|
|
102
|
+
"date_completed": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"format": "date-time",
|
|
105
|
+
"description": "When the order was completed"
|
|
106
|
+
},
|
|
107
|
+
"line_items": {
|
|
108
|
+
"type": "array",
|
|
109
|
+
"description": "Product line items",
|
|
110
|
+
"items": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"properties": {
|
|
113
|
+
"line_id": { "type": "string", "description": "Stable uuid for refund references" },
|
|
114
|
+
"product_id": { "type": "string" },
|
|
115
|
+
"variation_id": { "type": "string" },
|
|
116
|
+
"name": { "type": "string" },
|
|
117
|
+
"sku": { "type": "string" },
|
|
118
|
+
"quantity": { "type": "integer" },
|
|
119
|
+
"price": { "type": "number", "description": "Per-unit price after discounts, ex tax" },
|
|
120
|
+
"tax_class": { "type": "string" },
|
|
121
|
+
"subtotal": { "type": "number", "description": "Line total before discounts, ex tax" },
|
|
122
|
+
"subtotal_tax": { "type": "number" },
|
|
123
|
+
"total": { "type": "number", "description": "Line total after discounts, ex tax" },
|
|
124
|
+
"total_tax": { "type": "number" },
|
|
125
|
+
"taxes": {
|
|
126
|
+
"type": "array",
|
|
127
|
+
"items": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"properties": {
|
|
130
|
+
"rate_id": { "type": "string" },
|
|
131
|
+
"total": { "type": "number" },
|
|
132
|
+
"subtotal": { "type": "number" }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"attributes": {
|
|
137
|
+
"type": "array",
|
|
138
|
+
"description": "Chosen variation attributes for display",
|
|
139
|
+
"items": {
|
|
140
|
+
"type": "object",
|
|
141
|
+
"properties": {
|
|
142
|
+
"name": { "type": "string" },
|
|
143
|
+
"option": { "type": "string" }
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"meta_data": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"items": {
|
|
150
|
+
"type": "object",
|
|
151
|
+
"properties": {
|
|
152
|
+
"key": { "type": "string" },
|
|
153
|
+
"value": { "type": "string" }
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"shipping_lines": {
|
|
161
|
+
"type": "array",
|
|
162
|
+
"description": "Chosen shipping methods",
|
|
163
|
+
"items": {
|
|
164
|
+
"type": "object",
|
|
165
|
+
"properties": {
|
|
166
|
+
"line_id": { "type": "string" },
|
|
167
|
+
"method_id": { "type": "string", "description": "flat_rate|free_shipping|local_pickup" },
|
|
168
|
+
"instance_id": { "type": "string", "description": "ShippingZoneMethod id" },
|
|
169
|
+
"method_title": { "type": "string" },
|
|
170
|
+
"total": { "type": "number" },
|
|
171
|
+
"total_tax": { "type": "number" },
|
|
172
|
+
"taxes": {
|
|
173
|
+
"type": "array",
|
|
174
|
+
"items": {
|
|
175
|
+
"type": "object",
|
|
176
|
+
"properties": {
|
|
177
|
+
"rate_id": { "type": "string" },
|
|
178
|
+
"total": { "type": "number" }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"tax_lines": {
|
|
186
|
+
"type": "array",
|
|
187
|
+
"description": "Aggregated tax totals per rate",
|
|
188
|
+
"items": {
|
|
189
|
+
"type": "object",
|
|
190
|
+
"properties": {
|
|
191
|
+
"rate_id": { "type": "string" },
|
|
192
|
+
"rate_code": { "type": "string" },
|
|
193
|
+
"label": { "type": "string" },
|
|
194
|
+
"rate_percent": { "type": "number" },
|
|
195
|
+
"compound": { "type": "boolean" },
|
|
196
|
+
"tax_total": { "type": "number" },
|
|
197
|
+
"shipping_tax_total": { "type": "number" }
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"fee_lines": {
|
|
202
|
+
"type": "array",
|
|
203
|
+
"description": "Additional fees",
|
|
204
|
+
"items": {
|
|
205
|
+
"type": "object",
|
|
206
|
+
"properties": {
|
|
207
|
+
"line_id": { "type": "string" },
|
|
208
|
+
"name": { "type": "string" },
|
|
209
|
+
"tax_class": { "type": "string" },
|
|
210
|
+
"tax_status": { "type": "string", "enum": ["taxable", "none"] },
|
|
211
|
+
"total": { "type": "number" },
|
|
212
|
+
"total_tax": { "type": "number" }
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
"coupon_lines": {
|
|
217
|
+
"type": "array",
|
|
218
|
+
"description": "Applied coupons",
|
|
219
|
+
"items": {
|
|
220
|
+
"type": "object",
|
|
221
|
+
"properties": {
|
|
222
|
+
"code": { "type": "string" },
|
|
223
|
+
"coupon_id": { "type": "string" },
|
|
224
|
+
"discount": { "type": "number" },
|
|
225
|
+
"discount_tax": { "type": "number" },
|
|
226
|
+
"free_shipping": { "type": "boolean" }
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"discount_total": { "type": "number", "default": 0 },
|
|
231
|
+
"discount_tax": { "type": "number", "default": 0 },
|
|
232
|
+
"shipping_total": { "type": "number", "default": 0 },
|
|
233
|
+
"shipping_tax": { "type": "number", "default": 0 },
|
|
234
|
+
"cart_tax": { "type": "number", "default": 0 },
|
|
235
|
+
"total_tax": { "type": "number", "default": 0 },
|
|
236
|
+
"subtotal": { "type": "number", "default": 0, "description": "Sum of line subtotals, ex tax" },
|
|
237
|
+
"total": { "type": "number", "default": 0, "description": "Grand total incl. tax and shipping" },
|
|
238
|
+
"total_refunded": {
|
|
239
|
+
"type": "number",
|
|
240
|
+
"default": 0,
|
|
241
|
+
"description": "Sum of refunds. Maintained by commerce/admin-refunds."
|
|
242
|
+
},
|
|
243
|
+
"stock_reduced": {
|
|
244
|
+
"type": "boolean",
|
|
245
|
+
"default": false,
|
|
246
|
+
"description": "Lifecycle flag guarding double stock reduce/restore"
|
|
247
|
+
},
|
|
248
|
+
"coupon_usages_counted": {
|
|
249
|
+
"type": "boolean",
|
|
250
|
+
"default": false,
|
|
251
|
+
"description": "Lifecycle flag guarding double coupon usage counting"
|
|
252
|
+
},
|
|
253
|
+
"download_permissions_granted": {
|
|
254
|
+
"type": "boolean",
|
|
255
|
+
"default": false,
|
|
256
|
+
"description": "Lifecycle flag guarding duplicate download permission grants"
|
|
257
|
+
},
|
|
258
|
+
"hold_expires_at": {
|
|
259
|
+
"type": "string",
|
|
260
|
+
"format": "date-time",
|
|
261
|
+
"description": "Unpaid-order stock hold deadline; expired holds are released opportunistically"
|
|
262
|
+
},
|
|
263
|
+
"emails_sent": {
|
|
264
|
+
"type": "array",
|
|
265
|
+
"items": { "type": "string" },
|
|
266
|
+
"description": "Email types already fired for this order, prevents duplicates"
|
|
267
|
+
},
|
|
268
|
+
"meta_data": {
|
|
269
|
+
"type": "array",
|
|
270
|
+
"description": "Custom key/value metadata",
|
|
271
|
+
"items": {
|
|
272
|
+
"type": "object",
|
|
273
|
+
"properties": {
|
|
274
|
+
"key": { "type": "string" },
|
|
275
|
+
"value": { "type": "string" }
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"required": ["status", "currency"],
|
|
281
|
+
"rls": {
|
|
282
|
+
"read": { "user_condition": { "role": "admin" } },
|
|
283
|
+
"create": { "user_condition": { "role": "admin" } },
|
|
284
|
+
"update": { "user_condition": { "role": "admin" } },
|
|
285
|
+
"delete": { "user_condition": { "role": "admin" } }
|
|
286
|
+
}
|
|
287
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "commerce.OrderNote",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "Note attached to an order: system, private admin, or customer-facing. Customer notes are served to buyers via commerce/storefront-account.",
|
|
5
|
+
"properties": {
|
|
6
|
+
"order_id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Order id"
|
|
9
|
+
},
|
|
10
|
+
"note": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Note content"
|
|
13
|
+
},
|
|
14
|
+
"is_customer_note": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": false,
|
|
17
|
+
"description": "Customer-facing note (triggers customer_note email)"
|
|
18
|
+
},
|
|
19
|
+
"added_by": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "\"system\" or the admin's email"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"required": ["order_id", "note"],
|
|
25
|
+
"rls": {
|
|
26
|
+
"read": { "user_condition": { "role": "admin" } },
|
|
27
|
+
"create": { "user_condition": { "role": "admin" } },
|
|
28
|
+
"update": { "user_condition": { "role": "admin" } },
|
|
29
|
+
"delete": { "user_condition": { "role": "admin" } }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "commerce.OrderRefund",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "A full or partial refund of an order. Created via commerce/admin-refunds, which also maintains order.total_refunded and optional restocking.",
|
|
5
|
+
"properties": {
|
|
6
|
+
"order_id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Order id"
|
|
9
|
+
},
|
|
10
|
+
"amount": {
|
|
11
|
+
"type": "number",
|
|
12
|
+
"description": "Total amount refunded"
|
|
13
|
+
},
|
|
14
|
+
"reason": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"refunded_by": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Admin email"
|
|
20
|
+
},
|
|
21
|
+
"refunded_payment": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "True when a real gateway refund was made (Stripe wiring placeholder — see skills/commerce/references/online-payments.md)"
|
|
25
|
+
},
|
|
26
|
+
"restock_items": {
|
|
27
|
+
"type": "boolean",
|
|
28
|
+
"default": false,
|
|
29
|
+
"description": "Whether refunded line quantities were restocked"
|
|
30
|
+
},
|
|
31
|
+
"line_items": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"description": "Per-line refund breakdown; line_id references Order.line_items",
|
|
34
|
+
"items": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"line_id": { "type": "string" },
|
|
38
|
+
"product_id": { "type": "string" },
|
|
39
|
+
"variation_id": { "type": "string" },
|
|
40
|
+
"quantity": { "type": "integer" },
|
|
41
|
+
"refund_total": { "type": "number" },
|
|
42
|
+
"refund_tax": { "type": "number" }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"meta_data": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"properties": {
|
|
51
|
+
"key": { "type": "string" },
|
|
52
|
+
"value": { "type": "string" }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"required": ["order_id", "amount"],
|
|
58
|
+
"rls": {
|
|
59
|
+
"read": { "user_condition": { "role": "admin" } },
|
|
60
|
+
"create": { "user_condition": { "role": "admin" } },
|
|
61
|
+
"update": { "user_condition": { "role": "admin" } },
|
|
62
|
+
"delete": { "user_condition": { "role": "admin" } }
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "commerce.PaymentGateway",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "Payment gateway configuration (data model only — no processing). Seeded: bacs, cheque, cod, stripe (placeholder). Secrets are never stored here; use Base44 secrets.",
|
|
5
|
+
"properties": {
|
|
6
|
+
"slug": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"minLength": 1,
|
|
9
|
+
"description": "Unique gateway id, e.g. bacs | cheque | cod | stripe"
|
|
10
|
+
},
|
|
11
|
+
"title": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Customer-facing title shown at checkout"
|
|
14
|
+
},
|
|
15
|
+
"description": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Customer-facing description/instructions shown at checkout"
|
|
18
|
+
},
|
|
19
|
+
"enabled": {
|
|
20
|
+
"type": "boolean",
|
|
21
|
+
"default": false
|
|
22
|
+
},
|
|
23
|
+
"order": {
|
|
24
|
+
"type": "integer",
|
|
25
|
+
"default": 0,
|
|
26
|
+
"description": "Display order at checkout and in admin"
|
|
27
|
+
},
|
|
28
|
+
"method_title": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Admin-facing label"
|
|
31
|
+
},
|
|
32
|
+
"method_description": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Admin-facing description"
|
|
35
|
+
},
|
|
36
|
+
"settings": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"description": "Per-gateway settings. bacs: {account_details: [{account_name, account_number, bank_name, sort_code, iban, bic}]}; cod: {enable_for_methods, enable_for_virtual}; stripe: {connector: \"stripe\"} placeholder — see skills/commerce/references/online-payments.md"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"required": ["slug"],
|
|
42
|
+
"rls": {
|
|
43
|
+
"read": { "user_condition": { "role": "admin" } },
|
|
44
|
+
"create": { "user_condition": { "role": "admin" } },
|
|
45
|
+
"update": { "user_condition": { "role": "admin" } },
|
|
46
|
+
"delete": { "user_condition": { "role": "admin" } }
|
|
47
|
+
}
|
|
48
|
+
}
|