Skip to main content

Load a retailer's stores and distribution centers

Retailers name their delivery points in different ways. Some send a full ship-to address on every purchase order. Others send only a store or distribution center code, and some send no address at all. Load each retailer's locations before its first purchase order arrives, and SKU.io can always work out where the order ships.

There are two places to load them:

What the retailer sendsLoad it into
A location code with no address, such as a store number on each lineThe connection's Location directory: one row per code, with its address
A full ship-to address, sometimes with a location numberThe retailer customer's Addresses: one address per distribution center or store

Many retailers need both.

Before you begin​

  • Connect SPS Commerce.
  • Get the retailer's location list. Retailers publish it on their vendor portal or in their EDI onboarding pack. You need each location's code, name and address.
  • Find the retailer's trading partner ID. A retailer that has already sent you a purchase order is listed under it on the connection's Settings tab.
  • To add addresses to the retailer's customer, link the retailer to its customer first. See Link SPS retailers to customers.

Load the location list​

  1. Go to Apps & Integrations, search for SPS, and choose SPS Commerce.
  2. Open your connection, then click Settings.
  3. Scroll to the Location directory card. It lists every code you've loaded, with the retailer it belongs to.
  4. Click Template. SKU.io downloads a CSV with the columns and one example row.
  5. Fill in one row for each store or distribution center. See the columns below.
  6. Click Import CSV and choose your file. SKU.io says what it did, for example Imported: 1 added, 0 updated, 3 unchanged. When purchase orders were waiting for one of the codes, it adds 1 waiting purchase order retried.

The Location directory card with three of a retailer's store codes

The location list's columns​

Each row is one location for one retailer. Keep the headers exactly as the template has them: they are the column names below.

ColumnRequiredWhat to enter
trading_partner_idYesThe retailer's trading partner ID
location_codeYesThe store or distribution center code the retailer sends, for example 0569
nameYesThe location's name, for example Harbor Store 569
address1YesStreet address
address2NoSuite, dock or building
cityYesCity
stateFor US addressesState or province
zipYesZIP or postal code
countryNoTwo- or three-letter country code, such as US or USA. Leave it blank for the United States

Codes belong to one retailer. Harbor Department Stores' 0569 and another retailer's 0569 are separate rows. A file can hold up to 5,000 rows and 5 MB.

Spreadsheet apps often drop a code's leading zeros. SKU.io still matches a purchase order's code to the shortened one in your list, as long as no other code matches.

What an import changes​

An import adds new codes and updates a row that has the same trading partner ID and location code. Codes that aren't in the file stay in the directory, so you can import a list in parts.

If any row has a problem, SKU.io imports nothing. The card says Nothing was imported — fix these rows and upload the file again. and lists every problem by line, for example Line 2: The city field is required. Fix the rows and import the file again.

An import that was refused, with each problem listed by line

To change many locations at once, click Export CSV, edit the file, and import it back.

Add one location by hand​

  1. On the Location directory card, click Add location.
  2. Choose the Trading partner ID, and fill in the Location code, Name and address.
  3. Click Save.

To change a location, click its code. To remove one, click the bin. Orders that already have a sales order keep their address.

What happens when a purchase order arrives​

  • It has a ship-to address. SKU.io uses that address as sent, and doesn't look in the directory.
  • It has a ship-to location code but no address. SKU.io uses the directory's address for that code.
  • It has no ship-to, and every line ships to the same store. SKU.io uses that store's address.
  • It has no ship-to, and its lines ship to several stores. SKU.io creates one sales order per store. See When a purchase order ships to several stores.
  • A code isn't in the directory. The purchase order is Failed, with a message that names the code, for example Ship-to location "0611" (the store every line on this order ships to) from trading partner HARBORDEPT01 isn't in your location directory…. No acknowledgment is sent yet. Add the code, by hand or by import, and SKU.io retries the order on its own. You can also click Retry on the purchase order.

The address SKU.io fills in goes on the sales order, the ship notice, the invoice and the carton labels.

When a purchase order ships to several stores​

Some retailers send no ship-to at all, and list a quantity for each store on every line instead. A sales order has one shipping address, so SKU.io creates one sales order for each store:

  • Each order's number is the purchase order number followed by the store code, for example HD-9001002-0569, HD-9001002-0584 and HD-9001002-0599. Its customer PO is the original purchase order number.
  • Each order ships to its store's name and address from the Location directory.
  • Each order holds that store's quantity of every line, and leaves off a line the store gets nothing of. The line's description ends with its store, for example — Store 0569.
  • You fulfill each store's order on its own. Its ship notice names the store as the ship-to, and its carton labels and invoice do too. Everything still reports against the original purchase order and its line numbers.
  • The retailer gets one acknowledgment for the whole purchase order.

On the connection's Purchase Orders page, the Sales Order column lists every store's order. Open the purchase order to see them under Sales orders (one per store), each labelled with its store.

A purchase order split into one sales order per store

SKU.io doesn't split the purchase order, and leaves it Failed with a message, when:

  • A store isn't in the directory. The message names the missing stores. Add them, by hand or by import, and the order is retried on its own.
  • A line's store quantities don't add up to what it orders. The message starts Ship-to location unclear and names the line. Create the store orders yourself, or ask the retailer to resend the purchase order.

A purchase order that has a ship-to, such as a distribution center, isn't split this way: it ships to that address as one sales order, with each store as a mark-for. See Ship multi-store purchase orders by store.

Add each distribution center to the retailer's customer​

When a retailer is linked to its customer, every purchase order from it becomes a sales order for that customer. Each new ship-to is added to the customer's addresses, and an address that's already there is reused.

The customer import creates one address per customer, so add a retailer's other distribution centers on the customer's page:

  1. Go to Contacts → Customers and open the retailer's customer, for example Cedar Books.
  2. Open the Addresses section.
  3. Click Add Address.
  4. In Address Label, enter Location followed by the retailer's location number, for example Location 0553. Each label must be unique on the customer.
  5. Fill in the Name and the address.
  6. Click Save.

Adding a distribution center's address, labelled with its location number

A purchase order whose ship-to carries that location number then uses the saved address, even when the order spells it differently or sends no address. If the order's ZIP code differs from the saved one, SKU.io treats it as a move: it keeps the order's address and saves it alongside.

Next steps​

Video transcript

Some retailers send only a store code on a purchase order, with no address. List each code with its address here, and those orders get their ship-to filled in for you. On your connection's Settings tab, the Location directory lists each retailer's codes. Download the template, and fill in one row for every store or distribution center. Then click Import CSV, and choose your file. Every row is checked first, and nothing is imported if one has a problem. Harbor Ballard is now on the list, and the other three stay as they were. An order was waiting for that store, so it's retried straight away. To see it, open Purchase Orders from the connection's menu on the left. The waiting order is now a sales order, shipping to Harbor Ballard. Next, open the order that lists a quantity for three stores, with no ship-to. For an order like this, one sales order is created for each store. Ship to reads each store's address, from your list. For a retailer that sends full addresses, link it to its customer. Each distribution center is one of the customer's addresses. Label it Location, then the retailer's number, and orders that carry that number use it.

Last verified: