Skip to main content

Create custom pickup point

You can create your own custom pickup points: these are pickup locations that you, the merchant, operate and control. For example, your own physical stores.

Create the pickup point

To create a custom pickup point, use the createPickupPoint mutation. It requires:

  • referenceId: A unique ID that identifies the pickup point. You can use an ID generated by your own system.
  • name: A human-readable name that is shown to customers.
  • phone: A phone number.
  • address: The address of the pickup point.
  • location: The exact coordinates of the pickup point.

Part 1: Basic information

First, we set the id, the name, and the phone number as these are simple strings.

GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
}
)
}

Part 2: The address

To add the address, you need the addressInput type. It requires:

So the bare minimum address input looks like this:

GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: HU,
city: "Budapest",
postalCode: "1061",
addressLine1: "Nyugati tér 1."
}
}
)
}
  • You can add a state field: it can be used for any type of administrative subdivision of a country, if you need it.
  • If the address is longer and more complex, you can add addressLine2.
  • Add a note to include additional information about the address.
GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: CA,
state: "Ontario"
city: "Ottawa",
postalCode: "K2C 0A6",
addressLine1: "1026 Baseline Rd",
addressLine2: "Building B, 4th floor"
note: "The receptionist is grumpy"
}
}
)
}

Part 3: Exact coordinates

You must specify the exact location of the custom pickup point with a latitude and longitude value:

GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: HU,
city: "Budapest",
postalCode: "1061",
addressLine1: "Nyugati tér 1."
}
location: {
latitude: 47.50969187518572,
longitude: 19.05571832644608
}
}
)
}

Part 4: Activate the pickup point

To enable the pickup point for customers, you must set the isActive boolean to true.

GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: HU,
city: "Budapest",
postalCode: "1061",
addressLine1: "Nyugati tér 1."
}
location: {
latitude: 47.50969187518572,
longitude: 19.05571832644608
}
isActive: true
}
)
}

Set opening hours

The opening hours of a pickup point is important information for your customers.

To set it, you need the openingHours field which requires the PickupPointOpeningHoursInput type:

  • It requires a timezone in the format specified in the TimezoneEnum.
  • An openingHours field which requires the OpeningHourInput type. Each day is a separate object in an array, with day, start, and end fields.
  • day fields require the DayEnum.
  • start and end fields both require hour and minute fields which take integers.
GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: HU,
city: "Budapest",
postalCode: "1061",
addressLine1: "Nyugati tér 1."
}
location: {
latitude: 47.50969187518572,
longitude: 19.05571832644608
}
isActive: true,
openingHours: {
timezone: EUROPE_BUDAPEST,
openingHours: [
{
day: MONDAY,
start: {
hour: 8,
minute: 0
},
end: {
hour: 17,
minute: 0
}
},
{
day: TUESDAY,
start: {
hour: 9,
minute: 0
},
end: {
hour: 18,
minute: 0
}
}
]
}
}
)
}

Additional information

You can indicate whether your store is wheelchair accessible with the hasWheelChairAccess field.

GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: HU,
city: "Budapest",
postalCode: "1061",
addressLine1: "Nyugati tér 1."
}
location: {
latitude: 47.50969187518572,
longitude: 19.05571832644608
}
isActive: true,
hasWheelChairAccess: true
}
)
}

You can also configure a "cash on delivery" option, allowing customers to pay for their order in the store. The cashOnDelivery field accepts two payment methods, CASH and CARD. To enable both, include them in an array:

GraphQL mutation
mutation  {
createPickupPoint(
input: {
referenceId: "123abc",
name: "My Store",
phone: "01 234 5678",
address: {
country: HU,
city: "Budapest",
postalCode: "1061",
addressLine1: "Nyugati tér 1."
}
location: {
latitude: 47.50969187518572,
longitude: 19.05571832644608
}
isActive: true,
cashOnDelivery: [
CASH,
CARD
]
}
)
}