Fulfillment App Definition
Metadata Definition
Id required | string <uuid> The id for this integration |
Name required | string The name of this integration |
required | object The specification for authorizing with this fulfillment provider |
required | Array of objects non-empty unique A list of branded fulfillment providers associated with this integration |
OAuth
Learn More about defining an OAuth AuthProcess here
TypeScript Example
definition/index.tsdefinition/fulfillment-provider.tsforms/registration-form.tsforms/settings-form.ts
import {
AuthenticationType,
FulfillmentProviderAppMetadata
} from "@shipengine/connect-fulfillment-provider-api";
import { fulfillmentProvider } from "./fulfillment-provider";
export const metadata: FulfillmentProviderAppMetadata = {
Id: "79f8480f-9cec-4c51-bb3d-4887f37eba94",
Name: "connect-example",
AuthProcess: {
Identifier: {
AuthenticationType: AuthenticationType.Basic,
IsSandbox: false
}
},
FulfillmentProviders: [fulfillmentProvider],
};
import { join } from 'path';
import { FulfillmentProviderDefinition } from '@shipengine/connect-fulfillment-provider-api';
import { registrationForm, settingsForm } from '../forms';
export const fulfillmentProvider: FulfillmentProviderDefinition = {
Id: '1b290f53-fd3c-4fcd-a516-e49b74058885',
Name: 'Connect Example',
Description: 'This is a description about the fulfillment provider',
AccountModals: {
RegistrationFormSchema: registrationForm,
SettingsFormSchema: settingsForm,
},
FulfillmentServices: [
{
Id: 'b9d34927-b306-4f3e-88b6-f879eee52a0f',
Name: 'Example Shipping',
Abbreviation: 'ExpShipping',
Code: 'std'
},
],
Images: {
LogoUrl: join(__dirname, '../../assets/logo.svg'),
IconUrl: join(__dirname, '../../assets/icon.svg'),
},
};
export const registrationForm = {
JsonSchema: {
title: 'Connect Example Connection',
description: 'Sample Form Description',
type: 'object',
properties: {
username: {
type: 'string',
title: 'Username',
}
},
required: ['username']
},
UiSchema: {
username: {
'ui:help': 'Your username',
}
}
};
export const settingsForm = {
JsonSchema: {
title: 'Connect Example Connection',
description: 'Sample Form Description',
type: 'object',
properties: {
}
},
UiSchema: {
}
};