Ekom.Shipping.Dropp 0.1.2

dotnet add package Ekom.Shipping.Dropp --version 0.1.2
                    
NuGet\Install-Package Ekom.Shipping.Dropp -Version 0.1.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ekom.Shipping.Dropp" Version="0.1.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ekom.Shipping.Dropp" Version="0.1.2" />
                    
Directory.Packages.props
<PackageReference Include="Ekom.Shipping.Dropp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ekom.Shipping.Dropp --version 0.1.2
                    
#r "nuget: Ekom.Shipping.Dropp, 0.1.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ekom.Shipping.Dropp@0.1.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ekom.Shipping.Dropp&version=0.1.2
                    
Install as a Cake Addin
#tool nuget:?package=Ekom.Shipping.Dropp&version=0.1.2
                    
Install as a Cake Tool

Ekom.Shipping.Dropp

Dropp checkout and fulfillment integration for Ekom. The package supports pickup locations, home-delivery availability, shipment creation and management, labels, extra packages, returns, and tracking.

Installation

For Dropp with Ekom on Umbraco 17:

dotnet add package Ekom.Shipping.Dropp
dotnet add package Ekom.Shipping.U17

Use Ekom.Shipping.U10 for Umbraco 13 or Ekom.Shipping.U18 for Umbraco 18. You do not need to install Ekom.Shipping or Ekom.Shipping.Core separately. Then register Dropp with services.AddDroppShipping(configuration).

For standalone Dropp API access without Ekom integration, install only Ekom.Shipping.Dropp.

Official Dropp API documentation

  • Dropp API documentation
  • Production API base URL: https://api.dropp.is/dropp/api/v1/
  • Staging API base URL: https://stage.dropp.is/dropp/api/v1/
  • Production access: create a Dropp account
  • Staging credentials and store ID: contact dropp@dropp.is

Dropp uses Authorization: Basic YOUR-TOKEN. Treat the API key as a secret and keep it in application configuration.

Configuration

{
  "Ekom": {
    "Shipping": {
      "Dropp": {
        "Accounts": {
          "dropp-main": {
            "ApiUrl": "https://api.dropp.is/dropp/api/v1/",
            "ApiKey": "use-a-secret-provider",
            "StoreId": "your-store-id",
            "FulfillmentMode": "Manual",
            "CacheDuration": "06:00:00"
          }
        }
      }
    }
  }
}

Umbraco provider node

Set these properties on the Ekom shipping provider node:

Property Value
shippingCarrierAlias dropp
shippingCarrierAccount The configured account name, for example dropp-main
shippingCarrierService pickup or home-delivery

FulfillmentMode defaults to Manual. Set it to Automatic to create a shipment during CheckoutEvents.CompleteCheckoutAsync.

Public pickup locations

With an Ekom.Shipping.U* adapter installed, checkout UIs can load the configured provider's cached Dropp locations without a custom controller:

GET /ekom/shipping/providers/{providerKey}/pickup-locations?storeAlias=main&countryCode=IS&postalCode=101

providerKey is the Ekom shipping provider node key. Dropp locations use the account's CacheDuration, which defaults to six hours.

Supported API operations

Inject IDroppShippingService for direct access:

Operation Method
List pickup locations GetPickupLocationsAsync
List delivery services for a destination GetServicesAsync
Get home-delivery and Flytjandi postal codes GetDeliveryPostalCodesAsync
Reserve an order barcode ReserveBookingReferenceAsync
Create an Ekom-neutral shipment CreateShipmentAsync
Create a complete Dropp order CreateOrderAsync
Get a Dropp order GetOrderAsync
Update an initial Dropp order UpdateOrderAsync
Delete an order before collection DeleteOrderAsync
Get a shipping label GetLabelAsync
Get a return label GetReturnLabelAsync
Create an extra-package barcode and label CreateExtraPackageLabelAsync
Delete an extra order DeleteExtraOrderAsync
Get tracking JSON GetTrackingAsync
var order = await dropp.GetOrderAsync("dropp-main", droppOrderId, cancellationToken);

await dropp.UpdateOrderAsync(
    "dropp-main",
    droppOrderId,
    new DroppUpdateOrderRequest(Barcode: "ORDER-NEW"),
    cancellationToken);

await dropp.DeleteOrderAsync("dropp-main", droppOrderId, cancellationToken);

For advanced creation, DroppCreateOrderRequest exposes DayDelivery, Comment, and ReturnOrder. Email address and social-security number are optional; name, address, phone number, postal code, town, location, value, and at least one valid product are validated before submission.

DroppShippingDefaults.HomeDeliveryLocationId and DroppShippingDefaults.SamskipLocationId expose the fixed location IDs listed in Dropp's documentation.

Ekom order management

IShippingFulfillmentService keeps Ekom fulfillment state synchronized and is preferred when managing a shipment belonging to an Ekom order. Created shipments expose these order-manager actions:

  • Print shipping label
  • View shipment JSON
  • Delete shipment

Deletion first checks the current Dropp status. Dropp only allows deletion before collection while the order is initial. A confirmed deletion is retained as a tombstone on the Ekom order and is not automatically recreated.

Direct calls to update or delete a Dropp order bypass Ekom state management. Use them only when the application also owns the corresponding synchronization.

Mutation safety

Dropp does not document POST, PATCH, DELETE, extra-package, or extra-order operations as idempotent. Network failures and ambiguous server responses throw ShipmentOutcomeUnknownException; do not blindly retry them. The built-in Ekom orchestration records uncertain creation and deletion outcomes in the order's ShippingProvider.CustomData.

The built-in per-order lock is process-local. Multi-node sites must provide a distributed order lock before enabling automatic fulfillment.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.2 0 9/14/2026
0.1.1 35 9/12/2026