Skip to main content
GlobaleRestrictedItemsFeed generates a restricted-items CSV from SFCC catalog data and uploads it to an SFTP folder configured in site preferences. Global-e retrieves the file from that location, classifies the restrictions, and returns the resulting product classification and restriction information to SFCC (imported by GlobaleProducts). This job is not part of metadata/jobs.xml; create it manually in Business Manager (see Creating the job). See also: Jobs overview, GlobaleCatalogFeed (catalog export), GlobaleProducts (restriction import), Restricted / forbidden products, Configuration.

Overview

The job processes each product created or modified since the last run and writes restriction details to a CSV file. That file is uploaded to a pre-defined SFTP folder hosted by the merchant or Global-e. A Global-e service watches the SFTP folder and processes each new and updated restricted item through its classification procedures. A separate Global-e job then queries the Global-e API to return product classification and restriction information to SFCC. The job has two steps:
  1. GenerateRestrictedItemsFeed — builds the CSV from site preference Restricted Items Feed Configuration (geRestrictedItemsFeedConfig) and writes it under IMPEX.
  2. UploadRestrictedItemsFeed — uploads that file from IMPEX to the configured SFTP folder so Global-e can retrieve it.

Creating the job

In Business Manager, create a new job with the ID GlobaleRestrictedItemsFeed and add the two custom steps above:
  • GenerateRestrictedItemsFeed — add custom step custom.GlobaleGenerateRestrictedItemsFeed.
  • UploadRestrictedItemsFeed — add custom step custom.GlobaleUploadRestrictedItemsFeed.
Assign the job flow only to Global-e operated sites. See Configuration → Scheduled Jobs for Business Manager setup.

Run in full export mode

When delta mode is enabled, the generate step processes only products whose lastModified system attribute changed since the last run. Price changes are stored on the PriceBook, not the Product, so products with updated prices are not picked up in delta mode. If your restriction logic depends on price-related conditions (see the Source Handler), always run the job in full export mode (deltaMode.processOnlyModifiedProducts = false).

Report requirements

The number of lines in the feed equals the number of SKUs, brands, or categories restricted per country:
  • One SKU restricted in one country → one line.
  • One SKU restricted in ten countries → ten lines.
  • Five SKUs, one brand, and one category restricted in two countries → twelve lines (two lines each).

Feed structure

The generated CSV has no header row. Columns are described below as spreadsheet columns (A, B, C, …) for clarity only. Exactly one of columns A, B, or C must be populated per line. In a mixed feed, restrict each product by only one type per line — e.g. SKU restrictions populate column A (B and C empty), category restrictions populate column C (A and B empty).

Variations (variation masters)

For configurable products (variation masters):
  • To restrict only some variations, list the SKUs of those variations.
  • To restrict all variations, list the SKUs of all variations and the master product SKU.

Restriction precedence

If at least one rule applies to a product (by SKU, brand, or category), the product is restricted:
  • If brand NIKE is restricted for all countries and SKU0001 (a Nike product) is not restricted in France, the brand rule wins — SKU0001 stays restricted everywhere, including France.
  • If brand NIKE is not restricted anywhere but SKU0001 is restricted in France, SKU0001 is restricted only in France.
  • If brand NIKE is restricted for all countries and category girl's shoes is not restricted anywhere, all girl’s-shoes products are unrestricted except those also in the Nike brand, which stay restricted everywhere.
  • If category girl's shoes is restricted for all countries and SKU0001 (a girl’s shoe) is not restricted in France, SKU0001 stays restricted everywhere, including France.
If a product is prohibited from being sold via Global-e, removing a per-country restriction for it has no effect — it remains restricted.

Examples

Standard SKU, brand, and category restrictions

Restrict SKU001 in China, Cuba, Denmark; SKU002 in China, Cuba; Brand001 in China, Cuba; Category001 in China, Cuba, Denmark, France; and remove the restriction of SKU003 in Brazil:

Configurable product restriction

A golf glove (master SKU0001) with size (S/M/L) and hand (L/R) variations: SKU0001SLH, SKU0001MLH, SKU0001LLH, SKU0001SRH, SKU0001MRH, SKU0001LRH. Restrict only left-hand gloves in China (3 variation SKUs): Restrict all golf gloves in China (6 variation SKUs plus the master SKU):

Country / state restrictions

Restrict SKU001 in all US states and SKU002 in NY and CA; remove the restriction for SKU003 in all US states and SKU004 in NY and CA:

Configuration

Feed settings are stored in site preference Restricted Items Feed Configuration (geRestrictedItemsFeedConfig) under Merchant Tools → Site Preferences → Custom Site Preference Groups → Global-e Catalog Jobs. Example configuration:

SFTP service credential

Set the SFTP credentials provided by Global-e in service credential Globale-SFTPRestrictionsFeedUpload (the credential ID referenced by sftpCredentialIDs): Administration → Operations → Services → Service Credentials → Globale-SFTPRestrictionsFeedUpload Contact Global-e for the URL, username, and password values.

Custom object GLOBALE_RESTRICTED_ITEMS

The custom object GLOBALE_RESTRICTED_ITEMS holds the configuration used to manage the brands, categories, and products scenarios. Import demo.customobjects.restricteditems.xml from the metadata folder to create three entities:
  • brands
  • categories
  • products
Each entity has two custom attributes:

Source Handler

Source Handler (sourceHandler) is used exclusively by the products scenario to resolve the list of country codes that should be restricted for a product. It must return a single comma-separated string of country codes, or ALL when all countries are restricted — for example "US,GB", "ALL", or "US_NY,US_CA" for state restrictions. Configure it on the GLOBALE_RESTRICTED_ITEMS custom object entity for the products scenario (Merchant Tools → Custom Objects → GLOBALE_RESTRICTED_ITEMS). For example, if the restricted countries are stored in a product custom attribute restrictedCountries, the Source Handler reads that attribute and returns the formatted string. If restrictions are stored in a different format, the Source Handler must convert them to the expected country-code string.
Price-related conditions. If the Source Handler uses price-related conditions, run the job in full export mode — price updates occur on the PriceBook (not the Product), so price-affected products are skipped in delta mode. See Run in full export mode.

Countries Exclusions

Countries Exclusions (countriesExclusions) is used by the brands and categories scenarios and stores the previous restricted-country values. You do not set this manually — the code populates it automatically once brand and category restrictions are applied to the generated file.

Hidden metadata

The job also uses these system object definitions, which are not assigned to any attribute group:
  • Restricted Items Last Run (geRestrictedItemsFeedLastRun) — site preference holding the timestamp of the last GlobaleRestrictedItemsFeed run.
  • Countries Exclusions (geCountriesExclusions) — product custom attribute holding the previous restricted-country values for the product (format "US,GB", "ALL", or "US_NY,US_CA" for state restrictions).