Image 1 of 1

MyParcel.nl

Product information

By Pinelab

Print shipping labels for your orders via MyParcel.nl

npm install @pinelab/vendure-plugin-myparcel
Support by
Support languages
en
nl
Integration type
Partner
Category
Shipping
Compatible with
^2.0.0
Latest version
1.3.0
Last published
Jun 25, 2024
Downloads in past month
173

Vendure MyParcel Plugin

Official documentation here

Plugin for sending placed orders to MyParcel.

Getting started

  1. Add this to your plugins in vendure-config.ts:
import { MyparcelPlugin } from '@pinelab/vendure-plugin-myparcel';

plugins: [
  MyparcelPlugin.init({
    vendureHost: 'https://your-vendure-host.io',
    syncWebhookOnStartup: true, // If you want to automatically set vendureHost as webhook on MyParcel account
  }),
  ...
]
  1. Add MyparcelPlugin.ui to your AdminUiPlugin extensions:
import { MyparcelPlugin } from '@pinelab/vendure-plugin-myparcel';

plugins: [
  AdminUiPlugin.init({
    port: 3002,
    route: 'admin',
    app: compileUiExtensions({
      outputPath: path.join(__dirname, '__admin-ui'),
      extensions: [MyparcelPlugin.ui],
    }),
  }),
];

Read more about Admin UI compilation in the Vendure docs

  1. Start Vendure and go to Settings > MyParcel and fill in your MyParcel API key.
  2. Create a shipmentMethod with MyParcel fulfillment.
  3. Place an order and select the shippingMethod.
  4. Go to the Admin UI and click on fulfill
  5. Your shipment should be in your MyParcel account.

Customs information for shipments outside the EU

MyParcel requires additional customs information for shipments outside the EU. When you ship outside the EU, you should implement the getCustomsInformationFn when initializing the plugin:

MyparcelPlugin.init({
  vendureHost: 'https://your-vendure-host.io',
  getCustomsInformationFn: (orderItem) => {
    return {
      weightInGrams: (orderItem.line.productVariant.product.customFields as any)
        .weight,
      classification: (
        orderItem.line.productVariant.product.customFields as any
      ).hsCode,
      countryCodeOfOrigin: 'NL',
    };
  },
});

You can find more information about the classification codes here.

Custom shipment strategy

If you want more control over the data that is send over to MyParcel, then you can implement a custom shipmentStrategy.

The shipment strategy needs to implement MyParcelShipmentStrategy and should containt the getShipment method. This method returns the shipment object for MyParcel API reference

If you only need to change the recipient or the options, you can extend the MyParcalDefaultShipmentStrategy and overwrite the method you need.

  • getOptions
  • getRecipient
class CustomShipmentStrategy extends MyParcalDefaultShipmentStrategy {
  getShipment(address: OrderAddress, order: Order, customsContent: string) {
    const shipment: MyparcelShipment = {
      carrier: 2, //bpost. Only available on sendmyparcel.be
      reference_identifier: order.code,
      options: this.getOptions(address, order, customsContent),
      recipient: this.getRecipient(address, order, customsContent),
    };

    return shipment;
  }
}

Pass you strategy to the MyparcelPlugin config.

MyparcelPlugin.init({
  vendureHost: 'https://your-vendure-host.io',
  shipmentStrategy: new CustomShipmentStrategy(),
});

getCustomsInformationFn will still be processed after the custom shipment strategy

Vendure
Get started

Create your first commerce experience with Vendure in less than 2 minutes

Vendure is a registered trademark. Our trademark policy ensures that our brand and products are protected. Feel free to reach out if you have any questions about our trademarks.

Newsletter

Get the latest product news and announcements delivered directly to your inbox.

© Copyright 2022 - 2024, Vendure GmbH. All rights reserved.