Stateset Supplier Management Quickstart: Optimize Your Supply Chain

Imagine you’re a growing business dealing with multiple suppliers. Keeping track of their performance, managing orders, and ensuring timely deliveries can quickly become overwhelming. Stateset’s Supplier Management tools are designed to help you regain control, streamline your operations, and build stronger supplier relationships.

This quickstart guide will walk you through the essentials of using Stateset to:

  • Evaluate and Select the Right Suppliers: Make data-driven decisions by comparing supplier performance and alternatives.
  • Optimize Inventory: Maintain optimal stock levels and avoid costly stockouts or overstock.
  • Streamline Purchase Orders: Create, manage, and track POs to ensure timely procurement.
  • Improve ASN Management: Handle incoming shipments efficiently, reconcile receipts, and minimize discrepancies.
  • Gain Data-Driven Insights: Utilize advanced analytics to identify areas of improvement and optimize performance.

Table of Contents

  1. The Challenge of Supply Chain Management
  2. Getting Started with Stateset
  3. Core Concepts: Managing Suppliers with Stateset
  4. Optimizing Inventory with Stateset
  5. Streamlining Procurement with Purchase Orders
  6. Ensuring Seamless Receiving with Advanced Shipping Notices (ASNs)
  7. Gaining Insights with Advanced Analytics
  8. Next Steps & Support
  9. Quick Links

1. The Challenge of Supply Chain Management

Before we dive into the tools, let’s acknowledge the challenges you might be facing:

  • Supplier Performance: How do you ensure your suppliers are delivering quality products on time?
  • Inventory Levels: How do you balance having enough stock without overspending on storage?
  • Order Tracking: How do you keep track of your orders and ensure they’re fulfilled correctly?
  • Data Overload: How do you turn the raw data into actionable insights to improve your operations?

Stateset helps you tackle these challenges with its powerful supplier management features.


2. Getting Started with Stateset

Let’s get your environment set up so you can start using Stateset.

1. Account Setup

First, you’ll need a Stateset account and an API key.

  1. Sign Up: Visit stateset.com to create your free account.
  2. Access Cloud Console: After signing in, go to the Stateset Cloud Console.
  3. Generate API Key: Create a new API key - you’ll use this to authenticate your API requests.

2. SDK Installation

Next, install the Stateset Node.js SDK to simplify interactions with the API.

Using npm:

npm install stateset-node

Using yarn:

yarn add stateset-node

3. Client Initialization

Finally, initialize the Stateset client in your application using your API key.

import { stateset } from 'stateset-node';

// Initialize with your API key
const client = new stateset(process.env.STATESET_API_KEY);

// Verify connection
async function verifyConnection() {
  try {
    const status = await client.system.healthCheck();
    console.log('Connection status:', status);
  } catch (error) {
    console.error('Failed to connect:', error);
  }
}

verifyConnection();

Actionable Next Step: Save your API key and ensure the connection is successful.


3. Core Concepts: Managing Suppliers with Stateset

Now that your environment is set up, let’s dive into the core supplier management features.

Adding and Managing Suppliers

You can create a new supplier in Stateset with just a few lines of code. Here’s an example:

const supplier = await client.suppliers.create({
  name: "Acme Manufacturing",
  contact: {
    email: "supplier@acme.com",
    phone: "+1-555-0123"
  },
  metrics: {
    risk_score: 6.5,
    quality_rating: 99.7,
    on_time_performance: 95.0
  },
  financial: {
    cost_savings_ytd: 1200000,
    payment_terms: "NET30"
  }
});

console.log('New supplier created:', supplier);

Walkthrough:

  • client.suppliers.create(): This is the method to create a new supplier.
  • name, contact, metrics, financial: These are key properties for each supplier, including performance data and contact information.

Once you’ve added a supplier, you can update their performance metrics dynamically:

await client.suppliers.update(supplier.id, {
  metrics: {
    quality_rating: 99.9,
    quality_rating_change: +0.2,
    on_time_performance: 93.0,
    on_time_performance_change: -2.0
  }
});

console.log('Supplier metrics updated successfully.');

Benefits:

  • Centralized supplier information.
  • Easy performance tracking and updates.
  • Data-driven approach to supplier selection.

Actionable Next Step: Try creating a new supplier using the above code example.

Evaluating Alternative Suppliers

Stateset allows you to compare alternative suppliers for a specific part. Imagine you need to decide who to buy from for a specific component.

const alternativeSuppliers = await client.suppliers.getAlternatives({
  part_number: "ACM-2024-X",
  quantity_needed: 243,
  delivery_location: "CA-LAX",
  required_by_date: "2024-12-31"
});

console.log('Alternative suppliers:', alternativeSuppliers);

What you get back:

[
  {
    "supplier_id": "sup_123",
    "supplier_name": "Acme Manufacturing",
    "metrics": {
      "unit_price": 208.00,
      "lead_time_days": 7,
      "total_cost": 50544.00,
      "estimated_delivery": "2024-10-08",
      "price_category": "Moderately Expensive",
      "reliability_score": 0.95
    }
  },
  {
    "supplier_id": "sup_124",
    "supplier_name": "Venture Industries",
    "metrics": {
      "unit_price": 206.00,
      "lead_time_days": 5,
      "total_cost": 49980.00,
      "estimated_delivery": "2024-10-03",
      "price_category": "Moderately Expensive",
      "reliability_score": 0.98
    }
  }
]

Benefits:

  • Data-driven supplier decisions based on cost, lead time, reliability, and more.
  • Ability to quickly compare suppliers and optimize sourcing.
  • Reduced risks with increased supplier competition.

Actionable Next Step: Explore the response object and understand the key metrics.


4. Optimizing Inventory with Stateset

Now, let’s shift our focus to managing your inventory.

Safety Stock Monitoring

Stateset helps you maintain optimal inventory levels by monitoring safety stock.

const safetyStock = await client.inventory.getSafetyStockLevels({
  warehouse_id: "wh_main",
  categories: ["electronics", "mechanical"]
});

console.log('Current safety stock levels:', safetyStock);

Walkthrough:

  • client.inventory.getSafetyStockLevels(): This retrieves your current safety stock levels.
  • warehouse_id, categories: You can specify which warehouse and item categories to get data for.

Stateset also lets you configure alerts when inventory levels drop.

await client.alerts.create({
  name: "Low Safety Stock Alert",
  type: "safety_stock",
  conditions: {
    threshold_percentage: 75,
    calculation_method: "moving_average",
    measurement_period: "7d"
  },
  notifications: {
    channels: ["email", "slack"],
    recipients: ["inventory@stateset.com"],
    slack_webhook: "https://hooks.slack.com/services/stateset/"
  }
});

console.log('Stock alert configured successfully.');

Benefits:

  • Automated stock monitoring reduces manual effort.
  • Proactive alerts minimize the risk of stockouts.
  • Optimized inventory levels reduce storage costs.

Actionable Next Step: Check out the safety stock levels for your items and configure alerts.

Real-time KPI Monitoring

Stateset provides real-time KPIs to track your inventory performance.

const kpis = await client.kpis.get({
  timeframe: "last_12_months",
  metrics: ["inventory_turns", "carrying_cost", "stockouts"],
  groupBy: "category"
});

console.log('KPI Dashboard:', kpis);

Sample KPI Response:

{
  "summary": {
    "open_pos_without_asns": 54,
    "asns_in_transit": {
      "count": 127,
      "change": "+5%",
      "trend": "increasing"
    },
    "late_shipments": {
      "count": 2,
      "change": "-50%",
      "trend": "improving"
    },
    "parts_at_risk": 8
  },
  "metrics": {
    "inventory_turns": {
      "current": 12,
      "target": 15,
      "trend": "stable"
    }
  }
}

Benefits:

  • Real-time data for informed decisions.
  • Insights into key metrics like inventory turns, carrying costs, and stockouts.
  • Better planning and risk management.

Actionable Next Step: Examine your own KPIs to assess your current inventory performance.


5. Streamlining Procurement with Purchase Orders

Stateset lets you streamline your procurement process by managing purchase orders.

Creating and Tracking Purchase Orders

Here’s how you create a new purchase order:

const po = await client.purchaseOrders.create({
  supplier_id: supplier.id,
  items: [{
    part_number: "ACM-2024-X",
    quantity: 243,
    unit_price: 208.00,
    required_by: "2024-10-08"
  }],
  shipping: {
    method: "ground",
    address: {
      street: "123 Main St",
      city: "Los Angeles",
      state: "CA",
      zip: "90001",
      country: "USA"
    }
  }
});

console.log('Purchase order created:', po);

You can then track the purchase order status:

const poStatus = await client.purchaseOrders.getStatus(po.id);
console.log('Purchase Order Status:', poStatus);

Benefits:

  • Centralized purchase order management.
  • Easy tracking and status updates.
  • Reduced manual effort and improved accuracy.

Actionable Next Step: Try creating a PO using the code above.


6. Ensuring Seamless Receiving with Advanced Shipping Notices (ASNs)

ASNs play a crucial role in managing incoming shipments.

Creating ASNs

Use Stateset to easily create new ASNs:

const asn = await client.asn.create({
  po_number: "PO-2024-1234",
  supplier_id: "sup_123",
  expected_delivery: "2024-10-08T14:00:00Z",
  shipping_method: "ground",
  carrier: "FedEx",
  tracking_number: "794613882378",
  items: [
    {
      line_item_id: "li_789",
      part_number: "ACM-2024-X",
      quantity: 150,
      unit_of_measure: "EA",
      lot_number: "LOT-2024-001",
      serial_numbers: ["SN001", "SN002", "SN003"]
    }
  ],
  shipping_details: {
    from_address: {
      name: "Acme Manufacturing",
      street: "123 Supplier St",
      city: "Los Angeles",
      state: "CA",
      zip: "90001",
      country: "USA"
    },
    to_address: {
      name: "Main Warehouse",
      street: "456 Warehouse Blvd",
      city: "Storage City",
      state: "SC",
      zip: "67890",
      country: "USA"
    }
  }
});

console.log('ASN created:', asn);

Tracking and Updating ASNs

You can monitor ASN status and update it upon receipt:

const asnStatus = await client.asn.getStatus(asn.id);
console.log('ASN Status:', asnStatus);

await client.asn.update(asn.id, {
  status: "received",
  received_date: "2024-10-08T13:45:00Z",
  received_by: "John Doe",
  received_quantities: [
    {
      line_item_id: "li_789",
      received_quantity: 150,
      damaged_quantity: 0,
      notes: "All items received in good condition"
    }
  ]
});

console.log('ASN updated to received.');

ASN Reconciliation

Finally, reconcile the ASN to ensure everything matches:

const reconciliation = await client.asn.reconcile(asn.id, {
  po_number: "PO-2024-1234",
  reconciliation_type: "receipt",
  verification_details: {
    quantity_verified: true,
    quality_checked: true,
    documentation_complete: true
  }
});

console.log('Reconciliation result:', reconciliation);

if (reconciliation.discrepancies) {
  await client.asn.createDiscrepancyReport({
    asn_id: asn.id,
    po_number: "PO-2024-1234",
    discrepancies: reconciliation.discrepancies,
    resolution_actions: [
      {
        type: "quantity_adjustment",
        details: "Short shipment - updating inventory records",
        adjusted_quantity: -5
      }
    ]
  });

  console.log('Discrepancy report created.');
}

Benefits:

  • Efficient tracking of incoming shipments.
  • Reduced receiving errors through reconciliation.
  • Streamlined handling of discrepancies.

Actionable Next Step: Try creating and managing an ASN using these examples.


7. Gaining Insights with Advanced Analytics

Use Stateset’s analytics to gain deeper insights into your supply chain.

Performance Tracking

Monitor supplier and ASN performance:

const performance = await client.analytics.getSupplierPerformance({
  supplier_id: supplier.id,
  metrics: [
    "delivery_accuracy",
    "quality_trends",
    "cost_effectiveness"
  ],
  timeframe: {
    start: "2024-01-01",
    end: "2024-10-31"
  }
});

console.log('Supplier Performance Analytics:', performance);

const asnMetrics = await client.analytics.getAsnMetrics({
  timeframe: "last_30_days",
  metrics: [
    "on_time_delivery",
    "quantity_accuracy",
    "documentation_accuracy",
    "damage_rate"
  ],
  group_by: ["supplier", "carrier"]
});

console.log('ASN Performance Metrics:', asnMetrics);

Benefits:

  • Data-driven decisions to optimize supply chain performance.
  • Ability to identify areas of improvement for suppliers and ASNs.

Actionable Next Step: Use the performance tracking methods to identify areas where you can improve.


8. Next Steps & Support

You’ve now explored the core components of Stateset’s Supplier Management. Here’s what you should do next:

  • Dive Deeper: Explore the Stateset API documentation for more details on each feature.
  • Implement in Your Project: Start integrating these concepts into your own projects and workflows.
  • Community Support: Ask questions and share your experiences on the Stateset community forum.

By following this guide, you should be well-equipped to harness the full potential of Stateset’s Inventory and Supplier Management features. Implement these practices to enhance your supply chain efficiency, maintain strong supplier relationships, and achieve optimal inventory control.