Configuring Jungle For Your Organisation

Configuring Jungle For Your Organisation

To begin using Jungle you will need to decide on and implement some base configuration for your organisation.

At a minimum Jungle requires your account to be setup with 1 Top Level Location, One Child Location, and at least 1 Product.

This is so you can use basic functionality like picking, packing, and inventory storage with the handheld app.

This guide presents a simplified example for how to setup a basic warehouse. To complete it you will need to have read and understood:

  • API Keys: A guide on using the API and obtaining keys

Create your locations

Get started by creating a top level location for your main warehouse using a graphql mutation.

mutation ($input: LocationCreateInput!) {
  locationCreate(input: $input) {
    location {
      id
      name
    }
  }
}

Once this has been complete let's tag this location with some capabilities. Capabilities are tags on a location that tell Jungle what it is allowed to do Ie: pick, pack, ship, store...

We will want the following two capabilities setup on our location to get started;

  • ship: Product can be shipped from this location

Go ahead an tag your new location with these capabilities;

mutation {
  capabilitiesSet(input: { capabilityIds: ["ship"], object: { id: "your_parent_location_id", typename: "Location" } }) {
    ok
  }
}

Next lets setup a child location. Your top level location should correlate to the physical address of your warehouse. Think 123 Sesame Street, NY, USA. The child location refers to a sub-location within the parent, so Shelf A might be the name of the shelf inside your warehouse where you store your product.

Lets go ahead and create Shelf A as our child location for storing inventory on.You will need to ID of the parent location yu created in the previous step:

mutation {
  locationCreate(input: { name: "Shelf A", parentId: "your_child_location_id" }) {
    location {
      id
      name
    }
  }
}

Give the child location the following capabilities:

  • store: Stock (inventory) can be stored in this location
mutation {
  capabilitiesSet(input: { capabilityIds: ["store"], object: { id: "your_child_location_id", typename: "Location" } }) {
    ok
  }
}

You can read up more about locations, configuring them, and associated concepts below:

Creating Products

Next you will need to create some products. Get started by adding one:

mutation {
  productCreate(input: { barcode: "F62545", name: "Classic Fruit Bowl" }) {
    ok
    ... on MutationSuccess {
      objects {
        id
        typename
      }
    }
    ... on MutationFailure {
      code
      reason
    }
  }
}

Then give it a SKU:

mutation {
  productSetSku(input: { productId: "F62545", sku: "F62545" }) {
    ok
  }
}

Great! You now have both a basic location and a product configured. There's much more you could configure, but at a minimum this is all you need to get started with to use Jungle's features. To learn more about products and configuring them see the following resources:

Tracking Stock (Inventory)

You now have both a product and location setup, let's do some warehousing! What follows is a simplified guide on how one might begin using Jungle inside a warehouse.

Typically after you have setup your locations and products in Jungle you will want to begin by tracking all your inventory. This can be done by cycle counting your existing inventory into the Jungle system using the Jungle App or using the Jungle API to set inventory for a given SKU.

mutation {
  inventorySetAtLocation(input: { locationId: "your_child_location_id", items: [{ sku: "F62545", quantity: 50 }] }) {
    ok
  }
}

Creating Orders

Now that there is some stock in the system it can be shipped! Typically you will achieve this by pushing orders from your web-shop to Jungle using one of our pre-built integrations however for the purposes of this example it can be done manually by the API:

mutation {
  orderConsumeWithAllocations(
    input: {
      billingAddress: {
        contactPerson: { name: "King Kong" }
        countryCode: "AU"
        lines: ["1 Daintree Lane"]
        postalCode: "2333"
        region: "QLD"
        suburb: "Cape Tribulation"
      }
      allocations: [
        { locationId: "your_parent_location_id", method: SHIP, lineItems: [{ quantity: 2, sku: "F62545" }] }
      ]
      reference: "your_order_reference"
      orderedAt: "now"
    }
  ) {
    orderId
  }
}

You can read more about pushing orders and shipping methods in the following resources:

Fulfilment

Once we have an order allocated in the system we can go about fulfilling it. In Jungle there exist various fulfilment methods and in our example we have chosen to SHIP our product using a transport provider.

Lets open the web app and inspect the order

An allocated order can be found in the order list page by searching for its reference or scrolling through.

We can click into it and edit its fulfilment location and methods as we like.

An order is typically fulfilled by a warehouse operator who picks and packs the order using the Jungle App on a mobile scanning device.

For more information on fulfilment methods such as click and collect, manual fulfilment, and auto selection see the following resources:

Fill 1

Can't find what you're looking for?

Contact Us