Legacy platform

Ship orders

A store associate should be able to confirm the shipment of packages through the designated carrier service.

Solution

The following section describes APIs, user exits, services, and other components.

A store associate can start the ship orders process from the "More Tasks" portlet in the Order Fulfillment view.

Ship Orders
When the store associate clicks the Ship Orders link in the More Tasks portlet, the Ship Orders portlet is displayed from where the store associate can start shipping packages. The portlet displays the next carrier and the number of packages to be picked up by the carrier. To get the carriers arriving to pick up the packages and the count of packages, the getShipmentContainerList API is called. The store associate can click the count on the portlet that indicates the number of packages that are ready for shipping. Packages of partially packed shipments are not included in the count.

On clicking the package count on the portlet, the Ship Packages screen is displayed. The getShipmentContainerList API is called to return the shipments grouped by carriers and the number of packages to be picked up is displayed for each carrier. A logic is applied to ensure that packages without a carrier or scac are not considered for the package count. When the store associate clicks the package count corresponding to a carrier, the package details are extracted and displayed for each of the packages in a readable format. This includes the number of products, weight, order number, shipping date and so on.

When the store associate clicks Confirm, the getShipmentList API is called and based on the value of ScacIntegrationRequired attribute in the API output, the following logic is executed:
  • If the value is Y, the addAllContainersToManifest API is called to add all the packages of a SCAC to manifest. The addAllContainersToManifest calls the following APIs:

    The getShipmentContainerList API is called to get all packages and details based on Enterprise, SCAC, ShipmentConfirmUpdatesDone="N" and IsPackProcessComplete="Y", and ShipNode

    The addContainerToManifest API is called for packages only if IsManifested=N. The output of addAllContainersToManifest API is a map of distinct manifests:
    <FailedContainers TotalFailures="">
     <DistinctManifestList TotalNumberOfRecords="">
            <Manifest ManifestKey=""/>
        </DistinctManifestList>
    </FailedContainers>

    The CloseManifest API is called on each of the ManifestKeys returned by the addAllContainersToManifest API.

  • If the value is N, then the confirmShipment API is called to confirm the shipment.
Notes:
  • Shipping packages from the user interface involves the closeManifest API call, which takes considerable amount of time. To improve performance, the closeManifest API is called asynchronously. To call the closeManifest API asynchronously, complete the following steps:
    • Set the yfs.closemanifest.online property to N. Call the CLOSE_MANIFEST transaction, which changes the manifest status to ‘Closure Requested’ and then triggers an agent.
    • Configure the YDMCloseManifestAgent time-triggered agent for the CLOSE_MANIFEST transaction and start the agent. You must create an agent criteria for the ship node, associate it to an agent server, and start the agent server.
  • For all shipments that are shipped by a carrier, the ScacIntegrationRequired attribute should have the same value, either Y or N. If the attribute has a different value for few shipments shipped by the same carrier, the feature may not function as expected.
  • Packages for transfer order shipments are also listed. The store associate can ship them in the same way as sales order shipments.

Device specific details

Not applicable.

Implementation

You must enable the Add Container To Manifest modification type for Packed status. For more information about configuring Modification Types for shipments, see Defining status modification rules.

The store associate must have the Ship Order resource permission to ship packages. For more information about administering user group permissions, see Administering user group permissions.

You must enable Package Level Integration for a carrier service. For more information, see Defining carrier services for parcel shipments. You must not toggle between Shipment Level Integration and Package Level Integration as the behavior of the feature changes entirely and you cannot ship packages successfully.

For information on how to configure the yfs.closemanifest.online property, see Close manifest. You can add this property to the contents of customer_overrides.properties file that is present in your customization jar.

For more information about property management on cloud environment, see Property management guidelines.

For more information about the APIs, see IBM® Sterling Order Management System: Javadoc™.