@things-factory/operato-mms 4.3.203 → 4.3.204
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/client/pages/setting/global-marketplace-settings.js +111 -0
- package/client/pages/setting/marketplace-setting.js +31 -65
- package/client/pages/setting/transaction-rates.js +454 -0
- package/client/route.js +4 -0
- package/package.json +5 -5
- package/things-factory.config.js +4 -0
- package/translations/en.json +23 -14
- package/translations/ko.json +10 -1
- package/translations/ms.json +10 -1
- package/translations/zh.json +10 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import '../../components/stock-allocation-ratio'
|
|
2
|
+
import '../../components/marketplace-order-max-weight'
|
|
3
|
+
|
|
4
|
+
import gql from 'graphql-tag'
|
|
5
|
+
import { css, html, LitElement } from 'lit-element'
|
|
6
|
+
|
|
7
|
+
import { i18next, localize } from '@things-factory/i18n-base'
|
|
8
|
+
import { client } from '@things-factory/shell'
|
|
9
|
+
|
|
10
|
+
class GlobalMarketplaceSettings extends localize(i18next)(LitElement) {
|
|
11
|
+
static get styles() {
|
|
12
|
+
return [
|
|
13
|
+
css`
|
|
14
|
+
:host {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
background-color: var(--main-section-background-color);
|
|
18
|
+
padding: var(--padding-wide);
|
|
19
|
+
overflow: auto;
|
|
20
|
+
}
|
|
21
|
+
h2 {
|
|
22
|
+
margin: var(--title-margin);
|
|
23
|
+
font: var(--title-font);
|
|
24
|
+
color: var(--title-text-color);
|
|
25
|
+
}
|
|
26
|
+
[subtitle] {
|
|
27
|
+
padding: var(--subtitle-padding);
|
|
28
|
+
font: var(--subtitle-font);
|
|
29
|
+
color: var(--subtitle-text-color);
|
|
30
|
+
}
|
|
31
|
+
input {
|
|
32
|
+
display: block;
|
|
33
|
+
}
|
|
34
|
+
`
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static get properties() {
|
|
39
|
+
return {
|
|
40
|
+
ratioSettings: Array
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
render() {
|
|
45
|
+
const ratioSettings = this.ratioSettings || []
|
|
46
|
+
|
|
47
|
+
return html`
|
|
48
|
+
<div subtitle>${i18next.t('text.update_stock_allocation_ratio')}</div>
|
|
49
|
+
|
|
50
|
+
<stock-allocation-ratio
|
|
51
|
+
.ratioSettings=${ratioSettings.filter(setting => setting.category === 'stock_allocation')}
|
|
52
|
+
.category=${'stock_allocation'}
|
|
53
|
+
@fetch-settings=${async () => {
|
|
54
|
+
this.ratioSettings = await this.fetchMarketplaceSettings()
|
|
55
|
+
}}
|
|
56
|
+
></stock-allocation-ratio>
|
|
57
|
+
|
|
58
|
+
<div subtitle>${i18next.t('text.update_marketplace_order_max_weight')}</div>
|
|
59
|
+
|
|
60
|
+
<marketplace-order-max-weight
|
|
61
|
+
.maxWeightSettings=${ratioSettings.filter(setting => setting.category === 'marketplace_order_max_weight')}
|
|
62
|
+
@fetch-settings=${async () => {
|
|
63
|
+
this.ratioSettings = await this.fetchMarketplaceSettings()
|
|
64
|
+
}}
|
|
65
|
+
></marketplace-order-max-weight>
|
|
66
|
+
`
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async firstUpdated() {
|
|
70
|
+
this.ratioSettings = await this.fetchMarketplaceSettings()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async fetchMarketplaceSettings() {
|
|
74
|
+
const filters = []
|
|
75
|
+
const sortings = []
|
|
76
|
+
|
|
77
|
+
const response = await client.query({
|
|
78
|
+
query: gql`
|
|
79
|
+
query marketplaceSettings($filters: [Filter], $sortings: [Sorting]) {
|
|
80
|
+
marketplaceSettings(filters: $filters, sortings: $sortings) {
|
|
81
|
+
items {
|
|
82
|
+
id
|
|
83
|
+
name
|
|
84
|
+
marketplaceStore {
|
|
85
|
+
id
|
|
86
|
+
name
|
|
87
|
+
storeName
|
|
88
|
+
platform
|
|
89
|
+
description
|
|
90
|
+
status
|
|
91
|
+
}
|
|
92
|
+
category
|
|
93
|
+
value
|
|
94
|
+
updatedAt
|
|
95
|
+
}
|
|
96
|
+
total
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
`,
|
|
100
|
+
variables: { filters, sortings }
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
return response.data.marketplaceSettings.items.filter(item => item.marketplaceStore.status == 'ACTIVE') || []
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
showToast(message) {
|
|
107
|
+
document.dispatchEvent(new CustomEvent('notify', { detail: { message, option: { timer: 1000 } } }))
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
customElements.define('global-marketplace-settings', GlobalMarketplaceSettings)
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import '
|
|
1
|
+
import '@things-factory/component-ui'
|
|
2
|
+
import './global-marketplace-settings'
|
|
3
|
+
import './transaction-rates'
|
|
3
4
|
|
|
4
|
-
import gql from 'graphql-tag'
|
|
5
5
|
import { css, html } from 'lit-element'
|
|
6
|
-
import { connect } from 'pwa-helpers/connect-mixin.js'
|
|
7
6
|
|
|
8
|
-
import { i18next } from '@things-factory/i18n-base'
|
|
9
|
-
import {
|
|
7
|
+
import { i18next, localize } from '@things-factory/i18n-base'
|
|
8
|
+
import { PageView } from '@things-factory/shell'
|
|
10
9
|
|
|
11
|
-
class MarketplaceSetting extends
|
|
10
|
+
class MarketplaceSetting extends localize(i18next)(PageView) {
|
|
12
11
|
static get styles() {
|
|
13
12
|
return [
|
|
14
13
|
css`
|
|
@@ -38,7 +37,7 @@ class MarketplaceSetting extends connect(store)(PageView) {
|
|
|
38
37
|
|
|
39
38
|
static get properties() {
|
|
40
39
|
return {
|
|
41
|
-
|
|
40
|
+
currentTab: String
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
|
|
@@ -50,28 +49,32 @@ class MarketplaceSetting extends connect(store)(PageView) {
|
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
render() {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
<div subtitle>${i18next.t('text.update_stock_allocation_ratio')}</div>
|
|
52
|
+
const SETTING_TABS = {
|
|
53
|
+
GLOBAL_SETTINGS: i18next.t('label.global_marketplace_settings'),
|
|
54
|
+
TRANSACTION_RATES: i18next.t('label.transaction_rates')
|
|
55
|
+
}
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
this.ratioSettings = await this.fetchMarketplaceSettings()
|
|
64
|
-
}}
|
|
65
|
-
></stock-allocation-ratio>
|
|
57
|
+
const settingTemplate = [
|
|
58
|
+
{ name: i18next.t('label.global_marketplace_settings'), template: 'global-marketplace-settings' },
|
|
59
|
+
{ name: i18next.t('label.transaction_rates'), template: 'transaction-rates' }
|
|
60
|
+
]
|
|
66
61
|
|
|
67
|
-
|
|
62
|
+
const settingSet = {
|
|
63
|
+
[SETTING_TABS.GLOBAL_SETTINGS]: [],
|
|
64
|
+
[SETTING_TABS.TRANSACTION_RATES]: []
|
|
65
|
+
}
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
67
|
+
return html`
|
|
68
|
+
<quick-find-content
|
|
69
|
+
id="setting-list"
|
|
70
|
+
.data="${settingSet}"
|
|
71
|
+
@tabChanged="${e => (this.currentTab = e.detail.currentTabKey)}"
|
|
72
|
+
.contentRenderer="${(item, currentKeyTab) => {
|
|
73
|
+
const matchTab = settingTemplate.find(ot => ot.name === currentKeyTab)
|
|
74
|
+
let template = document.createElement(matchTab.template)
|
|
75
|
+
return template
|
|
76
|
+
}}"
|
|
77
|
+
></quick-find-content>
|
|
75
78
|
`
|
|
76
79
|
}
|
|
77
80
|
|
|
@@ -116,11 +119,7 @@ class MarketplaceSetting extends connect(store)(PageView) {
|
|
|
116
119
|
*/
|
|
117
120
|
}
|
|
118
121
|
|
|
119
|
-
async pageUpdated(changes, lifecycle, before) {
|
|
120
|
-
if (this.active) {
|
|
121
|
-
this.ratioSettings = await this.fetchMarketplaceSettings()
|
|
122
|
-
}
|
|
123
|
-
}
|
|
122
|
+
async pageUpdated(changes, lifecycle, before) {}
|
|
124
123
|
|
|
125
124
|
pageDisposed(lifecycle) {
|
|
126
125
|
/*
|
|
@@ -134,39 +133,6 @@ class MarketplaceSetting extends connect(store)(PageView) {
|
|
|
134
133
|
*/
|
|
135
134
|
}
|
|
136
135
|
|
|
137
|
-
async fetchMarketplaceSettings() {
|
|
138
|
-
const filters = []
|
|
139
|
-
const sortings = []
|
|
140
|
-
|
|
141
|
-
const response = await client.query({
|
|
142
|
-
query: gql`
|
|
143
|
-
query marketplaceSettings($filters: [Filter], $sortings: [Sorting]) {
|
|
144
|
-
marketplaceSettings(filters: $filters, sortings: $sortings) {
|
|
145
|
-
items {
|
|
146
|
-
id
|
|
147
|
-
name
|
|
148
|
-
marketplaceStore {
|
|
149
|
-
id
|
|
150
|
-
name
|
|
151
|
-
storeName
|
|
152
|
-
platform
|
|
153
|
-
description
|
|
154
|
-
status
|
|
155
|
-
}
|
|
156
|
-
category
|
|
157
|
-
value
|
|
158
|
-
updatedAt
|
|
159
|
-
}
|
|
160
|
-
total
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
`,
|
|
164
|
-
variables: { filters, sortings }
|
|
165
|
-
})
|
|
166
|
-
|
|
167
|
-
return response.data.marketplaceSettings.items.filter(item => item.marketplaceStore.status == 'ACTIVE') || []
|
|
168
|
-
}
|
|
169
|
-
|
|
170
136
|
showToast(message) {
|
|
171
137
|
document.dispatchEvent(new CustomEvent('notify', { detail: { message, option: { timer: 1000 } } }))
|
|
172
138
|
}
|
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
import '@things-factory/form-ui'
|
|
2
|
+
import '@things-factory/grist-ui'
|
|
3
|
+
|
|
4
|
+
import gql from 'graphql-tag'
|
|
5
|
+
import { css, html, LitElement } from 'lit-element'
|
|
6
|
+
|
|
7
|
+
import { i18next } from '@things-factory/i18n-base'
|
|
8
|
+
import { client, CustomAlert } from '@things-factory/shell'
|
|
9
|
+
import { ScrollbarStyles } from '@things-factory/styles'
|
|
10
|
+
import { isMobileDevice } from '@things-factory/utils'
|
|
11
|
+
|
|
12
|
+
class TransactionRates extends LitElement {
|
|
13
|
+
static get styles() {
|
|
14
|
+
return [
|
|
15
|
+
ScrollbarStyles,
|
|
16
|
+
css`
|
|
17
|
+
:host {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
}
|
|
22
|
+
search-form {
|
|
23
|
+
overflow: visible;
|
|
24
|
+
}
|
|
25
|
+
data-grist {
|
|
26
|
+
overflow-y: auto;
|
|
27
|
+
flex: 1;
|
|
28
|
+
}
|
|
29
|
+
.button-container {
|
|
30
|
+
padding: var(--button-container-padding);
|
|
31
|
+
margin: var(--button-container-margin);
|
|
32
|
+
text-align: var(--button-container-align);
|
|
33
|
+
background-color: var(--button-container-background);
|
|
34
|
+
height: var(--button-container-height);
|
|
35
|
+
}
|
|
36
|
+
.button-container button {
|
|
37
|
+
background-color: var(--button-container-button-background-color);
|
|
38
|
+
border-radius: var(--button-container-button-border-radius);
|
|
39
|
+
height: var(--button-container-button-height);
|
|
40
|
+
border: var(--button-container-button-border);
|
|
41
|
+
margin: var(--button-container-button-margin);
|
|
42
|
+
|
|
43
|
+
padding: var(--button-padding);
|
|
44
|
+
color: var(--theme-white-color);
|
|
45
|
+
font: var(--button-font);
|
|
46
|
+
text-transform: var(--button-text-transform);
|
|
47
|
+
}
|
|
48
|
+
.button-container button:hover,
|
|
49
|
+
.button-container button:active {
|
|
50
|
+
background-color: var(--button-background-focus-color);
|
|
51
|
+
}
|
|
52
|
+
`
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
static get properties() {
|
|
57
|
+
return {
|
|
58
|
+
_searchFields: Array,
|
|
59
|
+
config: Object,
|
|
60
|
+
_selectedRecords: Array,
|
|
61
|
+
_marketplaceStore: Array,
|
|
62
|
+
_brands: Array,
|
|
63
|
+
_rateTypes: Array
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
render() {
|
|
68
|
+
return html`
|
|
69
|
+
<search-form id="search-form" .fields=${this._searchFields} @submit=${e => this.dataGrist.fetch()}></search-form>
|
|
70
|
+
|
|
71
|
+
<data-grist
|
|
72
|
+
.mode=${isMobileDevice() ? 'LIST' : 'GRID'}
|
|
73
|
+
.config=${this.config}
|
|
74
|
+
.fetchHandler="${this.fetchHandler.bind(this)}"
|
|
75
|
+
@select-record-change=${e => (this._selectedRecords = e.detail.selectedRecords)}
|
|
76
|
+
></data-grist>
|
|
77
|
+
|
|
78
|
+
<div class="button-container">
|
|
79
|
+
<button @click=${this._saveMarketplaceTransactionRate.bind(this)}>${i18next.t('button.save')}</button>
|
|
80
|
+
<button @click=${this._deleteMarketplaceTransactionRates.bind(this)}>${i18next.t('button.delete')}</button>
|
|
81
|
+
</div>
|
|
82
|
+
`
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
get searchForm() {
|
|
86
|
+
return this.shadowRoot.querySelector('search-form')
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
get dataGrist() {
|
|
90
|
+
return this.shadowRoot.querySelector('data-grist')
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
updated(_changes, lifecycle) {
|
|
94
|
+
if (this.active) {
|
|
95
|
+
this._warehouseId = lifecycle.resourceId
|
|
96
|
+
this.dataGrist.fetch()
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async firstUpdated() {
|
|
101
|
+
this._marketplaceStore = await this._fetchMarketplaceStore()
|
|
102
|
+
this._brands = await this._fetchBrand()
|
|
103
|
+
this._rateTypes = ['PERCENTAGE', 'AMOUNT']
|
|
104
|
+
|
|
105
|
+
this._searchFields = [
|
|
106
|
+
{
|
|
107
|
+
label: i18next.t('field.brand'),
|
|
108
|
+
name: 'brand',
|
|
109
|
+
type: 'select',
|
|
110
|
+
options: [
|
|
111
|
+
{ value: '' },
|
|
112
|
+
...this._brands
|
|
113
|
+
.map(brand => {
|
|
114
|
+
return {
|
|
115
|
+
name: brand,
|
|
116
|
+
value: brand
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
.sort()
|
|
120
|
+
],
|
|
121
|
+
props: { searchOper: 'eq' }
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
label: i18next.t('field.payment_method'),
|
|
125
|
+
name: 'paymentMethod',
|
|
126
|
+
type: 'text',
|
|
127
|
+
props: { searchOper: 'i_like' }
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
|
|
131
|
+
this.config = {
|
|
132
|
+
rows: { selectable: { multiple: true } },
|
|
133
|
+
list: { fields: ['name', 'type', 'status'] },
|
|
134
|
+
columns: [
|
|
135
|
+
{ type: 'gutter', gutterName: 'dirty' },
|
|
136
|
+
{ type: 'gutter', gutterName: 'sequence' },
|
|
137
|
+
{ type: 'gutter', gutterName: 'row-selector', multiple: true },
|
|
138
|
+
{
|
|
139
|
+
type: 'select',
|
|
140
|
+
name: 'brand',
|
|
141
|
+
header: i18next.t('field.brand'),
|
|
142
|
+
record: {
|
|
143
|
+
editable: true,
|
|
144
|
+
options: [
|
|
145
|
+
'',
|
|
146
|
+
...Object.values(this._brands)
|
|
147
|
+
.map(b => b)
|
|
148
|
+
.sort()
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
imex: { header: i18next.t('field.brand'), key: 'brand', width: 50, type: 'string' },
|
|
152
|
+
sortable: true,
|
|
153
|
+
width: 100
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'string',
|
|
157
|
+
name: 'paymentMethod',
|
|
158
|
+
header: i18next.t('field.payment_method'),
|
|
159
|
+
record: { editable: true, align: 'center' },
|
|
160
|
+
imex: { header: i18next.t('field.payment_method'), key: 'paymentMethod', width: 50, type: 'string' },
|
|
161
|
+
sortable: true,
|
|
162
|
+
width: 150
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'select',
|
|
166
|
+
name: 'rateType',
|
|
167
|
+
header: i18next.t('field.rate_type'),
|
|
168
|
+
record: {
|
|
169
|
+
editable: true,
|
|
170
|
+
options: [
|
|
171
|
+
'',
|
|
172
|
+
...Object.values(this._rateTypes)
|
|
173
|
+
.map(b => b)
|
|
174
|
+
.sort()
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
imex: { header: i18next.t('field.rate_type'), key: 'rateType', width: 50, type: 'string' },
|
|
178
|
+
sortable: true,
|
|
179
|
+
width: 100
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'float',
|
|
183
|
+
name: 'rate',
|
|
184
|
+
header: i18next.t('field.rate'),
|
|
185
|
+
record: { editable: true, align: 'center' },
|
|
186
|
+
imex: { header: i18next.t('field.rate'), key: 'rate', width: 50, type: 'string' },
|
|
187
|
+
sortable: true,
|
|
188
|
+
width: 100
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
type: 'select',
|
|
192
|
+
name: 'marketplaceStore',
|
|
193
|
+
header: i18next.t('field.marketplace_store'),
|
|
194
|
+
record: {
|
|
195
|
+
editable: true,
|
|
196
|
+
options: [
|
|
197
|
+
'',
|
|
198
|
+
...Object.values(this._marketplaceStore.records)
|
|
199
|
+
.map(ms => ms.storeName)
|
|
200
|
+
.sort()
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
imex: { header: i18next.t('field.marketplace_store'), key: 'marketplaceStore', width: 50, type: 'string' },
|
|
204
|
+
sortable: true,
|
|
205
|
+
width: 150
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
type: 'datetime',
|
|
209
|
+
name: 'createdAt',
|
|
210
|
+
header: i18next.t('field.created_at'),
|
|
211
|
+
record: { editable: false, align: 'center' },
|
|
212
|
+
sortable: true,
|
|
213
|
+
width: 80
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
type: 'datetime',
|
|
217
|
+
name: 'updatedAt',
|
|
218
|
+
header: i18next.t('field.updated_at'),
|
|
219
|
+
record: { editable: false, align: 'center' },
|
|
220
|
+
sortable: true,
|
|
221
|
+
width: 80
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
type: 'object',
|
|
225
|
+
name: 'updater',
|
|
226
|
+
header: i18next.t('field.updater'),
|
|
227
|
+
record: { editable: false, align: 'center' },
|
|
228
|
+
sortable: true,
|
|
229
|
+
width: 80
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
async fetchHandler({ page, limit, sorters = [] }) {
|
|
236
|
+
let filters = []
|
|
237
|
+
|
|
238
|
+
const response = await client.query({
|
|
239
|
+
query: gql`
|
|
240
|
+
query marketplaceTransactionRates($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
241
|
+
marketplaceTransactionRates(filters: $filters, pagination: $pagination, sortings: $sortings) {
|
|
242
|
+
items {
|
|
243
|
+
id
|
|
244
|
+
brand
|
|
245
|
+
paymentMethod
|
|
246
|
+
rateType
|
|
247
|
+
rate
|
|
248
|
+
marketplaceStore {
|
|
249
|
+
id
|
|
250
|
+
platform
|
|
251
|
+
name
|
|
252
|
+
storeName
|
|
253
|
+
}
|
|
254
|
+
createdAt
|
|
255
|
+
updatedAt
|
|
256
|
+
updater {
|
|
257
|
+
id
|
|
258
|
+
name
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
total
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
`,
|
|
265
|
+
variables: {
|
|
266
|
+
filters: [...filters, ...this.searchForm.queryFilters],
|
|
267
|
+
pagination: { page, limit },
|
|
268
|
+
sortings: sorters
|
|
269
|
+
}
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
return {
|
|
273
|
+
total: response.data.marketplaceTransactionRates.total || 0,
|
|
274
|
+
records:
|
|
275
|
+
response.data.marketplaceTransactionRates.items.map(data => {
|
|
276
|
+
return {
|
|
277
|
+
...data,
|
|
278
|
+
marketplaceStore: data.marketplaceStore.storeName
|
|
279
|
+
}
|
|
280
|
+
}) || []
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
async _saveMarketplaceTransactionRate(patches) {
|
|
285
|
+
try {
|
|
286
|
+
patches = this.dataGrist.exportPatchList({ flagName: 'cuFlag' })
|
|
287
|
+
this.validateData(patches)
|
|
288
|
+
patches = patches.map(patch => {
|
|
289
|
+
if (patch.marketplaceStore) {
|
|
290
|
+
let ms = this._marketplaceStore.records.find(ms => ms.storeName === patch.marketplaceStore)
|
|
291
|
+
return {
|
|
292
|
+
...patch,
|
|
293
|
+
marketplaceStore: {
|
|
294
|
+
id: ms.id,
|
|
295
|
+
name: ms.name,
|
|
296
|
+
description: ms.description
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
} else {
|
|
300
|
+
return { ...patch }
|
|
301
|
+
}
|
|
302
|
+
})
|
|
303
|
+
if (patches && patches.length) {
|
|
304
|
+
const response = await client.mutate({
|
|
305
|
+
mutation: gql`
|
|
306
|
+
mutation updateMultipleMarketplaceTransactionRate($patches: [MarketplaceTransactionRatePatch!]!) {
|
|
307
|
+
updateMultipleMarketplaceTransactionRate(patches: $patches) {
|
|
308
|
+
id
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
`,
|
|
312
|
+
variables: { patches: patches }
|
|
313
|
+
})
|
|
314
|
+
|
|
315
|
+
if (!response.errors) {
|
|
316
|
+
this.dataGrist.fetch()
|
|
317
|
+
this.showToast(i18next.t('text.data_updated_successfully'))
|
|
318
|
+
}
|
|
319
|
+
} else {
|
|
320
|
+
CustomAlert({
|
|
321
|
+
title: i18next.t('text.nothing_changed'),
|
|
322
|
+
text: i18next.t('text.there_is_nothing_to_save')
|
|
323
|
+
})
|
|
324
|
+
}
|
|
325
|
+
} catch (error) {
|
|
326
|
+
this.showToast(error)
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
async _deleteMarketplaceTransactionRates() {
|
|
331
|
+
const ids = this.dataGrist.selected.map(record => record.id)
|
|
332
|
+
if (ids && ids.length) {
|
|
333
|
+
const anwer = await CustomAlert({
|
|
334
|
+
type: 'warning',
|
|
335
|
+
title: i18next.t('button.delete'),
|
|
336
|
+
text: i18next.t('text.are_you_sure'),
|
|
337
|
+
confirmButton: { text: i18next.t('button.delete') },
|
|
338
|
+
cancelButton: { text: i18next.t('button.cancel') }
|
|
339
|
+
})
|
|
340
|
+
|
|
341
|
+
if (!anwer.value) return
|
|
342
|
+
|
|
343
|
+
const response = await client.mutate({
|
|
344
|
+
mutation: gql`
|
|
345
|
+
mutation deleteMarketplaceTransactionRates($ids: [String!]!) {
|
|
346
|
+
deleteMarketplaceTransactionRates(ids: $ids)
|
|
347
|
+
}
|
|
348
|
+
`,
|
|
349
|
+
variables: { ids }
|
|
350
|
+
})
|
|
351
|
+
|
|
352
|
+
if (!response.errors) {
|
|
353
|
+
this.dataGrist.fetch()
|
|
354
|
+
this.showToast(i18next.t('text.data_deleted_successfully'))
|
|
355
|
+
}
|
|
356
|
+
} else {
|
|
357
|
+
CustomAlert({
|
|
358
|
+
title: i18next.t('text.nothing_selected'),
|
|
359
|
+
text: i18next.t('text.there_is_nothing_to_delete')
|
|
360
|
+
})
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
async _fetchMarketplaceStore() {
|
|
365
|
+
const filters = []
|
|
366
|
+
const pagination = {}
|
|
367
|
+
const sortings = []
|
|
368
|
+
const response = await client.query({
|
|
369
|
+
query: gql`
|
|
370
|
+
query marketplaceStores($filters: [Filter], $pagination: Pagination, $sortings: [Sorting]) {
|
|
371
|
+
marketplaceStores(filters: $filters, pagination: $pagination, sortings: $sortings) {
|
|
372
|
+
items {
|
|
373
|
+
id
|
|
374
|
+
platform
|
|
375
|
+
name
|
|
376
|
+
storeName
|
|
377
|
+
description
|
|
378
|
+
}
|
|
379
|
+
total
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
`,
|
|
383
|
+
variables: { filters: filters, pagination: pagination, sortings: sortings }
|
|
384
|
+
})
|
|
385
|
+
|
|
386
|
+
if (!response.errors) {
|
|
387
|
+
return {
|
|
388
|
+
total: response.data.marketplaceStores.total || 0,
|
|
389
|
+
records: response.data.marketplaceStores.items || []
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
async _fetchBrand() {
|
|
395
|
+
const filters = []
|
|
396
|
+
const response = await client.query({
|
|
397
|
+
query: gql`
|
|
398
|
+
query productBrands($filters: [Filter!]) {
|
|
399
|
+
productBrands(filters: $filters) {
|
|
400
|
+
items {
|
|
401
|
+
brand
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
`,
|
|
406
|
+
variables: { filters: filters }
|
|
407
|
+
})
|
|
408
|
+
|
|
409
|
+
if (!response.errors) {
|
|
410
|
+
return response.data.productBrands.items.map(item => {
|
|
411
|
+
return item.brand
|
|
412
|
+
})
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
validateData(patches) {
|
|
417
|
+
patches.find(patch => {
|
|
418
|
+
if (patch.cuFlag === '+') {
|
|
419
|
+
if (!patch.brand || !patch.paymentMethod || !patch.rateType || !patch.rate || !patch.marketplaceStore) {
|
|
420
|
+
throw new Error(i18next.t('text.empty_fields'))
|
|
421
|
+
}
|
|
422
|
+
} else {
|
|
423
|
+
if (
|
|
424
|
+
patch.brand === '' ||
|
|
425
|
+
patch.paymentMethod === '' ||
|
|
426
|
+
patch.rateType === '' ||
|
|
427
|
+
patch.rate === '' ||
|
|
428
|
+
patch.marketplaceStore === ''
|
|
429
|
+
) {
|
|
430
|
+
throw new Error(i18next.t('text.empty_fields'))
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
if (patch.rate) {
|
|
434
|
+
if (isNaN(parseFloat(patch.rate)) === true) {
|
|
435
|
+
throw new Error(i18next.t('text.invalid_rate'))
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
})
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
onlyNumbers(str) {
|
|
442
|
+
const specialCharacter = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+/
|
|
443
|
+
const alphabet = /[a-zA-Z]/g
|
|
444
|
+
|
|
445
|
+
const value = specialCharacter.test(str) ? false : alphabet.test(str) ? false : true
|
|
446
|
+
return value
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
showToast(message) {
|
|
450
|
+
document.dispatchEvent(new CustomEvent('notify', { detail: { message } }))
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
window.customElements.define('transaction-rates', TransactionRates)
|
package/client/route.js
CHANGED
|
@@ -106,5 +106,9 @@ export default function route(page) {
|
|
|
106
106
|
case 'shopee-sales-report':
|
|
107
107
|
import('./pages/reports/sales-by-platform/shopee-sales-report')
|
|
108
108
|
return page
|
|
109
|
+
|
|
110
|
+
case 'mms-transaction-rates':
|
|
111
|
+
import('./pages/setting/transaction-rates')
|
|
112
|
+
return page
|
|
109
113
|
}
|
|
110
114
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/operato-mms",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.204",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -80,12 +80,12 @@
|
|
|
80
80
|
"@things-factory/integration-fulfillment": "^4.3.190",
|
|
81
81
|
"@things-factory/integration-lmd": "^4.3.197",
|
|
82
82
|
"@things-factory/lite-menu": "^4.3.186",
|
|
83
|
-
"@things-factory/marketplace-base": "^4.3.
|
|
83
|
+
"@things-factory/marketplace-base": "^4.3.204",
|
|
84
84
|
"@things-factory/more-ui": "^4.3.179",
|
|
85
85
|
"@things-factory/notification": "^4.3.186",
|
|
86
86
|
"@things-factory/oauth2-client": "^4.3.179",
|
|
87
87
|
"@things-factory/pdf": "^4.3.159",
|
|
88
|
-
"@things-factory/product-base": "^4.3.
|
|
88
|
+
"@things-factory/product-base": "^4.3.204",
|
|
89
89
|
"@things-factory/resource-ui": "^4.3.179",
|
|
90
90
|
"@things-factory/scene-data-transform": "^4.3.159",
|
|
91
91
|
"@things-factory/scene-excel": "^4.3.159",
|
|
@@ -100,11 +100,11 @@
|
|
|
100
100
|
"@things-factory/scene-visualizer": "^4.3.159",
|
|
101
101
|
"@things-factory/setting-ui": "^4.3.186",
|
|
102
102
|
"@things-factory/system-ui": "^4.3.179",
|
|
103
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
103
|
+
"@things-factory/warehouse-base": "^4.3.204"
|
|
104
104
|
},
|
|
105
105
|
"devDependencies": {
|
|
106
106
|
"@things-factory/builder": "^4.3.179",
|
|
107
107
|
"@types/node-fetch": "^2.5.7"
|
|
108
108
|
},
|
|
109
|
-
"gitHead": "
|
|
109
|
+
"gitHead": "d7400c05d76662c2df54c0278078ade54e57f271"
|
|
110
110
|
}
|
package/things-factory.config.js
CHANGED
package/translations/en.json
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"field.variation_id": "variation ID",
|
|
3
|
-
"field.voucher_amt": "voucher amount",
|
|
4
|
-
"field.shipping_rebate": "shipping rebate",
|
|
5
|
-
"field.shipping_mode": "shipping mode",
|
|
6
|
-
"field.service_fee": "service fee",
|
|
7
|
-
"field.transaction_fee": "transaction fee",
|
|
8
|
-
"field.total_released_amt": "total release amount",
|
|
9
|
-
"field.voucher_code": "voucher code",
|
|
10
|
-
"field.comission_fee": "comission fee",
|
|
11
|
-
"field.fulfilment_center": "fulfilment center",
|
|
12
2
|
"button.add_product": "add product",
|
|
13
3
|
"button.add": "add",
|
|
14
4
|
"button.airway_bill": "airway bill",
|
|
@@ -54,6 +44,7 @@
|
|
|
54
44
|
"field.buyer_username": "buyer username",
|
|
55
45
|
"field.channel_sku": "channel sku",
|
|
56
46
|
"field.city": "city",
|
|
47
|
+
"field.comission_fee": "comission fee",
|
|
57
48
|
"field.commission_fee": "commission fee",
|
|
58
49
|
"field.country": "country",
|
|
59
50
|
"field.criteria": "criteria",
|
|
@@ -64,18 +55,20 @@
|
|
|
64
55
|
"field.eta_date": "eta date",
|
|
65
56
|
"field.from_date": "from date",
|
|
66
57
|
"field.fulfillment_partner": "fulfilment partner",
|
|
58
|
+
"field.fulfilment_center": "fulfilment center",
|
|
67
59
|
"field.grand_total": "grand total",
|
|
68
60
|
"field.import_cargo": "import cargo",
|
|
69
|
-
"field.isku": "ISKU",
|
|
70
61
|
"field.is_splitted": "splitted",
|
|
62
|
+
"field.isku": "ISKU",
|
|
71
63
|
"field.item_count": "item count",
|
|
72
64
|
"field.item_price_credit": "item price credit",
|
|
73
65
|
"field.item": "item",
|
|
74
66
|
"field.last_updated": "last updated",
|
|
75
|
-
"field.lazada_bonus": "lazada bonus",
|
|
76
67
|
"field.lazada_bonus_lzd_cofund": "lazada bonus - LZD co-fund",
|
|
68
|
+
"field.lazada_bonus": "lazada bonus",
|
|
77
69
|
"field.marketplace_product_name": "marketplace product name",
|
|
78
70
|
"field.marketplace_product_sku": "marketplace product sku",
|
|
71
|
+
"field.marketplace_store": "marketplace store",
|
|
79
72
|
"field.name": "name",
|
|
80
73
|
"field.not_assigned": "not assigned",
|
|
81
74
|
"field.on_hold": "on hold",
|
|
@@ -93,8 +86,9 @@
|
|
|
93
86
|
"field.packing_type": "packing type",
|
|
94
87
|
"field.paid_price": "paid price",
|
|
95
88
|
"field.pallet_qty": "pallet qty",
|
|
96
|
-
"field.payout_date": "payout date",
|
|
97
89
|
"field.payment_fee": "payment fee",
|
|
90
|
+
"field.payment_method": "payment method",
|
|
91
|
+
"field.payout_date": "payout date",
|
|
98
92
|
"field.pickup_date": "pickup date",
|
|
99
93
|
"field.pickup_time_id": "pickup time id",
|
|
100
94
|
"field.post_code": "post code",
|
|
@@ -109,6 +103,8 @@
|
|
|
109
103
|
"field.promotional_charges_flexi_combo": "promotional charges flexi-combo",
|
|
110
104
|
"field.promotional_charges_vouchers": "promotional charges vouchers",
|
|
111
105
|
"field.qty": "qty",
|
|
106
|
+
"field.rate_type": "rate type",
|
|
107
|
+
"field.rate": "rate",
|
|
112
108
|
"field.ref_no": "ref no.",
|
|
113
109
|
"field.refund_amount": "refund amount",
|
|
114
110
|
"field.remark": "remark",
|
|
@@ -121,13 +117,16 @@
|
|
|
121
117
|
"field.save": "save",
|
|
122
118
|
"field.seller_shipping_fee_voucher": "seller shipping fee voucher",
|
|
123
119
|
"field.sender": "sender",
|
|
120
|
+
"field.service_fee": "service fee",
|
|
124
121
|
"field.shipping_carrier": "shipping carrier",
|
|
125
|
-
"field.shipping_fee_voucher": "shipping fee voucher",
|
|
126
122
|
"field.shipping_fee_paid_by_customer": "shipping fee (paid by customer)",
|
|
127
123
|
"field.shipping_fee_voucher_by_lazada": "shipping fee voucher (by lazada)",
|
|
128
124
|
"field.shipping_fee_voucher_by_seller": "shipping fee voucher (by seller)",
|
|
125
|
+
"field.shipping_fee_voucher": "shipping fee voucher",
|
|
129
126
|
"field.shipping_fee": "shipping fee",
|
|
127
|
+
"field.shipping_mode": "shipping mode",
|
|
130
128
|
"field.shipping_provider": "shipping provider",
|
|
129
|
+
"field.shipping_rebate": "shipping rebate",
|
|
131
130
|
"field.sku_name": "sku name",
|
|
132
131
|
"field.sku": "SKU",
|
|
133
132
|
"field.sold_stock": "sold stock",
|
|
@@ -141,12 +140,14 @@
|
|
|
141
140
|
"field.tax_amount": "tax amount",
|
|
142
141
|
"field.to_date": "to date",
|
|
143
142
|
"field.total_amount": "total amount",
|
|
143
|
+
"field.total_released_amt": "total release amount",
|
|
144
144
|
"field.total_uom_value": "total UOM value",
|
|
145
145
|
"field.total_volume": "total volume",
|
|
146
146
|
"field.total_weight": "total weight",
|
|
147
147
|
"field.town": "town",
|
|
148
148
|
"field.tracking_no": "tracking no",
|
|
149
149
|
"field.tracking_url": "tracking URL",
|
|
150
|
+
"field.transaction_fee": "transaction fee",
|
|
150
151
|
"field.transporter": "transporter",
|
|
151
152
|
"field.type": "type",
|
|
152
153
|
"field.unit": "unit",
|
|
@@ -154,6 +155,7 @@
|
|
|
154
155
|
"field.uom": "UOM",
|
|
155
156
|
"field.variation_cost_price": "variation cost price",
|
|
156
157
|
"field.variation_description": "variation description",
|
|
158
|
+
"field.variation_id": "variation ID",
|
|
157
159
|
"field.variation_marketplace_status": "variation marketplace status",
|
|
158
160
|
"field.variation_name": "variation name",
|
|
159
161
|
"field.variation_qty": "variation qty",
|
|
@@ -161,6 +163,8 @@
|
|
|
161
163
|
"field.variation_selling_price": "variation selling price",
|
|
162
164
|
"field.variation_sku": "variation sku",
|
|
163
165
|
"field.variation_uom_value": "variation uom value",
|
|
166
|
+
"field.voucher_amt": "voucher amount",
|
|
167
|
+
"field.voucher_code": "voucher code",
|
|
164
168
|
"field.warehouse_sku": "warehouse SKU",
|
|
165
169
|
"field.zipcode": "zipcode",
|
|
166
170
|
"label.address_id": "address id",
|
|
@@ -189,6 +193,7 @@
|
|
|
189
193
|
"label.do_no": "D/O no.",
|
|
190
194
|
"label.eta_date": "eta date",
|
|
191
195
|
"label.from_date": "from date",
|
|
196
|
+
"label.global_marketplace_settings": "global marketplace settings",
|
|
192
197
|
"label.group_product": "group product",
|
|
193
198
|
"label.height": "height",
|
|
194
199
|
"label.images": "images",
|
|
@@ -268,6 +273,7 @@
|
|
|
268
273
|
"label.to_confirm_receive": "to confirm receive",
|
|
269
274
|
"label.to_date": "to date",
|
|
270
275
|
"label.tracking_no": "tracking no",
|
|
276
|
+
"label.transaction_rates": "transaction rates",
|
|
271
277
|
"label.truck_no": "truck no.",
|
|
272
278
|
"label.unpaid": "unpaid",
|
|
273
279
|
"label.upload_documents": "upload documents",
|
|
@@ -291,8 +297,10 @@
|
|
|
291
297
|
"text.do_you_want_to_update_x": "do you want to update {x}",
|
|
292
298
|
"text.document_has_been_generated": "document has been generated",
|
|
293
299
|
"text.draft_product_has_been_updated_successfully": "draft product has been updated successfully",
|
|
300
|
+
"text.empty_fields": "empty field(s)",
|
|
294
301
|
"text.form_is_incomplete": "form is incomplete",
|
|
295
302
|
"text.initialise_logistics": "initialise logistics",
|
|
303
|
+
"text.invalid_rate": "invalid input (rate)",
|
|
296
304
|
"text.isku_is_empty": "isku is empty",
|
|
297
305
|
"text.kindly_select_a_shipping_provider": "kindly select a shipping provider",
|
|
298
306
|
"text.kindly_select_at_least_one_of_the_option_for_configuration": "kindly select at least one of the option for configuration",
|
|
@@ -360,6 +368,7 @@
|
|
|
360
368
|
"title.lazada_sales_report": "lazada sales report",
|
|
361
369
|
"title.link_product_configuration": "link product configuration",
|
|
362
370
|
"title.marketplace_setting": "marketplace setting",
|
|
371
|
+
"title.marketplace_transaction_rate": "marketplace transaction rate",
|
|
363
372
|
"title.onhand_inventory": "onhand inventory",
|
|
364
373
|
"title.order_by_store": "order by store",
|
|
365
374
|
"title.order_items_information": "order items information",
|
package/translations/ko.json
CHANGED
|
@@ -186,6 +186,7 @@
|
|
|
186
186
|
"label.do_no": "[ko] D/O no.",
|
|
187
187
|
"label.eta_date": "[ko] eta date",
|
|
188
188
|
"label.from_date": "[ko] from date",
|
|
189
|
+
"label.global_marketplace_settings": "[ko] global marketplace settings",
|
|
189
190
|
"label.group_product": "[ko] group product",
|
|
190
191
|
"label.height": "[ko] height",
|
|
191
192
|
"label.images": "[ko] images",
|
|
@@ -261,6 +262,7 @@
|
|
|
261
262
|
"label.to_confirm_receive": "[ko] to confirm receive",
|
|
262
263
|
"label.to_date": "[ko] to date",
|
|
263
264
|
"label.tracking_no": "[ko] tracking no",
|
|
265
|
+
"label.transaction_rates": "[ko] transaction rates",
|
|
264
266
|
"label.truck_no": "[ko] truck no.",
|
|
265
267
|
"label.unpaid": "[ko] unpaid",
|
|
266
268
|
"label.upload_documents": "[ko] upload documents",
|
|
@@ -364,5 +366,12 @@
|
|
|
364
366
|
"title.uploaded_images": "[ko] uploaded images",
|
|
365
367
|
"title.vas": "[ko] vas",
|
|
366
368
|
"title.warehouse_products": "[ko] warehouse products",
|
|
367
|
-
"button.ok": "[ko] ok"
|
|
369
|
+
"button.ok": "[ko] ok",
|
|
370
|
+
"field.payment_method": "[ko] payment method",
|
|
371
|
+
"field.rate_type": "[ko] rate type",
|
|
372
|
+
"field.rate": "[ko] rate",
|
|
373
|
+
"field.marketplace_store": "[ko] marketplace store",
|
|
374
|
+
"title.marketplace_transaction_rate": "[ko] marketplace transaction rate",
|
|
375
|
+
"text.empty_fields": "[ko] empty field(s)",
|
|
376
|
+
"text.invalid_rate": "[ko] invalid input (rate)"
|
|
368
377
|
}
|
package/translations/ms.json
CHANGED
|
@@ -186,6 +186,7 @@
|
|
|
186
186
|
"label.do_no": "[ms] D/O no.",
|
|
187
187
|
"label.eta_date": "[ms] eta date",
|
|
188
188
|
"label.from_date": "[ms] from date",
|
|
189
|
+
"label.global_marketplace_settings": "[ms]global marketplace settings",
|
|
189
190
|
"label.group_product": "[ms] group product",
|
|
190
191
|
"label.height": "[ms] height",
|
|
191
192
|
"label.images": "[ms] images",
|
|
@@ -261,6 +262,7 @@
|
|
|
261
262
|
"label.to_confirm_receive": "[ms] to confirm receive",
|
|
262
263
|
"label.to_date": "[ms] to date",
|
|
263
264
|
"label.tracking_no": "[ms] tracking no",
|
|
265
|
+
"label.transaction_rates": "[ms] transaction rates",
|
|
264
266
|
"label.truck_no": "[ms] truck no.",
|
|
265
267
|
"label.unpaid": "[ms] unpaid",
|
|
266
268
|
"label.upload_documents": "[ms] upload documents",
|
|
@@ -364,5 +366,12 @@
|
|
|
364
366
|
"title.uploaded_images": "[ms] uploaded images",
|
|
365
367
|
"title.vas": "[ms] vas",
|
|
366
368
|
"title.warehouse_products": "[ms] warehouse products",
|
|
367
|
-
"button.ok": "[ms] ok"
|
|
369
|
+
"button.ok": "[ms] ok",
|
|
370
|
+
"field.payment_method": "[ms] payment method",
|
|
371
|
+
"field.rate_type": "[ms] rate type",
|
|
372
|
+
"field.rate": "[ms] rate",
|
|
373
|
+
"field.marketplace_store": "[ms] marketplace store",
|
|
374
|
+
"title.marketplace_transaction_rate": "[ms] marketplace transaction rate",
|
|
375
|
+
"text.empty_fields": "[ms] empty field(s)",
|
|
376
|
+
"text.invalid_rate": "[ms] invalid input (rate)"
|
|
368
377
|
}
|
package/translations/zh.json
CHANGED
|
@@ -186,6 +186,7 @@
|
|
|
186
186
|
"label.do_no": "[zh] D/O no.",
|
|
187
187
|
"label.eta_date": "[zh] eta date",
|
|
188
188
|
"label.from_date": "[zh] from date",
|
|
189
|
+
"label.global_marketplace_settings": "[zh]global marketplace settings",
|
|
189
190
|
"label.group_product": "[zh] group product",
|
|
190
191
|
"label.height": "[zh] height",
|
|
191
192
|
"label.images": "[zh] images",
|
|
@@ -261,6 +262,7 @@
|
|
|
261
262
|
"label.to_confirm_receive": "[zh] to confirm receive",
|
|
262
263
|
"label.to_date": "[zh] to date",
|
|
263
264
|
"label.tracking_no": "[zh] tracking no",
|
|
265
|
+
"label.transaction_rates": "[zh] transaction rates",
|
|
264
266
|
"label.truck_no": "[zh] truck no.",
|
|
265
267
|
"label.unpaid": "[zh] unpaid",
|
|
266
268
|
"label.upload_documents": "[zh] upload documents",
|
|
@@ -364,5 +366,12 @@
|
|
|
364
366
|
"title.uploaded_images": "[zh] uploaded images",
|
|
365
367
|
"title.vas": "[zh] vas",
|
|
366
368
|
"title.warehouse_products": "[zh] warehouse products",
|
|
367
|
-
"button.ok": "[zh] ok"
|
|
369
|
+
"button.ok": "[zh] ok",
|
|
370
|
+
"field.payment_method": "[zh] payment method",
|
|
371
|
+
"field.rate_type": "[zh] rate_ ype",
|
|
372
|
+
"field.rate": "[zh] rate",
|
|
373
|
+
"field.marketplace_store": "[zh] marketplace store",
|
|
374
|
+
"title.marketplace_transaction_rate": "[zh] marketplace transaction rate",
|
|
375
|
+
"text.empty_fields": "[zh] empty field(s)",
|
|
376
|
+
"text.invalid_rate": "[zh] invalid input (rate)"
|
|
368
377
|
}
|