@pinelab/vendure-plugin-goedgepickt
v3.0.1
Published
Vendure plugin for integration with the Goedgepickt order picking platform
Readme
Vendure GoedGepickt plugin
Plugin for integrating Vendure with GoedGepickt.
Getting started
Vendure's responsibilities vs GoedGepickt's responsibilities:
- Vendure is your catalog. If you want a new product, add it in Vendure
- GoedGepickt manages all things stock related. StockLevel, size and weight are all managed in GoedGepickt.
- Add this to your plugin in
vendure-config.ts:
import { GoedgepicktPlugin } from '@pinelab/vendure-plugin-goedgepickt';
plugins: [
GoedgepicktPlugin.init({
vendureHost: 'https://your-vendure-server.io/',
setWebhook: true // Automatically set webhooks in Goedgepickt or not
// You can optionally set orders 'on_hold' in Goedgepickt if you'd like
determineOrderStatus: (ctx, order) => {
if (order.state === 'PaymentAuthorized') {
return 'on_hold' as const;
} else {
return 'open' as const; // This is the default
}
}
}),
...
]- Run a database migration to add the new fields and entities to your database.
- Start the server and go to
Settings>Channels, open the channel you want to configure and select the GoedGepickt tab. Make sure you have theSetGoedGepicktConfigpermission. - Here you can configure your
apiKeyandwebshopUuidper channel.
When you save the credentials, the plugin will make sure the configured vendureHost is set as webhook for order and stock updates. The plugin will never delete webhooks, so if you ever change your url, you should manually delete the old webhook via GoedGepickt.
- Full sync is automatically handled by a nightly scheduled task that runs at 2:00 UTC. Make sure you have
DefaultSchedulerPluginconfigured in your Vendure config. - Orders can be manually (re-)pushed to GoedGepickt via the Push to Goedgepickt action in the order detail page's action bar dropdown.
Pickup points / drop off points
This plugin uses custom fields on an order as pickup location address. You can set a pickup points on an order with this mutation, the plugin will then send the address to Goedgepickt:
mutation {
setOrderCustomFields(
input: {
customFields: {
pickupLocationNumber: "1234"
pickupLocationCarrier: "1"
pickupLocationName: "Local shop"
pickupLocationStreet: "Shopstreet"
pickupLocationHouseNumber: "13"
pickupLocationZipcode: "8888HG"
pickupLocationCity: "Leeuwarden"
pickupLocationCountry: "nl"
}
}
) {
... on Order {
id
code
}
... on NoActiveOrderError {
errorCode
message
}
}
}Monitoring and Alerting
You should monitor your server logs for the message Failed to process job sync-order with severity WARNING. This means an order was not pushed to GoedGepickt. Depending on your job queue implementation this will be retried.
In Google Cloud, we create an alert for the following log query:
severity>=WARNING
"Failed to process job sync-order"