using Nop.Core; using Nop.Core.Domain.Catalog; using Nop.Core.Domain.Shipping; using Nop.Services.Shipping.Tracking; namespace Nop.Services.Shipping; /// /// Shipment service interface /// public partial interface IShipmentService { /// /// Deletes a shipment /// /// Shipment /// A task that represents the asynchronous operation Task DeleteShipmentAsync(Shipment shipment); /// /// Search shipments /// /// Vendor identifier; 0 to load all records /// Warehouse identifier, only shipments with products from a specified warehouse will be loaded; 0 to load all orders /// Shipping country identifier; 0 to load all records /// Shipping state identifier; 0 to load all records /// Shipping county; null to load all records /// Shipping city; null to load all records /// Search by tracking number /// A value indicating whether we should load only not shipped shipments /// A value indicating whether we should load only not ready for pickup shipments /// A value indicating whether we should load only not delivered shipments /// Order identifier; 0 to load all records /// Created date from (UTC); null to load all records /// Created date to (UTC); null to load all records /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the shipments /// Task> GetAllShipmentsAsync(int vendorId = 0, int warehouseId = 0, int shippingCountryId = 0, int shippingStateId = 0, string shippingCounty = null, string shippingCity = null, string trackingNumber = null, bool loadNotShipped = false, bool loadNotReadyForPickup = false, bool loadNotDelivered = false, int orderId = 0, DateTime? createdFromUtc = null, DateTime? createdToUtc = null, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Get shipment by identifiers /// /// Shipment identifiers /// /// A task that represents the asynchronous operation /// The task result contains the shipments /// Task> GetShipmentsByIdsAsync(int[] shipmentIds); /// /// Gets a shipment /// /// Shipment identifier /// /// A task that represents the asynchronous operation /// The task result contains the shipment /// Task GetShipmentByIdAsync(int shipmentId); /// /// Gets a list of order shipments /// /// Order identifier /// A value indicating whether to count only shipped or not shipped shipments; pass null to ignore /// A value indicating whether to load only ready for pickup shipments; pass null to ignore /// Vendor identifier; pass 0 to ignore /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task> GetShipmentsByOrderIdAsync(int orderId, bool? shipped = null, bool? readyForPickup = null, int vendorId = 0); /// /// Inserts a shipment /// /// Shipment /// A task that represents the asynchronous operation Task InsertShipmentAsync(Shipment shipment); /// /// Updates the shipment /// /// Shipment /// A task that represents the asynchronous operation Task UpdateShipmentAsync(Shipment shipment); /// /// Gets a shipment items of shipment /// /// Shipment identifier /// /// A task that represents the asynchronous operation /// The task result contains the shipment items /// Task> GetShipmentItemsByShipmentIdAsync(int shipmentId); /// /// Inserts a shipment item /// /// Shipment item /// A task that represents the asynchronous operation Task InsertShipmentItemAsync(ShipmentItem shipmentItem); /// /// Deletes a shipment item /// /// Shipment Item /// A task that represents the asynchronous operation Task DeleteShipmentItemAsync(ShipmentItem shipmentItem); /// /// Updates a shipment item /// /// Shipment item /// A task that represents the asynchronous operation Task UpdateShipmentItemAsync(ShipmentItem shipmentItem); /// /// Gets a shipment item /// /// Shipment item identifier /// /// A task that represents the asynchronous operation /// The task result contains the shipment item /// Task GetShipmentItemByIdAsync(int shipmentItemId); /// /// Get quantity in shipments. For example, get planned quantity to be shipped /// /// Product /// Warehouse identifier /// Ignore already shipped shipments /// Ignore already delivered shipments /// /// A task that represents the asynchronous operation /// The task result contains the quantity /// Task GetQuantityInShipmentsAsync(Product product, int warehouseId, bool ignoreShipped, bool ignoreDelivered); /// /// Get the tracker of the shipment /// /// Shipment /// /// A task that represents the asynchronous operation /// The task result contains the shipment tracker /// Task GetShipmentTrackerAsync(Shipment shipment); }