sanmar_sdk.ftp.catalog

SanMar’s product catalog files.

  • SanMar_SDL_N.csv (the SanMar Data Library) has one row per style, color and size, with descriptions, prices, image links and GTINs, but no inventory. Its _DI variant has the same columns. SanMar’s guides call SDL_N and EPDD its main product files, and point to SDL_N as the source of catalog colors for web services and orders.

  • SanMar_EPDD.csv has the same columns plus QTY, the stock across all warehouses. A style listed under several categories appears once per category, so unique keys repeat.

  • The SanMarPI files (bulk, delta, brand and category) are written on request by the product information web service, with a slightly different set of columns.

All of them are comma-delimited with a header row, and all are read one row at a time.

Attributes

SDL_COLUMNS

SanMar_SDL_N.csv, as SanMar's server writes it.

EPDD_COLUMNS

SanMar_EPDD.csv, as SanMar's server writes it.

PRODUCT_INFORMATION_COLUMNS

The SanMarPI bulk, delta, brand and category files, per the Web Services Integration

Classes

ProductRecord

The columns every SanMar product file shares.

CatalogProduct

One style, color and size from SanMar_SDL_N.csv or SanMar_EPDD.csv.

ProductInformation

One style, color and size from a SanMarPI file.

Functions

read_catalog(→ collections.abc.Iterator[CatalogProduct])

Stream SanMar_SDL_N.csv (or SanMar_SDL_DI.csv), one product at a time.

read_extended_catalog(...)

Stream SanMar_EPDD.csv, one product at a time, with total stock.

read_product_information(...)

Stream a SanMarPI bulk, delta, brand or category file, one product at a time.

Module Contents

sanmar_sdk.ftp.catalog.SDL_COLUMNS = ('unique_key', 'product_title', 'product_description', 'style#', 'available_sizes',...[source]

SanMar_SDL_N.csv, as SanMar’s server writes it.

The FTP Integration Guide v23.6 spells a few of these differently (COMPANION_STYLES, PRODUCT_MEASUREMENT); the file’s own header is followed here.

sanmar_sdk.ftp.catalog.EPDD_COLUMNS = ('unique_key', 'product_title', 'product_description', 'style#', 'available_sizes',...[source]

SanMar_EPDD.csv, as SanMar’s server writes it.

Like SDL_N with QTY after SIZE, except that its model and flat image columns drop the _URL suffix SDL_N’s have.

sanmar_sdk.ftp.catalog.PRODUCT_INFORMATION_COLUMNS = ('unique_key', 'product_title', 'product_description', 'style#', 'available_sizes',...[source]

The SanMarPI bulk, delta, brand and category files, per the Web Services Integration Guide v24.6 and as SanMar’s server writes them.

class sanmar_sdk.ftp.catalog.ProductRecord(/, **data: Any)[source]

Bases: sanmar_sdk.base.Record

The columns every SanMar product file shares.

unique_key: str[source]

SanMar’s identifier for this style, color and size, and the PromoStandards part id.

style: str = None[source]
catalog_color: str = None[source]

The catalog (mainframe) color, which web services and orders expect.

color_name: str | None = None[source]

The full color name, for display only.

size: str[source]
inventory_key: int[source]
size_index: int[source]
title: str | None = None[source]
description: str | None = None[source]
brand: str | None = None[source]
status: str | None = None[source]

Coming Soon, New, Regular, or Discontinued. Coming Soon rows may be incomplete.

available_sizes: str | None = None[source]
price_text: str | None = None[source]
piece_weight: decimal.Decimal | None = None[source]

Approximate weight per piece in pounds.

piece_price: sanmar_sdk.base.Price = None[source]

The price per piece for five pieces or fewer of one style and color.

case_price: sanmar_sdk.base.Price = None[source]

The price per piece when buying by the case.

case_size: int | None = None[source]
map_price: sanmar_sdk.base.Price = None[source]

The minimum advertised price.

brand_logo_image: str | None = None[source]
thumbnail_image: str | None = None[source]
color_swatch_image: str | None = None[source]
product_image: str | None = None[source]
spec_sheet: str | None = None[source]
color_square_image: str | None = None[source]
color_product_image: str | None = None[source]
color_product_image_thumbnail: str | None = None[source]
class sanmar_sdk.ftp.catalog.CatalogProduct(/, **data: Any)[source]

Bases: ProductRecord

One style, color and size from SanMar_SDL_N.csv or SanMar_EPDD.csv.

quantity: int | None = None[source]

Stock across all warehouses, capped by SanMar. Only the EPDD file has it.

category: str | None = None[source]

The category. In SDL files this holds every category, separated by semicolons.

subcategory: str | None = None[source]
suggested_price: sanmar_sdk.base.Price = None[source]
msrp: sanmar_sdk.base.Price = None[source]
companion_styles: str | None = None[source]
front_model_image_url: str | None = None[source]
back_model_image_url: str | None = None[source]
front_flat_image_url: str | None = None[source]
back_flat_image_url: str | None = None[source]
product_measurements: str | None = None[source]
pms_color: str | None = None[source]

The Pantone (PMS) color. SanMar says it does not stand in for the product color.

gtin: str | None = None[source]
decoration_spec_sheet: str | None = None[source]
class sanmar_sdk.ftp.catalog.ProductInformation(/, **data: Any)[source]

Bases: ProductRecord

One style, color and size from a SanMarPI file.

category: str | None = None[source]
keywords: sanmar_sdk.base.CommaSeparated = None[source]
piece_sale_price: sanmar_sdk.base.Price = None[source]
case_sale_price: sanmar_sdk.base.Price = None[source]
sale_start_date: sanmar_sdk.base.SanMarDate | None = None[source]
sale_end_date: sanmar_sdk.base.SanMarDate | None = None[source]
price_code: str | None = None[source]

The suggested retail pricing code. A/P is 50%, B/Q 45%, C/R 40%, D/S 35%, E/T 30%.

front_flat: str | None = None[source]
back_flat: str | None = None[source]
front_model: str | None = None[source]
back_model: str | None = None[source]
side_model: str | None = None[source]
three_q_model: str | None = None[source]
sanmar_sdk.ftp.catalog.read_catalog(source: sanmar_sdk.ftp.readers.Source, *, encoding: str = 'utf-8-sig') → collections.abc.Iterator[CatalogProduct][source]

Stream SanMar_SDL_N.csv (or SanMar_SDL_DI.csv), one product at a time.

sanmar_sdk.ftp.catalog.read_extended_catalog(source: sanmar_sdk.ftp.readers.Source, *, encoding: str = 'utf-8-sig') → collections.abc.Iterator[CatalogProduct][source]

Stream SanMar_EPDD.csv, one product at a time, with total stock.

sanmar_sdk.ftp.catalog.read_product_information(source: sanmar_sdk.ftp.readers.Source, *, encoding: str = 'utf-8-sig') → collections.abc.Iterator[ProductInformation][source]

Stream a SanMarPI bulk, delta, brand or category file, one product at a time.