rerobe-js-orm 2.4.2 → 2.4.8
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/lib/factories/FormState/Address/AddressFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/Address/AddressFormStateFactory.js +1 -1
- package/lib/factories/FormState/Merchant/MerchantFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/Merchant/MerchantFormStateFactory.js +1 -1
- package/lib/factories/FormState/Order/OrderFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/Order/OrderFormStateFactory.js +1 -1
- package/lib/factories/FormState/Order/RefundFormStateFactory.d.ts +5 -0
- package/lib/factories/FormState/Order/RefundFormStateFactory.js +10 -0
- package/lib/factories/FormState/PickUp/PickUpFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/PickUp/PickUpFormStateFactory.js +1 -1
- package/lib/factories/FormState/Product/ProductFormStateFactory.d.ts +2 -2
- package/lib/factories/FormState/Product/ProductFormStateFactory.js +3 -3
- package/lib/factories/FormState/ProductCollection/ProductCollectionFormStateFactory.d.ts +5 -0
- package/lib/factories/FormState/ProductCollection/ProductCollectionFormStateFactory.js +10 -0
- package/lib/factories/FormState/SellRequest/SellRequestFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/SellRequest/SellRequestFormStateFactory.js +1 -1
- package/lib/factories/FormState/User/UserFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/User/UserFormStateFactory.js +1 -1
- package/lib/factories/Merchant/MerchantFactory.d.ts +1 -1
- package/lib/factories/Merchant/MerchantFromFormState.d.ts +1 -1
- package/lib/factories/Merchant/MerchantFromFormState.js +13 -1
- package/lib/factories/Order/OrderFactory.d.ts +1 -1
- package/lib/factories/Order/OrderFromApp.js +4 -2
- package/lib/factories/Order/OrderFromFormState.d.ts +1 -1
- package/lib/factories/Order/OrderFromFormState.js +17 -15
- package/lib/factories/Order/OrderFromShopifyWebhook.js +126 -10
- package/lib/factories/Order/RefundFactory.d.ts +5 -0
- package/lib/factories/Order/RefundFactory.js +6 -0
- package/lib/factories/Order/RefundFromFormState.d.ts +5 -0
- package/lib/factories/Order/RefundFromFormState.js +29 -0
- package/lib/factories/PayoutAccount/PayoutAccountFromFormState.d.ts +1 -1
- package/lib/factories/Product/ProductFactory.d.ts +1 -1
- package/lib/factories/Product/ProductFromFormState.d.ts +1 -1
- package/lib/factories/Product/ProductFromFormState.js +29 -3
- package/lib/factories/ProductCollection/ProductCollectionFactory.d.ts +5 -0
- package/lib/factories/ProductCollection/ProductCollectionFactory.js +6 -0
- package/lib/factories/ProductCollection/ProductCollectionFromFormState.d.ts +5 -0
- package/lib/factories/ProductCollection/ProductCollectionFromFormState.js +29 -0
- package/lib/factories/User/UserFactory.d.ts +1 -1
- package/lib/factories/User/UserFromFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/Address/AddressFormState.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/Address/AddressFormState.js +1 -3
- package/lib/{models/FormStates → form-states}/FormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/FormState.js +1 -1
- package/lib/{models/FormStates → form-states}/Merchant/MerchantFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/Merchant/MerchantFormState.js +19 -4
- package/lib/form-states/Merchant/WebhookFormState.d.ts +8 -0
- package/lib/form-states/Merchant/WebhookFormState.js +49 -0
- package/lib/{models/FormStates → form-states}/Merchant/options.d.ts +8 -0
- package/lib/{models/FormStates → form-states}/Merchant/options.js +15 -2
- package/lib/{models/FormStates → form-states}/Order/OrderFormState.d.ts +2 -2
- package/lib/{models/FormStates → form-states}/Order/OrderFormState.js +12 -13
- package/lib/form-states/Order/RefundFormState.d.ts +17 -0
- package/lib/form-states/Order/RefundFormState.js +122 -0
- package/lib/{models/FormStates → form-states}/Order/options.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/Order/options.js +1 -1
- package/lib/{models/FormStates → form-states}/PayoutAccount/PayoutAccountFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/PayoutAccount/PayoutAccountFormState.js +2 -2
- package/lib/{models/FormStates → form-states}/PayoutAccount/options.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/PayoutAccount/options.js +0 -0
- package/lib/{models/FormStates → form-states}/PickUp/PickUpFormState.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/PickUp/PickUpFormState.js +0 -0
- package/lib/{models/FormStates → form-states}/Product/ProductFormState.d.ts +8 -2
- package/lib/{models/FormStates → form-states}/Product/ProductFormState.js +24 -4
- package/lib/{models/FormStates → form-states}/Product/options.d.ts +0 -0
- package/lib/form-states/Product/options.js +3455 -0
- package/lib/form-states/ProductCollection/ProductCollectionFormState.d.ts +12 -0
- package/lib/form-states/ProductCollection/ProductCollectionFormState.js +80 -0
- package/lib/{models/FormStates → form-states}/SellRequest/SellRequestFormState.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/SellRequest/SellRequestFormState.js +1 -1
- package/lib/{models/FormStates → form-states}/User/UserFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/User/UserFormState.js +2 -2
- package/lib/helpers/AnalyticsHelpers.js +3 -3
- package/lib/helpers/OrderHelpers.d.ts +5 -0
- package/lib/helpers/OrderHelpers.js +107 -0
- package/lib/helpers/ProductCollectionHelpers.d.ts +4 -0
- package/lib/helpers/ProductCollectionHelpers.js +27 -0
- package/lib/helpers/ReRobeProductHelpers.d.ts +6 -0
- package/lib/helpers/ReRobeProductHelpers.js +221 -41
- package/lib/helpers/Utilities.d.ts +1 -0
- package/lib/helpers/Utilities.js +10 -0
- package/lib/index.d.ts +7 -3
- package/lib/index.js +11 -3
- package/lib/models/Merchant.d.ts +16 -0
- package/lib/models/Merchant.js +40 -0
- package/lib/models/Order.d.ts +4 -0
- package/lib/models/Order.js +7 -1
- package/lib/models/Product.d.ts +1 -0
- package/lib/models/Product.js +37 -3
- package/lib/models/ProductCollection.d.ts +15 -0
- package/lib/models/ProductCollection.js +34 -0
- package/lib/models/Refund.d.ts +13 -0
- package/lib/models/Refund.js +40 -0
- package/lib/models/User.js +7 -2
- package/lib/types/merchant-types.d.ts +46 -13
- package/lib/types/product-collection-types.d.ts +63 -0
- package/lib/types/product-collection-types.js +13 -0
- package/lib/types/rerobe-order-types.d.ts +88 -26
- package/lib/types/rerobe-product-types.d.ts +30 -0
- package/lib/types/rerobe-user-types.d.ts +27 -21
- package/lib/types/rerobe-user-types.js +0 -1
- package/package.json +3 -2
- package/lib/models/FormStates/Product/options.js +0 -3453
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
// @ts-ignore
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
|
-
const options_1 = require("../
|
|
5
|
+
const options_1 = require("../form-states/Product/options");
|
|
6
6
|
const ProductStateManager_1 = require("../models/ProductStateManager");
|
|
7
7
|
class ReRobeProductHelpers {
|
|
8
8
|
static calculateProductionFee(commission) {
|
|
@@ -23,7 +23,7 @@ class ReRobeProductHelpers {
|
|
|
23
23
|
static buildReRobeEarnings(arrayLike) {
|
|
24
24
|
const products = Array.isArray(arrayLike) ? arrayLike : [arrayLike];
|
|
25
25
|
return products.reduce((acc, cur) => {
|
|
26
|
-
const commission = cur.reRobeCommission ? Number(cur.reRobeCommission) : 0.
|
|
26
|
+
const commission = cur.reRobeCommission ? Number(cur.reRobeCommission) : 0.5;
|
|
27
27
|
const priceToUse = cur.isOnSale === 'yes' && cur.salePrice ? cur.salePrice : cur.price;
|
|
28
28
|
const listingPrice = Number(Number(priceToUse) <= 1 ? cur.suggestedResalePrice : priceToUse);
|
|
29
29
|
const inventoryValue = acc[0] + listingPrice;
|
|
@@ -45,13 +45,16 @@ class ReRobeProductHelpers {
|
|
|
45
45
|
return '';
|
|
46
46
|
}
|
|
47
47
|
static measurementsJoinedString(measurementsObj = {}) {
|
|
48
|
-
if (measurementsObj && Object.
|
|
48
|
+
if (measurementsObj && Object.values(measurementsObj).filter((e) => e).length > 0) {
|
|
49
49
|
const measurementStr = Object.keys(measurementsObj).reduce((acc, cur) => {
|
|
50
50
|
let result = acc;
|
|
51
51
|
if (cur !== 'unit') {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
if (measurementsObj[cur]) {
|
|
53
|
+
if (acc === '') {
|
|
54
|
+
return (result = `${measurementsObj[cur]} ${measurementsObj.unit} ${cur}`);
|
|
55
|
+
}
|
|
56
|
+
return (result = `${measurementsObj[cur]} ${measurementsObj.unit} ${cur} x ${acc}`);
|
|
57
|
+
}
|
|
55
58
|
}
|
|
56
59
|
return result;
|
|
57
60
|
}, '');
|
|
@@ -66,6 +69,7 @@ class ReRobeProductHelpers {
|
|
|
66
69
|
}
|
|
67
70
|
return '';
|
|
68
71
|
}
|
|
72
|
+
// ToDo: refactor
|
|
69
73
|
static getSizeLabel(clothingSize, shoeSize, jeanSize) {
|
|
70
74
|
let sizeLabel = 'NA';
|
|
71
75
|
if (clothingSize && clothingSize.length > 0 && clothingSize[0].trim()) {
|
|
@@ -95,6 +99,101 @@ class ReRobeProductHelpers {
|
|
|
95
99
|
];
|
|
96
100
|
return descriptionArr.filter((d) => d);
|
|
97
101
|
}
|
|
102
|
+
static autoCreateFullDescriptionHTML(productObj, customHeading) {
|
|
103
|
+
const productStyle = productObj.productStyle.join(', ');
|
|
104
|
+
const size = this.getSizeLabel(productObj.clothingSize, productObj.shoeSize, productObj.jeanSize);
|
|
105
|
+
const sizeComment = productObj.sizeComment;
|
|
106
|
+
const color = productObj.color;
|
|
107
|
+
const productRemarks = productObj.productRemarks;
|
|
108
|
+
const condition = productObj.condition;
|
|
109
|
+
const priceNew = productObj.purchasePrice;
|
|
110
|
+
const yearPurchased = productObj.yearPurchased;
|
|
111
|
+
const materials = this.materialCompJoinedString();
|
|
112
|
+
const measurements = this.measurementsJoinedString(productObj.measurements);
|
|
113
|
+
const fit = options_1.sizeCommentOptions.filter((option) => option.value === sizeComment)[0].label;
|
|
114
|
+
const descriptionObj = {
|
|
115
|
+
title: customHeading ? `<p>${customHeading}</p>\n` : 'REMOVE_ME',
|
|
116
|
+
line0: `<ul>`,
|
|
117
|
+
line1: size ? `\n<li>Size: ${size}</li>` : 'REMOVE_ME',
|
|
118
|
+
line2: fit ? `\n<li>Fit: ${fit}</li>` : 'REMOVE_ME',
|
|
119
|
+
line3: condition ? `\n<li>Condition: ${condition}</li>` : 'REMOVE_ME',
|
|
120
|
+
line4: color ? `\n<li>Color: ${color}</li>` : 'REMOVE_ME',
|
|
121
|
+
line5: productStyle && productStyle.length > 0 ? `\n<li>Style: ${productStyle}</li>` : 'REMOVE_ME',
|
|
122
|
+
line6: materials ? `\n<li>Material: ${materials}</li>` : 'REMOVE_ME',
|
|
123
|
+
line7: measurements ? `\n<li>Measurements: ${measurements}</li>` : 'REMOVE_ME',
|
|
124
|
+
line8: productRemarks ? `\n<li>Remarks: ${productRemarks}</li>` : 'REMOVE_ME',
|
|
125
|
+
line9: priceNew ? `\n<li>Purchase price: ${priceNew}</li>` : 'REMOVE_ME',
|
|
126
|
+
line10: yearPurchased ? `\n<li>Year purchased: ${yearPurchased}</li>` : 'REMOVE_ME',
|
|
127
|
+
line11: `\n</ul>`,
|
|
128
|
+
};
|
|
129
|
+
return Object.values(descriptionObj).reduce((acc, cur) => {
|
|
130
|
+
if (!cur.includes('REMOVE_ME')) {
|
|
131
|
+
acc = acc.concat(cur);
|
|
132
|
+
}
|
|
133
|
+
return acc;
|
|
134
|
+
}, '');
|
|
135
|
+
}
|
|
136
|
+
static autoCreateFullSwedishDescriptionForTraderaHTML(productDescription, merchantName = 'våra') {
|
|
137
|
+
return `
|
|
138
|
+
<p>
|
|
139
|
+
<strong>Beskrivning</strong>
|
|
140
|
+
${String(productDescription).trim()}
|
|
141
|
+
</p>
|
|
142
|
+
|
|
143
|
+
<p>
|
|
144
|
+
<strong>Angiven storlek</strong>
|
|
145
|
+
<br>
|
|
146
|
+
Storlekar beskrivs enligt befintliga lappar på plaggen samt från före detta ägare av plagget. Om en lapp eller angiven storlek saknas, uppskattas en ungefärlig storlek av oss. Vi försöker även alltid att mäta produkter som underdelar, väskor och accessoarer. Vid mer information kring specifika plagg och dess mått finns vi ett meddelande bort med snabbt svar på detta.
|
|
147
|
+
</p>
|
|
148
|
+
|
|
149
|
+
<p>
|
|
150
|
+
<strong>Skick</strong>
|
|
151
|
+
<br>
|
|
152
|
+
Alla våra produkter är begagnade och säljs i befintligt skick. Varje plagg genomgår en noga genomförd kvalitetskontroll där de kontrolleras och autentiseras av ${merchantName}’s produktions team och säljs endast i bästa möjliga skick. Läs mer om detta under vår FAQ-flik på vår hemsida samt i vår app.
|
|
153
|
+
</p>
|
|
154
|
+
|
|
155
|
+
<p>
|
|
156
|
+
<strong>Prissättning</strong>
|
|
157
|
+
<br>
|
|
158
|
+
Våra priser är baserade på de accepterade prisförslag som angetts vid inlämning av plagg. Vi ger prisförslag enligt vår egen historiska data, research från andra plattformar samt vår djupa kunskap om modebranschen, dess nuvarande trender och stilar.
|
|
159
|
+
</p>
|
|
160
|
+
|
|
161
|
+
<p>
|
|
162
|
+
<strong>Betalning</strong>
|
|
163
|
+
<br>
|
|
164
|
+
Vi använder oss av "Tradera betalning" vilket innebär att du som köpare kan välja att betala med Swish, kort eller PayPal. ${merchantName}’s rabatter och erbjudanden gäller endast vid köp på vår hemsida samt via vår app.
|
|
165
|
+
<br>
|
|
166
|
+
<br>
|
|
167
|
+
Tänk på att produkter kan ligga i flera varukorgar samtidigt. Om din vara står som ”slut/såld” vid utcheckningen beror det på att någon annan hunnit före.
|
|
168
|
+
</p>
|
|
169
|
+
|
|
170
|
+
<p>
|
|
171
|
+
<strong>Retur</strong>
|
|
172
|
+
<br>
|
|
173
|
+
Vi har 14 dagars öppet köp från då din order har packats och levererats till dig. Returer är endast giltiga om prislappen sitter kvar, samt att varan är i samma skick som när du köpte den. Om du vill returnera något till oss, se till att kontakta vårt kundtjänst team på help@rerobe.se för att begära en förbetald, spårbar fraktetikett. Observera att vi inte accepterar returer som skickas utan vår fraktsedel.
|
|
174
|
+
<br>
|
|
175
|
+
<br>
|
|
176
|
+
Returavgiften är 63 SEK. Detta kommer att dras från ditt ursprungliga köp när vi har tagit emot den returnerade varan.
|
|
177
|
+
</p>
|
|
178
|
+
|
|
179
|
+
<p>
|
|
180
|
+
<strong>Frakt</strong>
|
|
181
|
+
<br>
|
|
182
|
+
Vi skickar alla våra ordrar via Postnord till hela Sverige, samt internationellt. Vi packar och skickar din order inom 24h, och din order ska vara hos dig inom 1-3 arbetsdagar. Om din order ska skickas till annan adress än den som är angiven på Tradera kontakt gärna oss innan betalning.
|
|
183
|
+
</p>
|
|
184
|
+
|
|
185
|
+
<p>
|
|
186
|
+
<strong>Vi har varierande avgifter för frakt</strong>
|
|
187
|
+
<br>
|
|
188
|
+
<br>
|
|
189
|
+
* Fri frakt om du hämtar din beställning i vår butik på Södermalm
|
|
190
|
+
<br>
|
|
191
|
+
* 49 SEK för alla beställningar som skickas i Sverige
|
|
192
|
+
<br>
|
|
193
|
+
* 299 SEK för alla beställningar som skickas utanför Sverige
|
|
194
|
+
</p>
|
|
195
|
+
`;
|
|
196
|
+
}
|
|
98
197
|
static prepareProductForMutation(productObj, mediaInputArr = []) {
|
|
99
198
|
const productObjClone = Object.assign({}, productObj);
|
|
100
199
|
const { status, dateInQualityControl, dateInPendingPublication, dateListedOnline, publishedAt, price } = productObj;
|
|
@@ -124,14 +223,95 @@ class ReRobeProductHelpers {
|
|
|
124
223
|
}
|
|
125
224
|
return productObjClone;
|
|
126
225
|
}
|
|
226
|
+
static createTimestampsForStates(productObj) {
|
|
227
|
+
const docFieldsToUpdate = {};
|
|
228
|
+
if (productObj) {
|
|
229
|
+
const { dateSold, status, sellRequestReviewDraftTimestamp, sellRequestReviewTimestamp, rejectedTimestamp, holdTimestamp, acceptedTimestamp, sellerToDropOffTimestamp, sellerToShipTimestamp, sellerToGetPickUpTimestamp, qualityControlTimestamp, pendingPublicationTimestamp, listedTimestamp, clearanceTimestamp, reservedTimestamp, soldTimestamp, soldSellerToBePaidTimestamp, soldSellerPaidTimestamp, returnedTimestamp, sellerSelfRejectTimestamp, liquidationRequestedTimestamp, sellerLiquidatedTimestamp, } = productObj;
|
|
230
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellRequestReviewDraft && !sellRequestReviewDraftTimestamp) {
|
|
231
|
+
docFieldsToUpdate.sellRequestReviewDraftTimestamp = new Date().getTime();
|
|
232
|
+
}
|
|
233
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellRequestReview && !sellRequestReviewTimestamp) {
|
|
234
|
+
docFieldsToUpdate.sellRequestReviewTimestamp = new Date().getTime();
|
|
235
|
+
}
|
|
236
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.rejected && !rejectedTimestamp) {
|
|
237
|
+
docFieldsToUpdate.rejectedTimestamp = new Date().getTime();
|
|
238
|
+
}
|
|
239
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.hold && !holdTimestamp) {
|
|
240
|
+
docFieldsToUpdate.holdTimestamp = new Date().getTime();
|
|
241
|
+
}
|
|
242
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.accepted && !acceptedTimestamp) {
|
|
243
|
+
docFieldsToUpdate.acceptedTimestamp = new Date().getTime();
|
|
244
|
+
}
|
|
245
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellerToDropOff && !sellerToDropOffTimestamp) {
|
|
246
|
+
docFieldsToUpdate.sellerToDropOffTimestamp = new Date().getTime();
|
|
247
|
+
}
|
|
248
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellerToShip && !sellerToShipTimestamp) {
|
|
249
|
+
docFieldsToUpdate.sellerToShipTimestamp = new Date().getTime();
|
|
250
|
+
}
|
|
251
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellerToGetPickUp && !sellerToGetPickUpTimestamp) {
|
|
252
|
+
docFieldsToUpdate.sellerToGetPickUpTimestamp = new Date().getTime();
|
|
253
|
+
}
|
|
254
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.qualityControl && !qualityControlTimestamp) {
|
|
255
|
+
docFieldsToUpdate.qualityControlTimestamp = new Date().getTime();
|
|
256
|
+
}
|
|
257
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.pendingPublication && !pendingPublicationTimestamp) {
|
|
258
|
+
docFieldsToUpdate.pendingPublicationTimestamp = new Date().getTime();
|
|
259
|
+
}
|
|
260
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.listed && !listedTimestamp) {
|
|
261
|
+
docFieldsToUpdate.listedTimestamp = new Date().getTime();
|
|
262
|
+
}
|
|
263
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.clearance && !clearanceTimestamp) {
|
|
264
|
+
docFieldsToUpdate.clearanceTimestamp = new Date().getTime();
|
|
265
|
+
}
|
|
266
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.reserved && !reservedTimestamp) {
|
|
267
|
+
docFieldsToUpdate.reservedTimestamp = new Date().getTime();
|
|
268
|
+
}
|
|
269
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sold && !soldTimestamp) {
|
|
270
|
+
docFieldsToUpdate.soldTimestamp =
|
|
271
|
+
dateSold && typeof dateSold === 'string' ? new Date(dateSold).getTime() : new Date().getTime();
|
|
272
|
+
}
|
|
273
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.soldSellerToBePaid && !soldSellerToBePaidTimestamp) {
|
|
274
|
+
const timeNow = new Date().getTime();
|
|
275
|
+
docFieldsToUpdate.soldSellerToBePaidTimestamp = timeNow;
|
|
276
|
+
if (!soldTimestamp) {
|
|
277
|
+
docFieldsToUpdate.soldTimestamp =
|
|
278
|
+
dateSold && typeof dateSold === 'string' ? new Date(dateSold).getTime() : timeNow;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.soldSellerPaid && !soldSellerPaidTimestamp) {
|
|
282
|
+
const timeNow = new Date().getTime();
|
|
283
|
+
docFieldsToUpdate.soldSellerPaidTimestamp = timeNow;
|
|
284
|
+
if (!soldSellerToBePaidTimestamp) {
|
|
285
|
+
docFieldsToUpdate.soldSellerToBePaidTimestamp = timeNow;
|
|
286
|
+
}
|
|
287
|
+
if (!soldTimestamp) {
|
|
288
|
+
docFieldsToUpdate.soldTimestamp =
|
|
289
|
+
dateSold && typeof dateSold === 'string' ? new Date(dateSold).getTime() : timeNow;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.returned && !returnedTimestamp) {
|
|
293
|
+
docFieldsToUpdate.returnedTimestamp = new Date().getTime();
|
|
294
|
+
}
|
|
295
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellerSelfReject && !sellerSelfRejectTimestamp) {
|
|
296
|
+
docFieldsToUpdate.sellerSelfRejectTimestamp = new Date().getTime();
|
|
297
|
+
}
|
|
298
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.liquidationRequested && !liquidationRequestedTimestamp) {
|
|
299
|
+
docFieldsToUpdate.liquidationRequestedTimestamp = new Date().getTime();
|
|
300
|
+
}
|
|
301
|
+
if (status === ProductStateManager_1.default.PRODUCT_STATES.sellerLiquidated && !sellerLiquidatedTimestamp) {
|
|
302
|
+
docFieldsToUpdate.sellerLiquidatedTimestamp = new Date().getTime();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return docFieldsToUpdate;
|
|
306
|
+
}
|
|
127
307
|
static getSubtitle(title) {
|
|
128
|
-
if (typeof title ===
|
|
308
|
+
if (typeof title === 'string' && title.trim()) {
|
|
129
309
|
return title.split('by')[0].trim();
|
|
130
310
|
}
|
|
131
311
|
return '';
|
|
132
312
|
}
|
|
133
313
|
static sizeFinder(sizeLabel, sizeToMatch) {
|
|
134
|
-
if (typeof sizeLabel !==
|
|
314
|
+
if (typeof sizeLabel !== 'string' || typeof sizeToMatch !== 'string') {
|
|
135
315
|
return false;
|
|
136
316
|
}
|
|
137
317
|
const size = sizeLabel.trim();
|
|
@@ -142,66 +322,42 @@ class ReRobeProductHelpers {
|
|
|
142
322
|
}
|
|
143
323
|
break;
|
|
144
324
|
case 'XXS':
|
|
145
|
-
if (size === 'XXS'
|
|
146
|
-
|| size === 'XXS (32)'
|
|
147
|
-
|| size === 'XXS (42)'
|
|
148
|
-
|| size === 'XXS (32/42)') {
|
|
325
|
+
if (size === 'XXS' || size === 'XXS (32)' || size === 'XXS (42)' || size === 'XXS (32/42)') {
|
|
149
326
|
return true;
|
|
150
327
|
}
|
|
151
328
|
break;
|
|
152
329
|
case 'XS':
|
|
153
|
-
if (size === 'XS'
|
|
154
|
-
|| size === 'XS (34)'
|
|
155
|
-
|| size === 'XXS (44)'
|
|
156
|
-
|| size === 'XXS (34/44)') {
|
|
330
|
+
if (size === 'XS' || size === 'XS (34)' || size === 'XXS (44)' || size === 'XXS (34/44)') {
|
|
157
331
|
return true;
|
|
158
332
|
}
|
|
159
333
|
break;
|
|
160
334
|
case 'S':
|
|
161
|
-
if (size === 'S'
|
|
162
|
-
|| size === 'S (36)'
|
|
163
|
-
|| size === 'S (46)'
|
|
164
|
-
|| size === 'S (36/46)') {
|
|
335
|
+
if (size === 'S' || size === 'S (36)' || size === 'S (46)' || size === 'S (36/46)') {
|
|
165
336
|
return true;
|
|
166
337
|
}
|
|
167
338
|
break;
|
|
168
339
|
case 'M':
|
|
169
|
-
if (size === 'M'
|
|
170
|
-
|| size === 'M (38)'
|
|
171
|
-
|| size === 'M (48)'
|
|
172
|
-
|| size === 'M (38/48)') {
|
|
340
|
+
if (size === 'M' || size === 'M (38)' || size === 'M (48)' || size === 'M (38/48)') {
|
|
173
341
|
return true;
|
|
174
342
|
}
|
|
175
343
|
break;
|
|
176
344
|
case 'L':
|
|
177
|
-
if (size === 'L'
|
|
178
|
-
|| size === 'L (40)'
|
|
179
|
-
|| size === 'L (50)'
|
|
180
|
-
|| size === 'L (40/50)') {
|
|
345
|
+
if (size === 'L' || size === 'L (40)' || size === 'L (50)' || size === 'L (40/50)') {
|
|
181
346
|
return true;
|
|
182
347
|
}
|
|
183
348
|
break;
|
|
184
349
|
case 'XL':
|
|
185
|
-
if (size === 'XL'
|
|
186
|
-
|| size === 'XL (42)'
|
|
187
|
-
|| size === 'XL (52)'
|
|
188
|
-
|| size === 'XL (42/52)') {
|
|
350
|
+
if (size === 'XL' || size === 'XL (42)' || size === 'XL (52)' || size === 'XL (42/52)') {
|
|
189
351
|
return true;
|
|
190
352
|
}
|
|
191
353
|
break;
|
|
192
354
|
case 'XXL':
|
|
193
|
-
if (size === 'XXL'
|
|
194
|
-
|| size === 'XXL (44)'
|
|
195
|
-
|| size === 'XXL (54)'
|
|
196
|
-
|| size === 'XXL (44/54)') {
|
|
355
|
+
if (size === 'XXL' || size === 'XXL (44)' || size === 'XXL (54)' || size === 'XXL (44/54)') {
|
|
197
356
|
return true;
|
|
198
357
|
}
|
|
199
358
|
break;
|
|
200
359
|
case 'XXXL':
|
|
201
|
-
if (size === 'XXXL'
|
|
202
|
-
|| size === 'XXXL (46)'
|
|
203
|
-
|| size === 'XXXL (56)'
|
|
204
|
-
|| size === 'XXXL (46/56)') {
|
|
360
|
+
if (size === 'XXXL' || size === 'XXXL (46)' || size === 'XXXL (56)' || size === 'XXXL (46/56)') {
|
|
205
361
|
return true;
|
|
206
362
|
}
|
|
207
363
|
break;
|
|
@@ -210,6 +366,31 @@ class ReRobeProductHelpers {
|
|
|
210
366
|
}
|
|
211
367
|
return false;
|
|
212
368
|
}
|
|
369
|
+
static convertReRobeSizeToStandardSize(productObj) {
|
|
370
|
+
let size = 'Not Applicable';
|
|
371
|
+
if (productObj.productCategory === 'Clothing' && productObj.productType !== 'Jeans') {
|
|
372
|
+
if (productObj.clothingSize && productObj.clothingSize.length > 0) {
|
|
373
|
+
const arr = productObj.clothingSize[0].split('(');
|
|
374
|
+
if (arr.length === 2) {
|
|
375
|
+
const [universalSize] = arr;
|
|
376
|
+
size = universalSize.trim();
|
|
377
|
+
}
|
|
378
|
+
if (arr.length === 1) {
|
|
379
|
+
[size] = productObj.clothingSize;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
if (productObj.productType === 'Jeans') {
|
|
384
|
+
size = productObj.jeanSize;
|
|
385
|
+
}
|
|
386
|
+
if (productObj.productCategory === 'Shoes') {
|
|
387
|
+
size = productObj.shoeSize;
|
|
388
|
+
}
|
|
389
|
+
if (size === 'No Size') {
|
|
390
|
+
size = 'Not Applicable';
|
|
391
|
+
}
|
|
392
|
+
return size;
|
|
393
|
+
}
|
|
213
394
|
// RibbnProductHelper candidate
|
|
214
395
|
static buildLineItem(productObj, quantity = 1) {
|
|
215
396
|
const { documentId, title, price, coverPhotoUrl, imageUrls, brand } = productObj;
|
|
@@ -228,6 +409,5 @@ class ReRobeProductHelpers {
|
|
|
228
409
|
quantity,
|
|
229
410
|
};
|
|
230
411
|
}
|
|
231
|
-
;
|
|
232
412
|
}
|
|
233
413
|
exports.default = ReRobeProductHelpers;
|
package/lib/helpers/Utilities.js
CHANGED
|
@@ -50,5 +50,15 @@ class Utilities {
|
|
|
50
50
|
constantCase(str) {
|
|
51
51
|
return lodash_1.snakeCase(str).toUpperCase();
|
|
52
52
|
}
|
|
53
|
+
makeRandId(length) {
|
|
54
|
+
let result = '';
|
|
55
|
+
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
56
|
+
const charactersLength = characters.length;
|
|
57
|
+
// eslint-disable-next-line no-plusplus
|
|
58
|
+
for (let i = 0; i < length; i++) {
|
|
59
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
53
63
|
}
|
|
54
64
|
exports.default = Utilities;
|
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import ProductFromShopifyJSClientJSONDoc from './factories/Product/ProductFromSh
|
|
|
2
2
|
import ProductFromAlgoliaJSONDoc from './factories/Product/ProductFromAlgoliaJSONDoc';
|
|
3
3
|
import ProductFromShopifyWebhookJSONDoc from './factories/Product/ProductFromShopifyWebhookJSONDoc';
|
|
4
4
|
import ProductFormStateFactory from './factories/FormState/Product/ProductFormStateFactory';
|
|
5
|
+
import ProductCollectionFormStateFactory from './factories/FormState/ProductCollection/ProductCollectionFormStateFactory';
|
|
6
|
+
import ProductCollectionHelpers from './helpers/ProductCollectionHelpers';
|
|
5
7
|
import SellRequestFormStateFactory from './factories/FormState/SellRequest/SellRequestFormStateFactory';
|
|
6
8
|
import PickUpFormStateFactory from './factories/FormState/PickUp/PickUpFormStateFactory';
|
|
7
9
|
import UserFormStateFactory from './factories/FormState/User/UserFormStateFactory';
|
|
@@ -18,15 +20,17 @@ import OrderFromShopifyAdminApi from './factories/Order/OrderFromShopifyAdminApi
|
|
|
18
20
|
import OrderFromShopifyStorefrontApi from './factories/Order/OrderFromShopifyStorefrontApi';
|
|
19
21
|
import OrderFromApp from './factories/Order/OrderFromApp';
|
|
20
22
|
import OrderFormStateFactory from './factories/FormState/Order/OrderFormStateFactory';
|
|
23
|
+
import RefundFormStateFactory from './factories/FormState/Order/RefundFormStateFactory';
|
|
21
24
|
import Product from './models/Product';
|
|
22
25
|
import Order from './models/Order';
|
|
23
26
|
import Merchant from './models/Merchant';
|
|
24
27
|
import User from './models/User';
|
|
25
28
|
import ProductStateManager from './models/ProductStateManager';
|
|
26
29
|
import PayoutAccount from './models/PayoutAccount';
|
|
27
|
-
import PayoutAccountFormState from './
|
|
28
|
-
import MerchantFormState from './
|
|
30
|
+
import PayoutAccountFormState from './form-states/PayoutAccount/PayoutAccountFormState';
|
|
31
|
+
import MerchantFormState from './form-states/Merchant/MerchantFormState';
|
|
32
|
+
import WebhookFormState from './form-states/Merchant/WebhookFormState';
|
|
29
33
|
import ReRobeProductHelpers from './helpers/ReRobeProductHelpers';
|
|
30
34
|
import AnalyticsHelpers from './helpers/AnalyticsHelpers';
|
|
31
35
|
import OrderHelpers from './helpers/OrderHelpers';
|
|
32
|
-
export { ProductFromAlgoliaJSONDoc, ProductFromShopifyWebhookJSONDoc, ProductFromShopifyJSClientJSONDoc, ProductFormStateFactory, SellRequestFormStateFactory, PickUpFormStateFactory, AddressFormStateFactory, UserFormStateFactory, UserFromShopifyWebhookJSONDoc, UserFromAuthTemplateMethod, DraftOrderFromMirakl, DraftOrderFromApp, ChatRoomFromNewUserSignUp, KlarnaSessionFactory, Product, ProductStateManager, Order, OrderFromShopifyWebhook, OrderFromShopifyAdminApi, OrderFromShopifyStorefrontApi, OrderFromApp, OrderFormStateFactory, PayoutAccount, PayoutAccountFormState, Merchant, MerchantFormState, MerchantFormStateFactory, ReRobeProductHelpers, User, AnalyticsHelpers, OrderHelpers };
|
|
36
|
+
export { ProductFromAlgoliaJSONDoc, ProductFromShopifyWebhookJSONDoc, ProductFromShopifyJSClientJSONDoc, ProductFormStateFactory, ProductCollectionFormStateFactory, ProductCollectionHelpers, SellRequestFormStateFactory, PickUpFormStateFactory, AddressFormStateFactory, UserFormStateFactory, UserFromShopifyWebhookJSONDoc, UserFromAuthTemplateMethod, DraftOrderFromMirakl, DraftOrderFromApp, ChatRoomFromNewUserSignUp, KlarnaSessionFactory, Product, ProductStateManager, Order, OrderFromShopifyWebhook, OrderFromShopifyAdminApi, OrderFromShopifyStorefrontApi, OrderFromApp, OrderFormStateFactory, RefundFormStateFactory, PayoutAccount, PayoutAccountFormState, Merchant, MerchantFormState, MerchantFormStateFactory, ReRobeProductHelpers, User, AnalyticsHelpers, OrderHelpers, WebhookFormState, };
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OrderHelpers = exports.AnalyticsHelpers = exports.User = exports.ReRobeProductHelpers = exports.MerchantFormStateFactory = exports.MerchantFormState = exports.Merchant = exports.PayoutAccountFormState = exports.PayoutAccount = exports.OrderFormStateFactory = exports.OrderFromApp = exports.OrderFromShopifyStorefrontApi = exports.OrderFromShopifyAdminApi = exports.OrderFromShopifyWebhook = exports.Order = exports.ProductStateManager = exports.Product = exports.KlarnaSessionFactory = exports.ChatRoomFromNewUserSignUp = exports.DraftOrderFromApp = exports.DraftOrderFromMirakl = exports.UserFromAuthTemplateMethod = exports.UserFromShopifyWebhookJSONDoc = exports.UserFormStateFactory = exports.AddressFormStateFactory = exports.PickUpFormStateFactory = exports.SellRequestFormStateFactory = exports.ProductFormStateFactory = exports.ProductFromShopifyJSClientJSONDoc = exports.ProductFromShopifyWebhookJSONDoc = exports.ProductFromAlgoliaJSONDoc = void 0;
|
|
3
|
+
exports.WebhookFormState = exports.OrderHelpers = exports.AnalyticsHelpers = exports.User = exports.ReRobeProductHelpers = exports.MerchantFormStateFactory = exports.MerchantFormState = exports.Merchant = exports.PayoutAccountFormState = exports.PayoutAccount = exports.RefundFormStateFactory = exports.OrderFormStateFactory = exports.OrderFromApp = exports.OrderFromShopifyStorefrontApi = exports.OrderFromShopifyAdminApi = exports.OrderFromShopifyWebhook = exports.Order = exports.ProductStateManager = exports.Product = exports.KlarnaSessionFactory = exports.ChatRoomFromNewUserSignUp = exports.DraftOrderFromApp = exports.DraftOrderFromMirakl = exports.UserFromAuthTemplateMethod = exports.UserFromShopifyWebhookJSONDoc = exports.UserFormStateFactory = exports.AddressFormStateFactory = exports.PickUpFormStateFactory = exports.SellRequestFormStateFactory = exports.ProductCollectionHelpers = exports.ProductCollectionFormStateFactory = exports.ProductFormStateFactory = exports.ProductFromShopifyJSClientJSONDoc = exports.ProductFromShopifyWebhookJSONDoc = exports.ProductFromAlgoliaJSONDoc = void 0;
|
|
4
4
|
const ProductFromShopifyJSClientJSONDoc_1 = require("./factories/Product/ProductFromShopifyJSClientJSONDoc");
|
|
5
5
|
exports.ProductFromShopifyJSClientJSONDoc = ProductFromShopifyJSClientJSONDoc_1.default;
|
|
6
6
|
const ProductFromAlgoliaJSONDoc_1 = require("./factories/Product/ProductFromAlgoliaJSONDoc");
|
|
@@ -9,6 +9,10 @@ const ProductFromShopifyWebhookJSONDoc_1 = require("./factories/Product/ProductF
|
|
|
9
9
|
exports.ProductFromShopifyWebhookJSONDoc = ProductFromShopifyWebhookJSONDoc_1.default;
|
|
10
10
|
const ProductFormStateFactory_1 = require("./factories/FormState/Product/ProductFormStateFactory");
|
|
11
11
|
exports.ProductFormStateFactory = ProductFormStateFactory_1.default;
|
|
12
|
+
const ProductCollectionFormStateFactory_1 = require("./factories/FormState/ProductCollection/ProductCollectionFormStateFactory");
|
|
13
|
+
exports.ProductCollectionFormStateFactory = ProductCollectionFormStateFactory_1.default;
|
|
14
|
+
const ProductCollectionHelpers_1 = require("./helpers/ProductCollectionHelpers");
|
|
15
|
+
exports.ProductCollectionHelpers = ProductCollectionHelpers_1.default;
|
|
12
16
|
const SellRequestFormStateFactory_1 = require("./factories/FormState/SellRequest/SellRequestFormStateFactory");
|
|
13
17
|
exports.SellRequestFormStateFactory = SellRequestFormStateFactory_1.default;
|
|
14
18
|
const PickUpFormStateFactory_1 = require("./factories/FormState/PickUp/PickUpFormStateFactory");
|
|
@@ -41,6 +45,8 @@ const OrderFromApp_1 = require("./factories/Order/OrderFromApp");
|
|
|
41
45
|
exports.OrderFromApp = OrderFromApp_1.default;
|
|
42
46
|
const OrderFormStateFactory_1 = require("./factories/FormState/Order/OrderFormStateFactory");
|
|
43
47
|
exports.OrderFormStateFactory = OrderFormStateFactory_1.default;
|
|
48
|
+
const RefundFormStateFactory_1 = require("./factories/FormState/Order/RefundFormStateFactory");
|
|
49
|
+
exports.RefundFormStateFactory = RefundFormStateFactory_1.default;
|
|
44
50
|
const Product_1 = require("./models/Product");
|
|
45
51
|
exports.Product = Product_1.default;
|
|
46
52
|
const Order_1 = require("./models/Order");
|
|
@@ -53,10 +59,12 @@ const ProductStateManager_1 = require("./models/ProductStateManager");
|
|
|
53
59
|
exports.ProductStateManager = ProductStateManager_1.default;
|
|
54
60
|
const PayoutAccount_1 = require("./models/PayoutAccount");
|
|
55
61
|
exports.PayoutAccount = PayoutAccount_1.default;
|
|
56
|
-
const PayoutAccountFormState_1 = require("./
|
|
62
|
+
const PayoutAccountFormState_1 = require("./form-states/PayoutAccount/PayoutAccountFormState");
|
|
57
63
|
exports.PayoutAccountFormState = PayoutAccountFormState_1.default;
|
|
58
|
-
const MerchantFormState_1 = require("./
|
|
64
|
+
const MerchantFormState_1 = require("./form-states/Merchant/MerchantFormState");
|
|
59
65
|
exports.MerchantFormState = MerchantFormState_1.default;
|
|
66
|
+
const WebhookFormState_1 = require("./form-states/Merchant/WebhookFormState");
|
|
67
|
+
exports.WebhookFormState = WebhookFormState_1.default;
|
|
60
68
|
const ReRobeProductHelpers_1 = require("./helpers/ReRobeProductHelpers");
|
|
61
69
|
exports.ReRobeProductHelpers = ReRobeProductHelpers_1.default;
|
|
62
70
|
const AnalyticsHelpers_1 = require("./helpers/AnalyticsHelpers");
|
package/lib/models/Merchant.d.ts
CHANGED
|
@@ -31,6 +31,11 @@ export default class Merchant extends Base {
|
|
|
31
31
|
pound: string;
|
|
32
32
|
once: string;
|
|
33
33
|
};
|
|
34
|
+
static RIBBN_WEBHOOK_EVENT_DICT: {
|
|
35
|
+
productCreate: string;
|
|
36
|
+
productUpdate: string;
|
|
37
|
+
productDelete: string;
|
|
38
|
+
};
|
|
34
39
|
name: string;
|
|
35
40
|
id: string;
|
|
36
41
|
type: MerchantTypes | string;
|
|
@@ -45,6 +50,17 @@ export default class Merchant extends Base {
|
|
|
45
50
|
timeZone: string;
|
|
46
51
|
unitSystem: UnitSystemTypes | null;
|
|
47
52
|
defaultWeightUnit: MetricWeightTypes | ImperialWeightTypes | null;
|
|
53
|
+
defaultLocation: string;
|
|
54
|
+
documentId: string;
|
|
55
|
+
numCustomers: number;
|
|
56
|
+
numFiles: number;
|
|
57
|
+
numOrders: number;
|
|
58
|
+
numProducts: number;
|
|
59
|
+
orderTags: string[];
|
|
60
|
+
theme: MerchantTheme;
|
|
61
|
+
webshopTenantId: string;
|
|
62
|
+
webhooks: MerchantWebHook[];
|
|
63
|
+
sharedSecret: string;
|
|
48
64
|
constructor(props?: any);
|
|
49
65
|
toObj(): MerchantObj;
|
|
50
66
|
}
|
package/lib/models/Merchant.js
CHANGED
|
@@ -27,6 +27,29 @@ class Merchant extends Base_1.default {
|
|
|
27
27
|
this.timeZone = (props === null || props === void 0 ? void 0 : props.timeZone) || '';
|
|
28
28
|
this.unitSystem = (props === null || props === void 0 ? void 0 : props.unitSystem) || Merchant.UNIT_SYSTEM_TYPES.metric;
|
|
29
29
|
this.defaultWeightUnit = (props === null || props === void 0 ? void 0 : props.defaultWeightUnit) || Merchant.METRIC_WEIGHT_TYPES.gram;
|
|
30
|
+
this.defaultLocation = (props === null || props === void 0 ? void 0 : props.defaultLocation) || '';
|
|
31
|
+
this.documentId = (props === null || props === void 0 ? void 0 : props.documentId) || '';
|
|
32
|
+
this.numCustomers = (props === null || props === void 0 ? void 0 : props.numCustomers) || 0;
|
|
33
|
+
this.numFiles = (props === null || props === void 0 ? void 0 : props.numFiles) || 0;
|
|
34
|
+
this.numOrders = (props === null || props === void 0 ? void 0 : props.numOrders) || 0;
|
|
35
|
+
this.numProducts = (props === null || props === void 0 ? void 0 : props.numProducts) || 0;
|
|
36
|
+
this.orderTags = (props === null || props === void 0 ? void 0 : props.orderTags) || [];
|
|
37
|
+
this.theme = (props === null || props === void 0 ? void 0 : props.theme) || {
|
|
38
|
+
layoutType: 'StandardNavLayout',
|
|
39
|
+
bgColor: '#fff',
|
|
40
|
+
bgFooterColor: '#000',
|
|
41
|
+
primaryColor: '#009688',
|
|
42
|
+
footerTextColor: '#fff',
|
|
43
|
+
textColor: '#000',
|
|
44
|
+
successColor: '#009460',
|
|
45
|
+
warningColor: '#edaf4a',
|
|
46
|
+
errorColor: '#da344d',
|
|
47
|
+
logoImageSrc: '',
|
|
48
|
+
logoImageWidth: '60',
|
|
49
|
+
};
|
|
50
|
+
this.webshopTenantId = (props === null || props === void 0 ? void 0 : props.webshopTenantId) || '';
|
|
51
|
+
this.webhooks = (props === null || props === void 0 ? void 0 : props.webhooks) || [];
|
|
52
|
+
this.sharedSecret = (props === null || props === void 0 ? void 0 : props.sharedSecret) || '';
|
|
30
53
|
}
|
|
31
54
|
toObj() {
|
|
32
55
|
return {
|
|
@@ -44,6 +67,17 @@ class Merchant extends Base_1.default {
|
|
|
44
67
|
timeZone: this.timeZone,
|
|
45
68
|
unitSystem: this.unitSystem,
|
|
46
69
|
defaultWeightUnit: this.defaultWeightUnit,
|
|
70
|
+
defaultLocation: this.defaultLocation,
|
|
71
|
+
documentId: this.documentId,
|
|
72
|
+
numCustomers: this.numCustomers,
|
|
73
|
+
numFiles: this.numFiles,
|
|
74
|
+
numOrders: this.numOrders,
|
|
75
|
+
numProducts: this.numProducts,
|
|
76
|
+
orderTags: this.orderTags,
|
|
77
|
+
theme: this.theme,
|
|
78
|
+
webshopTenantId: this.webshopTenantId,
|
|
79
|
+
webhooks: this.webhooks,
|
|
80
|
+
sharedSecret: this.sharedSecret,
|
|
47
81
|
};
|
|
48
82
|
}
|
|
49
83
|
}
|
|
@@ -79,3 +113,9 @@ Merchant.IMPERIAL_WEIGHT_TYPES = {
|
|
|
79
113
|
pound: 'POUND',
|
|
80
114
|
once: 'ONCE',
|
|
81
115
|
};
|
|
116
|
+
Merchant.RIBBN_WEBHOOK_EVENT_DICT = {
|
|
117
|
+
productCreate: 'PRODUCT_CREATE',
|
|
118
|
+
productUpdate: 'PRODUCT_UPDATE',
|
|
119
|
+
productDelete: 'PRODUCT_DELETE',
|
|
120
|
+
// TODO: Add webhook events for other models (Orders, User, etc)
|
|
121
|
+
};
|
package/lib/models/Order.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export default class Order extends Base {
|
|
|
24
24
|
};
|
|
25
25
|
static FULFILLMENT_TYPES: {
|
|
26
26
|
fulfilled: string;
|
|
27
|
+
partiallyFulfilled: string;
|
|
27
28
|
unfulfilled: string;
|
|
28
29
|
inProgress: string;
|
|
29
30
|
canceled: string;
|
|
@@ -33,6 +34,7 @@ export default class Order extends Base {
|
|
|
33
34
|
paid: string;
|
|
34
35
|
pending: string;
|
|
35
36
|
refunded: string;
|
|
37
|
+
partiallyRefunded: string;
|
|
36
38
|
authorized: string;
|
|
37
39
|
};
|
|
38
40
|
id: string;
|
|
@@ -53,6 +55,7 @@ export default class Order extends Base {
|
|
|
53
55
|
shippingType: ReRobeShippingAndDeliveryTypes;
|
|
54
56
|
shopifyId: string | null;
|
|
55
57
|
shopifyOrderNumber: number | null;
|
|
58
|
+
ribbnOrderNumber: number | null;
|
|
56
59
|
subtotalPrice: Money;
|
|
57
60
|
tags: string[] | string | null;
|
|
58
61
|
totalDiscount: Money;
|
|
@@ -77,6 +80,7 @@ export default class Order extends Base {
|
|
|
77
80
|
notes: string;
|
|
78
81
|
customerName: string;
|
|
79
82
|
merchantId: string;
|
|
83
|
+
refunds: OrderRefund[];
|
|
80
84
|
constructor(props?: any);
|
|
81
85
|
toObj(): ReRobeOrderObj;
|
|
82
86
|
}
|
package/lib/models/Order.js
CHANGED
|
@@ -6,7 +6,7 @@ class Order extends Base_1.default {
|
|
|
6
6
|
super();
|
|
7
7
|
this.id = (props === null || props === void 0 ? void 0 : props.id) || '';
|
|
8
8
|
this.appliedDiscount = (props === null || props === void 0 ? void 0 : props.appliedDiscount) || {
|
|
9
|
-
amount: 0
|
|
9
|
+
amount: 0,
|
|
10
10
|
};
|
|
11
11
|
this.documentId = (props === null || props === void 0 ? void 0 : props.documentId) || '';
|
|
12
12
|
this.name = (props === null || props === void 0 ? void 0 : props.name) || '';
|
|
@@ -49,6 +49,7 @@ class Order extends Base_1.default {
|
|
|
49
49
|
this.shippingType = (props === null || props === void 0 ? void 0 : props.shippingType) || Order.SHIPPING_TYPES.localPickUp;
|
|
50
50
|
this.shopifyId = (props === null || props === void 0 ? void 0 : props.shopifyId) || null;
|
|
51
51
|
this.shopifyOrderNumber = (props === null || props === void 0 ? void 0 : props.shopifyOrderNumber) || null;
|
|
52
|
+
this.ribbnOrderNumber = (props === null || props === void 0 ? void 0 : props.ribbnOrderNumber) || null;
|
|
52
53
|
this.subtotalPrice = (props === null || props === void 0 ? void 0 : props.subtotalPrice) || {
|
|
53
54
|
amount: 0,
|
|
54
55
|
};
|
|
@@ -102,6 +103,7 @@ class Order extends Base_1.default {
|
|
|
102
103
|
this.notes = (props === null || props === void 0 ? void 0 : props.notes) || '';
|
|
103
104
|
this.customerName = (props === null || props === void 0 ? void 0 : props.customerName) || '';
|
|
104
105
|
this.merchantId = (props === null || props === void 0 ? void 0 : props.merchantId) || '';
|
|
106
|
+
this.refunds = (props === null || props === void 0 ? void 0 : props.refunds) || [];
|
|
105
107
|
}
|
|
106
108
|
toObj() {
|
|
107
109
|
const orderObj = {
|
|
@@ -123,6 +125,7 @@ class Order extends Base_1.default {
|
|
|
123
125
|
shippingType: this.shippingType,
|
|
124
126
|
shopifyId: this.shopifyId,
|
|
125
127
|
shopifyOrderNumber: this.shopifyOrderNumber,
|
|
128
|
+
ribbnOrderNumber: this.ribbnOrderNumber,
|
|
126
129
|
subtotalPrice: this.subtotalPrice,
|
|
127
130
|
tags: this.tags,
|
|
128
131
|
totalDiscount: this.totalDiscount,
|
|
@@ -144,6 +147,7 @@ class Order extends Base_1.default {
|
|
|
144
147
|
notes: this.notes,
|
|
145
148
|
customerName: this.customerName,
|
|
146
149
|
merchantId: this.merchantId,
|
|
150
|
+
refunds: this.refunds,
|
|
147
151
|
};
|
|
148
152
|
if (this.paymentType) {
|
|
149
153
|
orderObj.paymentType = this.paymentType;
|
|
@@ -182,6 +186,7 @@ Order.SALES_CHANNELS = {
|
|
|
182
186
|
};
|
|
183
187
|
Order.FULFILLMENT_TYPES = {
|
|
184
188
|
fulfilled: 'FULFILLED',
|
|
189
|
+
partiallyFulfilled: 'PARTIALLY_FULFILLED',
|
|
185
190
|
unfulfilled: 'UNFULFILLED',
|
|
186
191
|
inProgress: 'IN_PROGRESS',
|
|
187
192
|
canceled: 'CANCELED',
|
|
@@ -191,5 +196,6 @@ Order.FINANCIAL_TYPES = {
|
|
|
191
196
|
paid: 'PAID',
|
|
192
197
|
pending: 'PENDING',
|
|
193
198
|
refunded: 'REFUNDED',
|
|
199
|
+
partiallyRefunded: 'PARTIALLY_REFUNDED',
|
|
194
200
|
authorized: 'AUTHORIZED',
|
|
195
201
|
};
|
package/lib/models/Product.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export default class Product extends Base {
|
|
|
3
3
|
attributes: ProductAttributes;
|
|
4
4
|
filterAttributes: ProductFilterAttributes;
|
|
5
5
|
consignmentAttributes: ProductConsignmentAttributes;
|
|
6
|
+
timestampAttributes: ProductTimestampAttributes;
|
|
6
7
|
FIELD_NOT_TRANSLATABLE_KEY: string;
|
|
7
8
|
constructor(props?: any);
|
|
8
9
|
toPartialObj(): ShopifyProduct;
|