Ekom.Shipping.Dropp
0.1.1
dotnet add package Ekom.Shipping.Dropp --version 0.1.1
NuGet\Install-Package Ekom.Shipping.Dropp -Version 0.1.1
<PackageReference Include="Ekom.Shipping.Dropp" Version="0.1.1" />
<PackageVersion Include="Ekom.Shipping.Dropp" Version="0.1.1" />
<PackageReference Include="Ekom.Shipping.Dropp" />
paket add Ekom.Shipping.Dropp --version 0.1.1
#r "nuget: Ekom.Shipping.Dropp, 0.1.1"
#:package Ekom.Shipping.Dropp@0.1.1
#addin nuget:?package=Ekom.Shipping.Dropp&version=0.1.1
#tool nuget:?package=Ekom.Shipping.Dropp&version=0.1.1
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.
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"
}
}
}
}
}
}
Register the package with services.AddDroppShipping(configuration). Set the
Ekom shipping provider properties to carrier alias dropp, the configured
account name, and service pickup or home-delivery.
FulfillmentMode defaults to Manual. Set it to Automatic to create a
shipment during CheckoutEvents.CompleteCheckoutAsync.
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 | Versions 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. |
-
net8.0
- Ekom.Shipping.Core (>= 0.1.1)
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.1 | 29 | 9/12/2026 |