@riosst100/pwa-marketplace 2.9.4 → 2.9.6

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.
Files changed (39) hide show
  1. package/i18n/en_US.json +1 -0
  2. package/i18n/id_ID.json +1 -0
  3. package/package.json +1 -1
  4. package/src/componentOverrideMapping.js +6 -1
  5. package/src/components/ConfirmEmailPage/confirmEmail.js +76 -0
  6. package/src/components/ConfirmEmailPage/confirmEmail.module.css +71 -0
  7. package/src/components/ConfirmEmailPage/index.js +1 -0
  8. package/src/components/FavoriteSellerPage/favoriteSeller.js +0 -1
  9. package/src/components/FavoriteSellerPage/item.js +0 -2
  10. package/src/components/OrderDetail/components/itemsOrdered.js +94 -82
  11. package/src/components/OrderDetail/components/rmaList.js +80 -88
  12. package/src/components/OrderDetail/orderDetail.js +154 -95
  13. package/src/components/RMAPage/RMACreate.js +225 -36
  14. package/src/components/RMAPage/RMADetail.js +141 -89
  15. package/src/components/RMAPage/RMAList.js +38 -57
  16. package/src/components/RMAPage/components/productItem.js +55 -30
  17. package/src/components/RMAPage/orderRow.js +109 -254
  18. package/src/components/VerifyEmailPage/verifyEmail.js +33 -10
  19. package/src/intercept.js +8 -1
  20. package/src/overwrites/peregrine/lib/talons/CartPage/PriceSummary/usePriceSummary.js +2 -2
  21. package/src/overwrites/peregrine/lib/talons/CheckoutPage/PaymentInformation/paymentMethods.gql.js +45 -0
  22. package/src/overwrites/peregrine/lib/talons/OrderHistoryPage/orderHistoryPage.gql.js +117 -0
  23. package/src/overwrites/peregrine/lib/talons/OrderHistoryPage/orderRow.gql.js +46 -0
  24. package/src/overwrites/peregrine/lib/talons/OrderHistoryPage/useOrderRow.js +112 -0
  25. package/src/overwrites/peregrine/lib/talons/RMAPage/rmaPage.gql.js +170 -0
  26. package/src/overwrites/venia-ui/lib/components/AccountInformationPage/DeleteAccount.js +5 -37
  27. package/src/overwrites/venia-ui/lib/components/Adapter/adapter.js +3 -1
  28. package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderHistoryPage.js +10 -2
  29. package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.js +158 -79
  30. package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.module.css +3 -3
  31. package/src/overwrites/venia-ui/lib/components/StoreCodeRoute/storeCodeRoute.js +1 -1
  32. package/src/talons/AccountInformationPage/deleteAccount.gql.js +23 -0
  33. package/src/talons/AccountInformationPage/useDeleteAccount.js +98 -0
  34. package/src/talons/ConfirmEmailPage/confirmEmailPage.gql.js +20 -0
  35. package/src/talons/ConfirmEmailPage/useConfirmEmailPage.js +78 -0
  36. package/src/talons/OrderHistoryPage/useOrderHistoryPage.js +115 -0
  37. package/src/talons/RMAPage/useRmaPage.js +145 -0
  38. package/src/talons/VerifyEmailPage/useVerifyEmailPage.js +73 -0
  39. package/src/talons/VerifyEmailPage/verifyEmailPage.gql.js +36 -0
@@ -1,39 +1,59 @@
1
- import React, { useState } from 'react';
1
+ import React from 'react';
2
2
  import Image from '@magento/venia-ui/lib/components/Image';
3
3
  import { Link } from 'react-router-dom';
4
4
  import Select from '@riosst100/pwa-marketplace/src/components/commons/Select';
5
5
  import TextField from '@riosst100/pwa-marketplace/src/components/commons/Textfield';
6
6
  import Checkbox from '@riosst100/pwa-marketplace/src/components/commons/Checkbox';
7
7
 
8
- const productItem = (props) => {
9
- const { withCheckbox = false } = props
10
- const urlImage = 'https://pwa-tcgcollective.local:8255/media/catalog/product/s/-/s-l1600_6__1.jpg?auto=webp&format=pjpg&width=495&height=618.75&fit=cover';
11
- const reasonOptions = [
12
- {
13
- value: 0,
14
- label: 'Out of Service'
15
- }
16
- ]
17
8
 
18
- const [show, setShow] = useState(false);
9
+ const productItem = (props) => {
10
+ const {
11
+ withCheckbox = false,
12
+ item,
13
+ order,
14
+ rmaConfigData,
15
+ itemState = {},
16
+ onItemChange,
17
+ onItemCheck
18
+ } = props;
19
19
 
20
- const handleChange = (e) => {
21
- const checked = e.target.checked;
22
- setShow(checked)
20
+ let urlImage = undefined;
21
+ if (item && typeof item.product_image === 'string' && item.product_image.length > 0) {
22
+ urlImage = item.product_image;
23
23
  }
24
24
 
25
+ const reasonOptions = rmaConfigData && rmaConfigData?.lofmpRmaConfigurations && rmaConfigData?.lofmpRmaConfigurations?.reasons
26
+ ? rmaConfigData?.lofmpRmaConfigurations?.reasons.map(r => ({ value: r.id, label: r.name }))
27
+ : [];
28
+ const conditionOptions = rmaConfigData && rmaConfigData?.lofmpRmaConfigurations && rmaConfigData?.lofmpRmaConfigurations?.conditions
29
+ ? rmaConfigData?.lofmpRmaConfigurations?.conditions.map(c => ({ value: c.id, label: c.name }))
30
+ : [];
31
+ const resolutionOptions = rmaConfigData && rmaConfigData?.lofmpRmaConfigurations && rmaConfigData?.lofmpRmaConfigurations?.resolutions
32
+ ? rmaConfigData?.lofmpRmaConfigurations?.resolutions.map(res => ({ value: res.id, label: res.name }))
33
+ : [];
34
+
35
+ // Checkbox handler
36
+ const handleCheck = (e) => {
37
+ if (onItemCheck) onItemCheck(e.target.checked);
38
+ };
39
+
40
+ // Input change handler
41
+ const handleFieldChange = (field, value) => {
42
+ if (onItemChange) onItemChange(field, value);
43
+ };
44
+
25
45
  return (
26
46
  <>
27
47
  <div className='item flex flex-col lg_flex-row justify-between border border-gray-100 rounded-md p-4'>
28
48
  <div className='flex gap-4 w-full lg_w-3/5'>
29
49
  {withCheckbox ? (
30
- <Checkbox onChange={(e) => handleChange(e)} />
50
+ <Checkbox onChange={handleCheck} checked={!!itemState.checked} />
31
51
  ) : null}
32
52
 
33
53
  <div className='flex w-full gap-4'>
34
54
  <div className='block'>
35
55
  <Image
36
- alt='product image'
56
+ alt={item && item.product_name ? item.product_name : 'product image'}
37
57
  className="relative max-w-[120px]"
38
58
  src={urlImage}
39
59
  classes={{
@@ -45,38 +65,43 @@ const productItem = (props) => {
45
65
  <div className='block'>
46
66
  <p className='text-[13px] text-colorDefault flex justify-between'>
47
67
  <span className='font-medium block'>
48
- BANPRESTO DEMON SLAYER: KIMETSU NO YAIBA: GIYU TOMIOKA - FIGURE
68
+ {item && item.product_name ? item.product_name : '-'}
49
69
  </span>
50
70
  </p>
51
71
  </div>
52
72
  <div className='block'>
53
73
  <p className='text-[13px] text-gray-200 flex justify-between'>
54
74
  <span className='font-normal block'>
55
- Qty : 3
75
+ Qty : {item && item.quantity_ordered ? item.quantity_ordered : '-'}
56
76
  </span>
57
77
  </p>
58
78
  </div>
59
79
  <div className='block'>
60
80
  <p className='text-[13px] text-gray-200 flex justify-between'>
61
81
  <span className='font-normal block'>
62
- SGD 16
82
+ {item && item.product_sale_price && item.product_sale_price.currency ? item.product_sale_price.currency : ''} {item && item.product_sale_price && item.product_sale_price.value ? item.product_sale_price.value : '-'}
63
83
  </span>
64
84
  </p>
65
85
  </div>
66
86
  </div>
67
-
68
87
  </div>
69
88
  </div>
70
89
  <div className='block w-full lg_w-2/5'>
71
- {show ? (
90
+ {!!itemState.checked ? (
72
91
  <>
73
- <div className='flex flex-col mb-2.5'>
92
+ <div className='flex flex-col mb-2.5' onChange={e => handleFieldChange('qty_requested', parseFloat(e.target.value))}>
74
93
  <p className='mb-1'>
75
94
  Qty Return
76
95
  </p>
77
- <TextField />
96
+ <TextField
97
+ value={itemState.qty_requested || ''}
98
+ onChange={e => handleFieldChange('qty_requested', parseFloat(e.target.value))}
99
+ type="number"
100
+ min={1}
101
+ max={item.quantity_ordered}
102
+ />
78
103
  </div>
79
- <div className='flex flex-col mb-2.5'>
104
+ <div className='flex flex-col mb-2.5' onChange={e => handleFieldChange('reason_id', parseInt(e.target.value, 10))}>
80
105
  <p className='mb-1'>
81
106
  Return Reason
82
107
  </p>
@@ -85,21 +110,21 @@ const productItem = (props) => {
85
110
  className='w-full'
86
111
  />
87
112
  </div>
88
- <div className='flex flex-col mb-2.5'>
113
+ <div className='flex flex-col mb-2.5' onChange={e => handleFieldChange('condition_id', parseInt(e.target.value, 10))}>
89
114
  <p className='mb-1'>
90
115
  Item Condition
91
116
  </p>
92
117
  <Select
93
- options={reasonOptions}
118
+ options={conditionOptions}
94
119
  className='w-full'
95
120
  />
96
121
  </div>
97
- <div className='flex flex-col mb-2.5'>
122
+ <div className='flex flex-col mb-2.5' onChange={e => handleFieldChange('resolution_id', parseInt(e.target.value, 10))}>
98
123
  <p className='mb-1'>
99
124
  Resolution
100
125
  </p>
101
126
  <Select
102
- options={reasonOptions}
127
+ options={resolutionOptions}
103
128
  className='w-full'
104
129
  />
105
130
  </div>
@@ -108,7 +133,7 @@ const productItem = (props) => {
108
133
  </div>
109
134
  </div>
110
135
  </>
111
- )
112
- }
136
+ );
137
+ };
113
138
 
114
139
  export default productItem
@@ -1,318 +1,173 @@
1
+
1
2
  import React from 'react';
2
3
  import { arrayOf, number, shape, string } from 'prop-types';
3
- import { ChevronDown, ChevronUp } from 'react-feather';
4
4
  import { FormattedMessage, useIntl } from 'react-intl';
5
5
  import Price from '@magento/venia-ui/lib/components/Price';
6
- import { useOrderRow } from '@magento/peregrine/lib/talons/OrderHistoryPage/useOrderRow';
7
-
8
6
  import { useStyle } from '@magento/venia-ui/lib/classify';
9
- import Icon from '@magento/venia-ui/lib/components/Icon';
10
- import CollapsedImageGallery from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/collapsedImageGallery';
11
- import OrderDetails from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails';
12
- import defaultClasses from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.module.css';
13
7
  import cn from 'classnames';
14
- import { Verify } from 'iconsax-react';
8
+ import { Shop } from 'iconsax-react';
15
9
  import PlaceholderImage from '@magento/venia-ui/lib/components/Image/placeholderImage';
16
10
  import { Link } from 'react-router-dom';
11
+ import defaultClasses from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.module.css';
17
12
 
18
- const OrderRow = props => {
19
- const { order } = props;
13
+ const RmaRow = props => {
14
+ const { rma } = props;
20
15
  const { formatMessage } = useIntl();
21
16
  const {
22
- invoices,
17
+ created_at,
18
+ increment_id,
19
+ order_increment_id,
23
20
  items,
24
- number: orderNumber,
25
- order_date: orderDate,
26
- shipments,
21
+ order,
22
+ rma_date,
23
+ rma_id,
24
+ seller,
27
25
  status,
28
- total
29
- } = order;
30
- const { grand_total: grandTotal } = total;
31
- const { currency, value: orderTotal } = grandTotal;
26
+ status_label,
27
+ rmaDetailLoading,
28
+ rmaDetailError,
29
+ rmaDetailData
30
+ } = rma;
32
31
 
33
- // Convert date to ISO-8601 format so Safari can also parse it
34
- const isoFormattedDate = orderDate.replace(' ', 'T');
35
- const formattedDate = new Date(isoFormattedDate).toLocaleDateString(
32
+ const classes = useStyle(defaultClasses, props.classes);
33
+ // Format date
34
+ const isoFormattedDate = created_at ? created_at.replace(' ', 'T') : '';
35
+ const formattedDate = isoFormattedDate ? new Date(isoFormattedDate).toLocaleDateString(
36
36
  undefined,
37
37
  {
38
38
  year: 'numeric',
39
39
  month: 'short',
40
40
  day: 'numeric'
41
41
  }
42
- );
43
-
44
- const hasInvoice = !!invoices.length;
45
- const hasShipment = !!shipments.length;
46
- let derivedStatus;
47
- if (status === 'Complete') {
48
- derivedStatus = formatMessage({
49
- id: 'Quotes.deliveredText',
50
- defaultMessage: 'Delivered'
51
- });
52
- } else if (hasShipment) {
53
- derivedStatus = formatMessage({
54
- id: 'Quotes.shippedText',
55
- defaultMessage: 'Shipped'
56
- });
57
- } else if (hasInvoice) {
58
- derivedStatus = formatMessage({
59
- id: 'Quotes.readyToShipText',
60
- defaultMessage: 'Ready to ship'
61
- });
62
- } else {
63
- derivedStatus = formatMessage({
64
- id: 'Quotes.new',
65
- defaultMessage: 'New'
66
- });
42
+ ) : '';
43
+
44
+ // Seller name: prefer from first item's seller_name, fallback to seller?.name
45
+ let sellerName = '-';
46
+ if (items && items.length > 0 && items[0].seller_name) {
47
+ sellerName = items[0].seller_name;
48
+ } else if (seller?.name) {
49
+ sellerName = seller.name;
67
50
  }
68
51
 
69
- const talonProps = useOrderRow({ items });
70
- const { loading, isOpen, imagesData } = talonProps;
71
-
72
- const classes = useStyle(defaultClasses, props.classes);
73
-
74
- const contentClass = isOpen ? classes.content : classes.content_collapsed;
75
-
76
- const contentToggleIconSrc = isOpen ? ChevronUp : ChevronDown;
77
-
78
- const contentToggleIcon = <Icon src={contentToggleIconSrc} size={24} />;
79
-
80
- const collapsedImageGalleryElement = isOpen ? null : (
81
- <CollapsedImageGallery items={imagesData} />
82
- );
83
-
84
- const orderDetails = loading ? null : (
85
- <OrderDetails orderData={order} imagesData={imagesData} />
86
- );
87
-
88
- const orderTotalPrice =
89
- currency && orderTotal !== null ? (
90
- <Price currencyCode={currency} value={orderTotal} />
91
- ) : (
92
- '-'
93
- );
94
52
 
95
53
  const badgeStatusStyle = () => {
96
- return 'bg-[#F1EFF6] text-blue-700 text-[14px] font-semibold rounded-full px-[30px] py-[5px] border-none';
54
+ return 'text-blue-700 text-[14px] font-medium py-[5px] border-none';
97
55
  }
98
56
 
99
- const thumbnailProps = {
100
- alt: items[0].product_name,
101
- classes: { root: classes.thumbnail },
102
- width: 50
103
- };
104
-
105
57
  return (
106
58
  <li className={classes.root}>
107
- <div className='flex flex-col md_flex-row justify-between mb-2.5'>
108
- <div className='flex flex-col'>
109
- <div className="flex gap-x-[15px] flex-row">
110
- <span className="text-[14px] text-colorDefault">{formattedDate}</span>
111
- <span className="text-gray-200 text-[14px]">{orderNumber}</span>
59
+ <div className='flex flex-col md_flex-row md_items-start justify-between mb-2.5'>
60
+ <div className='flex flex-col ml-[14px] mt-[5px]'>
61
+ <div className="flex gap-x-[15px] flex-col">
62
+ <div className='flex gap-x-[5px] items-center'>
63
+ <Shop size={17} className='text-blue-700' variant="Bold" />
64
+ <span className='text-[14px] font-medium text-blue-700'>
65
+ {sellerName}
66
+ </span>
67
+ <span>|</span>
68
+ <span className="text-blue-700 text-[14px]">#{order_increment_id}</span>
69
+ </div>
112
70
  </div>
113
71
  </div>
114
72
  <div className='flex flex-col'>
115
73
  <div className='flex w-full justify-start mt-2.5 md_mt-0 md_justify-end'>
116
74
  <span className={cn(classes.orderStatusBadge, badgeStatusStyle())}>
117
- {derivedStatus}
75
+ {status_label || status}
118
76
  </span>
119
77
  </div>
120
78
  </div>
121
79
  </div>
122
80
  <div className='flex flex-col md_flex-row justify-between mb-2.5'>
123
- <div className='flex flex-col'>
124
- <div className='flex gap-x-[5px] mb-2.5'>
125
- <Verify size={17} className='text-blue-700' variant="Bold" />
126
- <span className='text-xs font-medium text-[rgba(25, 34, 42, 0.7)]'>
127
- Gundam Info
128
- </span>
129
- </div>
81
+ <div className='flex flex-col ml-[14px]'>
130
82
  <div className='flex flex-row'>
131
- <div>
132
- <PlaceholderImage {...thumbnailProps} />
83
+ <div className={cn('mr-4 flex flex-col gap-8')}>
84
+ {items && items.length > 0 && items.map((it, idx) => {
85
+ const thumbnailProps = {
86
+ alt: it.name,
87
+ classes: { root: classes.thumbnail },
88
+ width: 50
89
+ };
90
+ return (
91
+ <div key={it.id || idx} className={classes.productImage}>
92
+ {it.image_url ? (
93
+ <img src={it.image_url} alt={it.name} width={70} className={classes.thumbnail} />
94
+ ) : (
95
+ <PlaceholderImage {...thumbnailProps} />
96
+ )}
97
+ </div>
98
+ );
99
+ })}
133
100
  </div>
134
- <div className='flex flex-col max-w-[260px] gap-2.5'>
135
- <div className={cn(classes.productName, 'text-[14] font-medium')}>
136
- <span>
137
- {items[0]?.product_name}
138
- </span>
139
- </div>
140
- <div className="text-[14] text-gray-200">
141
- <span>
142
- {`${items[0]?.quantity_ordered}X`}
143
- </span>
144
- {' '}
145
- <span>
146
- <Price currencyCode={items[0]?.product_sale_price?.currency} value={items[0]?.product_sale_price?.value} />
147
- </span>
148
- </div>
101
+ <div className='flex flex-col max-w-[375px] gap-8'>
102
+ {items && items.length > 0 && items.map((it, idx) => (
103
+ <div key={it.id || idx} className='flex flex-col gap-1 pb-2 last_pb-0'>
104
+ <div className={cn(classes.productName, 'text-[14] font-medium')}>
105
+ <span>{it.name}</span>
106
+ </div>
107
+ <div className="text-[14] text-gray-300">
108
+ <span>Qty : {`${it.qty_requested || 0}`}</span>
109
+ <br />
110
+ <span>
111
+ Price : {it.price ? <Price currencyCode={it.price.currency} value={it.price.value} /> : '-'}
112
+ </span>
113
+ </div>
114
+ </div>
115
+ ))}
149
116
  </div>
150
117
  </div>
151
118
  </div>
152
- <div className='flex flex-col'>
153
- <div className="md_px-10 py-3 md_border-l border-gray-100">
154
- <span className="text-[14] text-gray-200 text-left md_text-center block mb-2">
119
+ {/* Right column: bottom-aligned RMA Date + CTA */}
120
+ <div className='flex flex-col items-end gap-2 md_pl-10 md_self-end mr-4 mb-1'>
121
+ <Link
122
+ to={{
123
+ pathname: `/return/view/${rma_id}`,
124
+ state: { rma }
125
+ }}
126
+ >
127
+ <span className="bg-blue-700 hover:bg-white hover:text-blue-700 hover:border hover:border-blue-700 rounded-full px-[30px] py-[5px] text-[13px] font-medium text-white transition-all duration-300 ease-in-out">
155
128
  <FormattedMessage
156
- id={'orderRow.orderTotalText'}
157
- defaultMessage={'Order Total'}
129
+ id={'rmaRow.ViewTransactionDetail'}
130
+ defaultMessage={'View RMA Detail'}
158
131
  />
159
132
  </span>
160
- <div className="text-lg font-semibold text-left md_text-center block">{orderTotalPrice}</div>
161
- </div>
133
+ </Link>
162
134
  </div>
163
135
  </div>
164
- <div className='flex flex-row justify-end py-[5px]'>
165
- <Link to="/return/view/DEV123123123">
166
- <span className="text-[13px] font-medium text-blue-700 underline">
167
- <FormattedMessage
168
- id={'orderRow.ViewTransactionDetail'}
169
- defaultMessage={'View Transaction Detail'}
170
- />
171
- </span>
172
- </Link>
173
- </div>
174
-
175
- {/* <div className={classes.orderDateContainer}>
176
- <span className={classes.orderDateLabel}>
177
- <FormattedMessage
178
- id={'orderRow.orderDateText'}
179
- defaultMessage={'Order Date'}
180
- />
181
- </span>
182
- <span className={classes.orderDate}>{formattedDate}</span>
183
- </div> */}
184
- {/* <div className={classes.orderItemsContainer}>
185
- {collapsedImageGalleryElement}
186
- </div> */}
187
- {/* <div className={classes.orderStatusContainer}>
188
- <span className={classes.orderStatusBadge}>
189
- {derivedStatus}
190
- </span>
191
- <OrderProgressBar status={derivedStatus} />
192
- </div> */}
193
- <div className={cn(contentClass, '!py-4 mt-4')}>{orderDetails}</div>
194
136
  </li>
195
137
  );
196
138
  };
197
139
 
198
- export default OrderRow;
199
-
200
- OrderRow.propTypes = {
201
- classes: shape({
202
- root: string,
203
- cell: string,
204
- stackedCell: string,
205
- label: string,
206
- value: string,
207
- orderNumberContainer: string,
208
- orderDateContainer: string,
209
- orderTotalContainer: string,
210
- orderStatusContainer: string,
211
- orderItemsContainer: string,
212
- contentToggleContainer: string,
213
- orderNumberLabel: string,
214
- orderDateLabel: string,
215
- orderTotalLabel: string,
216
- orderNumber: string,
217
- orderDate: string,
218
- orderTotal: string,
219
- orderStatusBadge: string,
220
- content: string,
221
- content_collapsed: string
222
- }),
223
- order: shape({
224
- billing_address: shape({
225
- city: string,
226
- country_code: string,
227
- firstname: string,
228
- lastname: string,
229
- postcode: string,
230
- region_id: string,
231
- street: arrayOf(string)
232
- }),
140
+ RmaRow.propTypes = {
141
+ rma: shape({
142
+ created_at: string,
143
+ increment_id: string,
233
144
  items: arrayOf(
234
145
  shape({
235
146
  id: string,
236
- product_name: string,
237
- product_sale_price: shape({
147
+ name: string,
148
+ price: shape({
238
149
  currency: string,
239
150
  value: number
240
151
  }),
241
- product_sku: string,
242
- selected_options: arrayOf(
243
- shape({
244
- label: string,
245
- value: string
246
- })
247
- ),
248
- quantity_ordered: number
249
- })
250
- ),
251
- invoices: arrayOf(
252
- shape({
253
- id: string
152
+ qty_requested: number
254
153
  })
255
154
  ),
256
- number: string,
257
- order_date: string,
258
- payment_methods: arrayOf(
259
- shape({
260
- type: string,
261
- additional_data: arrayOf(
262
- shape({
263
- name: string,
264
- value: string
265
- })
266
- )
267
- })
268
- ),
269
- shipping_address: shape({
270
- city: string,
271
- country_code: string,
272
- firstname: string,
273
- lastname: string,
274
- postcode: string,
275
- region_id: string,
276
- street: arrayOf(string),
277
- telephone: string
155
+ order: shape({
156
+ id: string,
157
+ increment_id: string,
158
+ status: string,
159
+ status_label: string
160
+ }),
161
+ rma_date: string,
162
+ rma_id: string,
163
+ seller: shape({
164
+ id: string,
165
+ name: string,
166
+ url: string
278
167
  }),
279
- shipping_method: string,
280
- shipments: arrayOf(
281
- shape({
282
- id: string,
283
- tracking: arrayOf(
284
- shape({
285
- number: string
286
- })
287
- )
288
- })
289
- ),
290
168
  status: string,
291
- total: shape({
292
- discounts: arrayOf(
293
- shape({
294
- amount: shape({
295
- currency: string,
296
- value: number
297
- })
298
- })
299
- ),
300
- grand_total: shape({
301
- currency: string,
302
- value: number
303
- }),
304
- subtotal: shape({
305
- currency: string,
306
- value: number
307
- }),
308
- total_tax: shape({
309
- currency: string,
310
- value: number
311
- }),
312
- total_shipping: shape({
313
- currency: string,
314
- value: number
315
- })
316
- })
169
+ status_label: string
317
170
  })
318
171
  };
172
+
173
+ export default RmaRow;