@deenruv/inpost-plugin 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +23 -0
- package/README.md +46 -0
- package/dist/plugin-server/api/inpost-admin.resolver.d.ts +20 -0
- package/dist/plugin-server/api/inpost-admin.resolver.js +64 -0
- package/dist/plugin-server/api/inpost-shop.resolver.d.ts +7 -0
- package/dist/plugin-server/api/inpost-shop.resolver.js +38 -0
- package/dist/plugin-server/constants.d.ts +2 -0
- package/dist/plugin-server/constants.js +5 -0
- package/dist/plugin-server/controllers/inpost.controller.d.ts +9 -0
- package/dist/plugin-server/controllers/inpost.controller.js +54 -0
- package/dist/plugin-server/entities/inpost-config-entity.d.ts +12 -0
- package/dist/plugin-server/entities/inpost-config-entity.js +49 -0
- package/dist/plugin-server/entities/inpost-ref-entity.d.ts +9 -0
- package/dist/plugin-server/entities/inpost-ref-entity.js +39 -0
- package/dist/plugin-server/extensions/inpost.extension.d.ts +1 -0
- package/dist/plugin-server/extensions/inpost.extension.js +53 -0
- package/dist/plugin-server/extensions/inpost.shop.extenstion.d.ts +1 -0
- package/dist/plugin-server/extensions/inpost.shop.extenstion.js +12 -0
- package/dist/plugin-server/guards/inpost-webhook.guard.d.ts +22 -0
- package/dist/plugin-server/guards/inpost-webhook.guard.js +96 -0
- package/dist/plugin-server/handlers/inpost.fulfillment.d.ts +20 -0
- package/dist/plugin-server/handlers/inpost.fulfillment.js +95 -0
- package/dist/plugin-server/index.d.ts +6 -0
- package/dist/plugin-server/index.js +78 -0
- package/dist/plugin-server/services/inpost.service.d.ts +46 -0
- package/dist/plugin-server/services/inpost.service.js +365 -0
- package/dist/plugin-server/types.d.ts +29 -0
- package/dist/plugin-server/types.js +2 -0
- package/dist/plugin-server/ui/Inpost.tsx +273 -0
- package/dist/plugin-server/ui/graphql/mutations.ts +14 -0
- package/dist/plugin-server/ui/graphql/queries.ts +7 -0
- package/dist/plugin-server/ui/graphql/scalars.ts +15 -0
- package/dist/plugin-server/ui/graphql/selectors.ts +0 -0
- package/dist/plugin-server/ui/providers.ts +9 -0
- package/dist/plugin-server/ui/routes.ts +1 -0
- package/dist/plugin-server/ui/styles/overwrite.css +0 -0
- package/dist/plugin-server/ui/translations/en.json +31 -0
- package/dist/plugin-server/ui/translations/pl.json +33 -0
- package/dist/plugin-server/ui/zeus/const.ts +4767 -0
- package/dist/plugin-server/ui/zeus/index.ts +21694 -0
- package/dist/plugin-server/ui/zeus/typedDocumentNode.ts +27 -0
- package/dist/plugin-server/ui.d.ts +2 -0
- package/dist/plugin-server/ui.js +17 -0
- package/dist/plugin-server/zeus/const.d.ts +6 -0
- package/dist/plugin-server/zeus/const.js +3654 -0
- package/dist/plugin-server/zeus/index.d.ts +18623 -0
- package/dist/plugin-server/zeus/index.js +1094 -0
- package/dist/plugin-server/zeus/typedDocumentNode.d.ts +3 -0
- package/dist/plugin-server/zeus/typedDocumentNode.js +13 -0
- package/dist/plugin-ui/components/Inpost.d.ts +2 -0
- package/dist/plugin-ui/components/Inpost.js +126 -0
- package/dist/plugin-ui/graphql/mutations.d.ts +12 -0
- package/dist/plugin-ui/graphql/mutations.js +10 -0
- package/dist/plugin-ui/graphql/queries.d.ts +23 -0
- package/dist/plugin-ui/graphql/queries.js +19 -0
- package/dist/plugin-ui/graphql/scalars.d.ts +16 -0
- package/dist/plugin-ui/graphql/scalars.js +14 -0
- package/dist/plugin-ui/graphql/selectors.d.ts +15 -0
- package/dist/plugin-ui/graphql/selectors.js +13 -0
- package/dist/plugin-ui/index.d.ts +1 -0
- package/dist/plugin-ui/index.js +11 -0
- package/dist/plugin-ui/locales/en/index.d.ts +35 -0
- package/dist/plugin-ui/locales/en/index.js +2 -0
- package/dist/plugin-ui/locales/en/inpost.json +34 -0
- package/dist/plugin-ui/locales/pl/index.d.ts +36 -0
- package/dist/plugin-ui/locales/pl/index.js +2 -0
- package/dist/plugin-ui/locales/pl/inpost.json +35 -0
- package/dist/plugin-ui/translation-ns.d.ts +1 -0
- package/dist/plugin-ui/translation-ns.js +1 -0
- package/dist/plugin-ui/tsconfig.json +18 -0
- package/dist/plugin-ui/zeus/const.d.ts +6 -0
- package/dist/plugin-ui/zeus/const.js +3651 -0
- package/dist/plugin-ui/zeus/index.d.ts +18623 -0
- package/dist/plugin-ui/zeus/index.js +1086 -0
- package/dist/plugin-ui/zeus/typedDocumentNode.d.ts +3 -0
- package/dist/plugin-ui/zeus/typedDocumentNode.js +9 -0
- package/package.json +55 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { DataService, I18nService } from "@deenruv/admin-ui/core";
|
|
3
|
+
import {
|
|
4
|
+
ActionBar,
|
|
5
|
+
Card,
|
|
6
|
+
FormField,
|
|
7
|
+
useDetailComponentData,
|
|
8
|
+
useInjector,
|
|
9
|
+
useLazyQuery,
|
|
10
|
+
} from "@deenruv/admin-ui/react";
|
|
11
|
+
import { Client, Organization, Service } from "@deenruv/inpost";
|
|
12
|
+
import gql from "graphql-tag";
|
|
13
|
+
|
|
14
|
+
interface InpostConfig {
|
|
15
|
+
host: string;
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
geowidgetKey?: string;
|
|
18
|
+
inpostOrganization?: number;
|
|
19
|
+
service?: Service;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const Inpost: React.FC = () => {
|
|
23
|
+
const t = useInjector(I18nService);
|
|
24
|
+
const dataService = useInjector(DataService);
|
|
25
|
+
const [get, { data }] = useLazyQuery<{ getInpostConfig: InpostConfig }>(gql`
|
|
26
|
+
query InpostConfig {
|
|
27
|
+
getInpostConfig {
|
|
28
|
+
host
|
|
29
|
+
apiKey
|
|
30
|
+
geowidgetKey
|
|
31
|
+
inpostOrganization
|
|
32
|
+
service
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`);
|
|
36
|
+
const { entity, detailForm } = useDetailComponentData();
|
|
37
|
+
const shippingMethodId = entity?.id as undefined | number;
|
|
38
|
+
const fulfillmentHandlerControl = detailForm.controls["fulfillmentHandler"];
|
|
39
|
+
const [handler, setHandler] = useState<string>(
|
|
40
|
+
fulfillmentHandlerControl.value || "",
|
|
41
|
+
);
|
|
42
|
+
const valueChangeCb = useCallback(
|
|
43
|
+
(value: string) => {
|
|
44
|
+
setHandler(value);
|
|
45
|
+
},
|
|
46
|
+
[setHandler],
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const [inpostConfig, setInpostConfig] = useState<InpostConfig>({
|
|
50
|
+
host: "api-shipx-pl.easypack24.net",
|
|
51
|
+
});
|
|
52
|
+
const [organizations, setOrganizations] = useState([] as Organization[]);
|
|
53
|
+
const [modified, setModified] = useState(false);
|
|
54
|
+
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
(async () => {
|
|
57
|
+
const config = await get();
|
|
58
|
+
setInpostConfig(config.getInpostConfig);
|
|
59
|
+
setModified(false);
|
|
60
|
+
})();
|
|
61
|
+
}, [get]);
|
|
62
|
+
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
(async () => {
|
|
65
|
+
if (inpostConfig.apiKey && inpostConfig.host) {
|
|
66
|
+
const { host, apiKey } = inpostConfig;
|
|
67
|
+
const cli = new Client({ host, apiKey });
|
|
68
|
+
const organizations = await cli.organizations().list();
|
|
69
|
+
setOrganizations(organizations.items);
|
|
70
|
+
if (organizations.items[0]) {
|
|
71
|
+
const change: Pick<InpostConfig, "inpostOrganization" | "service"> = {
|
|
72
|
+
inpostOrganization: organizations.items[0].id,
|
|
73
|
+
};
|
|
74
|
+
if (organizations.items[0].services[0]) {
|
|
75
|
+
change.service = organizations.items[0].services[0];
|
|
76
|
+
}
|
|
77
|
+
setInpostConfig({ ...inpostConfig, ...change });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
})();
|
|
81
|
+
}, [
|
|
82
|
+
inpostConfig.apiKey,
|
|
83
|
+
inpostConfig.host,
|
|
84
|
+
setOrganizations,
|
|
85
|
+
setInpostConfig,
|
|
86
|
+
]);
|
|
87
|
+
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
fulfillmentHandlerControl.valueChanges.subscribe(valueChangeCb);
|
|
90
|
+
}, [valueChangeCb, fulfillmentHandlerControl.valueChanges.subscribe]);
|
|
91
|
+
|
|
92
|
+
return shippingMethodId && handler === "inpost-fulfillment" ? (
|
|
93
|
+
<div style={{ marginBottom: "16px" }}>
|
|
94
|
+
<Card title={t.translate("inpost-plugin.title")}>
|
|
95
|
+
<div style={{ marginTop: "16px", marginBottom: "16px" }}>
|
|
96
|
+
<FormField
|
|
97
|
+
label={t.translate("inpost-plugin.connection-label")}
|
|
98
|
+
tooltip={t.translate("inpost-plugin.connection-tooltip")}
|
|
99
|
+
invalid={!data?.getInpostConfig}
|
|
100
|
+
errorMessage={
|
|
101
|
+
data?.getInpostConfig
|
|
102
|
+
? ""
|
|
103
|
+
: t.translate("inpost-plugin.connection-error")
|
|
104
|
+
}
|
|
105
|
+
>
|
|
106
|
+
<span>
|
|
107
|
+
{data?.getInpostConfig
|
|
108
|
+
? t.translate("inpost-plugin.connected")
|
|
109
|
+
: t.translate("inpost-plugin.not-connected")}
|
|
110
|
+
</span>
|
|
111
|
+
</FormField>
|
|
112
|
+
</div>
|
|
113
|
+
<div style={{ marginTop: "16px", marginBottom: "16px" }}>
|
|
114
|
+
<FormField
|
|
115
|
+
label={t.translate("inpost-plugin.host-label")}
|
|
116
|
+
tooltip={t.translate("inpost-plugin.host-tooltip")}
|
|
117
|
+
invalid={false}
|
|
118
|
+
errorMessage=""
|
|
119
|
+
>
|
|
120
|
+
<input
|
|
121
|
+
type="text"
|
|
122
|
+
value={inpostConfig.host}
|
|
123
|
+
onChange={(v) => {
|
|
124
|
+
setInpostConfig({ ...inpostConfig, host: v.target.value });
|
|
125
|
+
setModified(true);
|
|
126
|
+
}}
|
|
127
|
+
/>
|
|
128
|
+
</FormField>
|
|
129
|
+
</div>
|
|
130
|
+
<div style={{ marginTop: "16px", marginBottom: "16px" }}>
|
|
131
|
+
<FormField
|
|
132
|
+
label={t.translate("inpost-plugin.api-key-label")}
|
|
133
|
+
tooltip={t.translate("inpost-plugin.api-key-tooltip")}
|
|
134
|
+
invalid={false}
|
|
135
|
+
errorMessage=""
|
|
136
|
+
>
|
|
137
|
+
<input
|
|
138
|
+
type="text"
|
|
139
|
+
value={inpostConfig.apiKey || ""}
|
|
140
|
+
onChange={(ev) => {
|
|
141
|
+
setInpostConfig({ ...inpostConfig, apiKey: ev.target.value });
|
|
142
|
+
setModified(true);
|
|
143
|
+
}}
|
|
144
|
+
/>
|
|
145
|
+
</FormField>
|
|
146
|
+
</div>
|
|
147
|
+
<div style={{ marginTop: "16px", marginBottom: "16px" }}>
|
|
148
|
+
<FormField
|
|
149
|
+
label={t.translate("inpost-plugin.geowidget-key-label")}
|
|
150
|
+
tooltip={t.translate("inpost-plugin.geowidget-key-tooltip")}
|
|
151
|
+
invalid={false}
|
|
152
|
+
errorMessage=""
|
|
153
|
+
>
|
|
154
|
+
<input
|
|
155
|
+
type="text"
|
|
156
|
+
value={inpostConfig.geowidgetKey || ""}
|
|
157
|
+
onChange={(ev) => {
|
|
158
|
+
setInpostConfig({
|
|
159
|
+
...inpostConfig,
|
|
160
|
+
geowidgetKey: ev.target.value,
|
|
161
|
+
});
|
|
162
|
+
setModified(true);
|
|
163
|
+
}}
|
|
164
|
+
/>
|
|
165
|
+
</FormField>
|
|
166
|
+
</div>
|
|
167
|
+
<div style={{ marginTop: "16px", marginBottom: "16px" }}>
|
|
168
|
+
<FormField
|
|
169
|
+
label={t.translate("inpost-plugin.organization-select-label")}
|
|
170
|
+
tooltip={t.translate("inpost-plugin.organization-select-tooltip")}
|
|
171
|
+
invalid={false}
|
|
172
|
+
errorMessage=""
|
|
173
|
+
>
|
|
174
|
+
<select
|
|
175
|
+
disabled={!organizations.length}
|
|
176
|
+
defaultValue={`${inpostConfig.inpostOrganization ?? ""}`}
|
|
177
|
+
onBlur={(ev) => {
|
|
178
|
+
const org = organizations.find(
|
|
179
|
+
(org) => `${org.id}` === ev.target.value,
|
|
180
|
+
);
|
|
181
|
+
setInpostConfig({
|
|
182
|
+
...inpostConfig,
|
|
183
|
+
inpostOrganization: org && org.id,
|
|
184
|
+
});
|
|
185
|
+
setModified(true);
|
|
186
|
+
}}
|
|
187
|
+
>
|
|
188
|
+
{organizations.map((org) => (
|
|
189
|
+
<option value={`${org.id}`}>{org.name}</option>
|
|
190
|
+
))}
|
|
191
|
+
</select>
|
|
192
|
+
</FormField>
|
|
193
|
+
</div>
|
|
194
|
+
<div style={{ marginTop: "16px", marginBottom: "16px" }}>
|
|
195
|
+
<FormField
|
|
196
|
+
label={t.translate("inpost-plugin.service-select-label")}
|
|
197
|
+
tooltip={t.translate("inpost-plugin.service-select-tooltip")}
|
|
198
|
+
invalid={false}
|
|
199
|
+
errorMessage=""
|
|
200
|
+
>
|
|
201
|
+
<select
|
|
202
|
+
disabled={typeof inpostConfig.inpostOrganization !== "number"}
|
|
203
|
+
defaultValue={`${inpostConfig.service ?? ""}`}
|
|
204
|
+
onBlur={(ev) => {
|
|
205
|
+
setInpostConfig({
|
|
206
|
+
...inpostConfig,
|
|
207
|
+
service: ev.target.value as Service,
|
|
208
|
+
});
|
|
209
|
+
setModified(true);
|
|
210
|
+
}}
|
|
211
|
+
>
|
|
212
|
+
{organizations
|
|
213
|
+
.find(
|
|
214
|
+
(org) =>
|
|
215
|
+
typeof inpostConfig.inpostOrganization === "number" &&
|
|
216
|
+
org.id === inpostConfig.inpostOrganization,
|
|
217
|
+
)
|
|
218
|
+
?.services.map((svc) => (
|
|
219
|
+
<option value={`${svc}`}>
|
|
220
|
+
{t.translate(
|
|
221
|
+
`inpost-plugin.service-${svc.replace(/_/gi, "-")}`,
|
|
222
|
+
)}
|
|
223
|
+
</option>
|
|
224
|
+
))}
|
|
225
|
+
</select>
|
|
226
|
+
</FormField>
|
|
227
|
+
</div>
|
|
228
|
+
<div style={{ marginTop: "28px" }}>
|
|
229
|
+
<ActionBar>
|
|
230
|
+
<button
|
|
231
|
+
className="button primary"
|
|
232
|
+
onClick={() => {
|
|
233
|
+
dataService
|
|
234
|
+
.mutate(
|
|
235
|
+
gql`
|
|
236
|
+
mutation SetInpostConfig(
|
|
237
|
+
$shippingMethodId: ID!
|
|
238
|
+
$host: String!
|
|
239
|
+
$apiKey: String!
|
|
240
|
+
$geowidgetKey: String
|
|
241
|
+
$inpostOrganization: Int!
|
|
242
|
+
$service: String!
|
|
243
|
+
) {
|
|
244
|
+
setInpostShippingMethodConfig(
|
|
245
|
+
input: {
|
|
246
|
+
shippingMethodId: $shippingMethodId
|
|
247
|
+
host: $host
|
|
248
|
+
apiKey: $apiKey
|
|
249
|
+
geowidgetKey: $geowidgetKey
|
|
250
|
+
inpostOrganization: $inpostOrganization
|
|
251
|
+
service: $service
|
|
252
|
+
}
|
|
253
|
+
)
|
|
254
|
+
}
|
|
255
|
+
`,
|
|
256
|
+
{
|
|
257
|
+
...inpostConfig,
|
|
258
|
+
shippingMethodId,
|
|
259
|
+
},
|
|
260
|
+
)
|
|
261
|
+
.subscribe(() => {
|
|
262
|
+
setModified(false);
|
|
263
|
+
});
|
|
264
|
+
}}
|
|
265
|
+
>
|
|
266
|
+
{t.translate("inpost-plugin.save")}
|
|
267
|
+
</button>
|
|
268
|
+
</ActionBar>
|
|
269
|
+
</div>
|
|
270
|
+
</Card>
|
|
271
|
+
</div>
|
|
272
|
+
) : null;
|
|
273
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { $ } from "../zeus";
|
|
2
|
+
import { typedGql } from "../zeus/typedDocumentNode";
|
|
3
|
+
import { scalars } from "./scalars";
|
|
4
|
+
|
|
5
|
+
const mutation = typedGql("mutation", { scalars });
|
|
6
|
+
|
|
7
|
+
const SEND_INVOICE = mutation({
|
|
8
|
+
sendInvoiceToWFirma: [
|
|
9
|
+
{ input: $("input", "SendInvoiceToWFirmaInput!") },
|
|
10
|
+
{ url: true },
|
|
11
|
+
],
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export const MUTATIONS = { SEND_INVOICE };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ZeusScalars } from "../zeus";
|
|
2
|
+
|
|
3
|
+
export const scalars = ZeusScalars({
|
|
4
|
+
DateTime: {
|
|
5
|
+
decode: (e: unknown) => new Date(e as string).toISOString(),
|
|
6
|
+
encode: (e: unknown) => (e as Date).toISOString(),
|
|
7
|
+
},
|
|
8
|
+
JSON: {
|
|
9
|
+
decode: (e: unknown) => JSON.parse(e as string),
|
|
10
|
+
encode: (e: unknown) => JSON.stringify(e),
|
|
11
|
+
},
|
|
12
|
+
Money: {
|
|
13
|
+
decode: (e) => e as number,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default [];
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"inpost-plugin": {
|
|
3
|
+
"title": "Configure InPost shipping method",
|
|
4
|
+
"host-label": "Host API ShipX",
|
|
5
|
+
"host-tooltip": "Host API ShipX that should be used to communicate with API",
|
|
6
|
+
"api-key-label": "ShipX API key",
|
|
7
|
+
"api-key-tooltip": "Private API key for ShipX API",
|
|
8
|
+
"organization-select-label": "Organization",
|
|
9
|
+
"organization-select-tooltip": "Select InPost organization",
|
|
10
|
+
"service-select-label": "Service",
|
|
11
|
+
"service-select-tooltip": "Select InPost service",
|
|
12
|
+
"service-inpost-locker-standard": "Parcel locker shipment - standard",
|
|
13
|
+
"service-inpost-locker-economy": "Parcel locker shipment - economy",
|
|
14
|
+
"service-inpost-locker-allegro": "Parcel locker shipment - Allegro Paczkomat® InPost.",
|
|
15
|
+
"service-inpost-locker-pass-thru": "Parcel locker shipment - Pass-Thru",
|
|
16
|
+
"service-inpost-letter-allegro": "Courier shipment - Allegro MiniKurier24 InPost",
|
|
17
|
+
"service-inpost-courier-allegro": "Courier shipment - Allegro Kurier24 InPost.",
|
|
18
|
+
"service-inpost-courier-c2c": "Courier shipment - InPost Courier C2C (service for a retail customer - prepaid)",
|
|
19
|
+
"service-inpost-courier-standard": "Courier shipment standard",
|
|
20
|
+
"service-inpost-courier-express-1000": "Courier shipment with delivery until 10:00",
|
|
21
|
+
"service-inpost-courier-express-1200": "Courier shipment with delivery until 12:00",
|
|
22
|
+
"service-inpost-courier-express-1700": "Courier shipment with delivery until 17:00",
|
|
23
|
+
"service-inpost-courier-palette": "Courier shipment Pallet Standard",
|
|
24
|
+
"save": "Zapisz",
|
|
25
|
+
"connection-label": "Connection",
|
|
26
|
+
"connection-tooltip": "Connection to InPost API",
|
|
27
|
+
"connected": "Connected",
|
|
28
|
+
"not-connected": "Not connected",
|
|
29
|
+
"connection-error": "Connection error"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"inpost-plugin": {
|
|
3
|
+
"title": "Skonfiguruj metodę wysyłki InPost",
|
|
4
|
+
"host-label": "Host API ShipX",
|
|
5
|
+
"host-tooltip": "Host API ShipX który powinien być użyty do komunikacji z API",
|
|
6
|
+
"api-key-label": "ShipX API klucz",
|
|
7
|
+
"api-key-tooltip": "Klucz prywatny do API ShipX",
|
|
8
|
+
"geowidget-key-label": "Klucz Geowidget",
|
|
9
|
+
"geowidget-key-tooltip": "Klucz publiczny do Geowidget",
|
|
10
|
+
"organization-select-label": "Organizacja",
|
|
11
|
+
"organization-select-tooltip": "Wybierz organizację w InPost",
|
|
12
|
+
"service-select-label": "Usługa",
|
|
13
|
+
"service-select-tooltip": "Wybierz usługę w InPost",
|
|
14
|
+
"service-inpost-locker-standard": "Przesyłka Paczkomat® - standardowa",
|
|
15
|
+
"service-inpost-locker-economy": "Przesyłka Paczkomat® - ekonomiczna",
|
|
16
|
+
"service-inpost-locker-allegro": "Przesyłka Paczkomat® - Allegro Paczkomat® InPost",
|
|
17
|
+
"service-inpost-locker-pass-thru": "Przesyłka Paczkomat® - Podaj Dalej",
|
|
18
|
+
"service-inpost-letter-allegro": "Przesyłka kurierska - Allegro MiniKurier24 InPost",
|
|
19
|
+
"service-inpost-courier-allegro": "Przesyłka kurierska - Allegro Kurier24 InPost",
|
|
20
|
+
"service-inpost-courier-c2c": "Przesyłka kurierska InPost Kurier C2C (usługa dla klienta detalicznego - prepaid)",
|
|
21
|
+
"service-inpost-courier-standard": "Przesyłka kurierska standardowa",
|
|
22
|
+
"service-inpost-courier-express-1000": "Przesyłka kurierska z doręczeniem do 10:00",
|
|
23
|
+
"service-inpost-courier-express-1200": "Przesyłka kurierska z doręczeniem do 12:00",
|
|
24
|
+
"service-inpost-courier-express-1700": "Przesyłka kurierska z doręczeniem do 17:00",
|
|
25
|
+
"service-inpost-courier-palette": "Przesyłka kurierska Paleta Standard",
|
|
26
|
+
"save": "Zapisz",
|
|
27
|
+
"connection-label": "Połączenie",
|
|
28
|
+
"connection-tooltip": "Połączenie z API InPost",
|
|
29
|
+
"connected": "Połączono",
|
|
30
|
+
"not-connected": "Nie połączono",
|
|
31
|
+
"connection-error": "Błąd połączenia"
|
|
32
|
+
}
|
|
33
|
+
}
|