Przejdź do głównej treści
Ta strona opisuje pliki, które Omnilinker wczytuje i zapisuje poza katalogiem: import stanów magazynowych oraz eksporty z modułów Magazyn i Analiza cen. Korzystaj z niej, gdy generujesz pliki importu w innym systemie albo odczytujesz pliki eksportu skryptem. Produkty, ceny, ceny zakupu i zdjęcia opisuje strona Import produktów, cen i zdjęć.

Import stanów

Import stanów zmienia stany magazynowe zbiorczo na podstawie skoroszytu Excel. Każdy wiersz dodaje lub zdejmuje stan jednego produktu w jednym magazynie i staje się ruchem magazynowym.

Zanim zaczniesz

  • Potrzebujesz uprawnienia Import pozycji magazynowych w grupie Zarządzanie magazynem.
  • Import należy do modułu Zarządzanie magazynem. Jeśli ten moduł nie jest włączony dla Twojej organizacji, import nie jest dostępny.
  • Produkty muszą istnieć w katalogu, a magazyny w Magazyn > Magazyny, każdy z kodem.

Import pliku

1

Otwórz import

Otwórz Magazyn > Stany magazynowe i wybierz Dane > Import zbiorczy. Otworzy się okno Import zbiorczy stanów.
2

Pobierz szablon

Kliknij Pobierz szablon. Dostaniesz plik stock-import-template.xlsx z samym wierszem nagłówka.
3

Wypełnij wiersze

Pod wierszem nagłówka dodaj po jednym wierszu na produkt i magazyn; zobacz Kolumny.
4

Wgraj plik

Upuść plik na okno albo wybierz go z komputera. Omnilinker go odczyta i pokaże podgląd: liczbę poprawnych i niepoprawnych wierszy oraz pierwsze 50 wierszy, z wyróżnionymi wierszami niepoprawnymi.
5

Uruchom import

Kliknij Uruchom import. Niepoprawne wiersze zostaną pominięte; aby je uwzględnić, popraw plik, kliknij Wstecz i wgraj go ponownie. Okno pokazuje postęp w procentach oraz liczbę wierszy przetworzonych, udanych (OK) i nieudanych (fail), a na końcu Import zakończony.
Import działa w tle. Jeśli w trakcie importu któryś wiersz się nie powiedzie, pozostałe i tak zostaną zaimportowane.

Plik

  • Skoroszyt Excel .xlsx o rozmiarze do 5 MB. Pliki CSV i starsze pliki .xls nie są przyjmowane. Większy plik podziel na kilka mniejszych.
  • Pierwszy wiersz to nagłówek. Dane zaczynają się w wierszu 2. W API lineNumber każdego wiersza to jego numer w arkuszu.
  • Zachowaj nazwy kolumn dokładnie takie jak w szablonie. Są po angielsku, niezależnie od języka Twojego Omnilinkera.

Kolumny

Quantity to zmiana, a nie nowy stan: wiersz z wartością 5 dodaje pięć sztuk do tego, co jest na stanie. Dodatnia ilość zapisuje się jako korekta dodatnia, a ujemna jako korekta ujemna, w Ruchy magazynowe.
Nie wpisuj przecinka dziesiętnego w komórce tekstowej. Omnilinker odczytuje Quantity z kropką jako separatorem dziesiętnym i przecinkiem jako separatorem tysięcy, więc tekst 10,5 zostanie odczytany jako 105, a nie 10.5. Przed uruchomieniem importu sprawdź kolumnę Qty w podglądzie.
Przykład:

Dlaczego wiersz jest pomijany lub się nie udaje

Okno liczy niepoprawne i nieudane wiersze, ale nie mówi, dlaczego. Sprawdź wiersze według poniższych reguł. Wiersz jest niepoprawny i zostanie pominięty, gdy: Poprawny wiersz nie uda się w trakcie importu (a pozostałe wiersze i tak zostaną zaimportowane), gdy:
  • żaden produkt nie ma takiego SKU (sprawdź wielkość liter),
  • żaden magazyn nie ma takiego kodu,
  • wiersz obniżyłby stan poniżej zera.
Okno odrzuca cały plik z komunikatem, gdy:
  • plik jest większy niż 5 MB: „Plik Excel przekracza limit 5 MB. Podziel go na mniejsze partie.”
  • plik nie jest skoroszytem Excel: „Plik nie jest prawidłowym skoroszytem Excel (.xlsx) lub jest uszkodzony. Pobierz szablon i spróbuj ponownie.”

Import stanów przez API

Ten sam import jest dostępny dla klucza API z uprawnieniem Import pozycji magazynowych:
  1. POST /api/inventory/stock-import/parse-excel ze skoroszytem jako tekstem JSON zakodowanym w base64. Odpowiedź to podgląd: rows, każdy z polami lineNumber, sku, warehouseCode, quantity, reason, notes i validationError, oraz validRowCount i invalidRowCount.
  2. POST /api/inventory/stock-import/enqueue-import z { "rows": [ … ] }. Wiersze z validationError albo bez SKU lub kodu magazynu są pomijane. Odpowiedź to identyfikator importu, a import działa w tle.
Możesz też pominąć skoroszyt i wysłać do enqueue-import wiersze zbudowane samodzielnie. Nadaj każdemu wierszowi inny lineNumber: Omnilinker używa go, aby wiersz został zastosowany tylko raz, nawet jeśli import w tle zostanie ponowiony. Ta ochrona obejmuje tylko jeden import: każde wywołanie enqueue-import uruchamia nowy import, więc dwukrotne wysłanie tych samych wierszy dwa razy zmieni stan. Wynik sprawdzisz, odczytując potem stany lub ruchy magazynowe; postęp importu nie jest dostępny przez API. GET /api/inventory/stock-import/import-template zwraca szablon.

Eksporty

Eksporty to skoroszyty Excel, chyba że zaznaczono inaczej. Nagłówki kolumn są po angielsku. Czasy są w UTC, w formacie yyyy-MM-dd HH:mm:ss, chyba że zaznaczono inaczej. Gdy eksport przekroczyłby limit, najpierw zawęź filtry. Eksporty stanów kończą się na limicie; pozostałe eksporty nie startują i podają, ile wierszy pasuje do filtrów. Eksport przefiltrowanych ofert wymaga też co najmniej jednego aktywnego filtra: „Eksport wymaga co najmniej jednego aktywnego filtra. Zawęź zapytanie przed wyeksportowaniem.” Eksport wymaga uprawnienia do eksportu na danej stronie, na przykład Eksport pozycji magazynowych i Eksport ruchów magazynowych w grupie Zarządzanie magazynem. Eksporty katalogu opisuje strona Import produktów, cen i zdjęć, a pobieranie CSV z historii cen strona Historia cen.

Stany magazynowe

Jeden wiersz na produkt i magazyn. Nazwa arkusza: Stock Levels. Product SKU, Product Name, Brand, Category, Warehouse, On Hand, Reserved, Reserved (ERP), Available, On Order, In Transit, Reorder Point, Safety Stock, Max Stock Level, Reorder Quantity, Status, Discontinued, Notes. Status przyjmuje jedną z wartości InStock, LowStock, OutOfStock, NoStock lub Overstock. Ilości mają do czterech miejsc po przecinku.

Ruchy magazynowe

Jeden wiersz na ruch. Nazwa arkusza: Stock Movements. Date, Product SKU, Product Name, Warehouse, Movement Type, Quantity, Running Balance, Reference Number, Reason, Source Warehouse Id, Destination Warehouse Id, Lot Number, Serial Number, Notes. Date to moment zapisania ruchu, w UTC. Movement Type przyjmuje jedną z wartości Receipt, Shipment, AdjustmentPositive, AdjustmentNegative, TransferOut, TransferIn, Reservation, ReservationRelease, Return, Scrap, CountAdjustment, InitialStock, ErpSync lub ExternalSync. Identyfikatory magazynów przy przesunięciu to GUID-y.

Oferty

Nazwa arkusza: Offers Export. Product Name, SKU, GTIN, Merchant, Data Source, Current Price, Currency, Availability, Reference Price, Reference Currency, Basis Level, Basis Origin, Price Difference (%), Price Difference, Last Update, External Offer ID, Offer URL, Created Date. Co oznaczają cena odniesienia i różnica, wyjaśnia strona Oferty.

Przegląd produktów

Nazwa arkusza: Product Overview Export. Product Name, SKU, GTIN, Brand, Comparison Price, Purchase Price, Offer Currency, Reference Currency, Purchase Currency, Total Offers, Available Offers, Not Available Offers, Total Violations, Lowest Price, Average Price, Highest Price, Median Price, Price Deviation (%), Below Market (%), Tracking Status, Last Update, Created Date, Merchants, Has No Offers, Has Stale Data. Zobacz Przegląd produktów.

Luki cenowe

Okno Eksport luk w panelu producenta oferuje trzy formaty: Excel, CSV i Paczka dowodów (jeden CSV na sprzedawcę i podsumowanie, spakowane). Excel i CSV mają te same kolumny. Excel umieszcza je w arkuszu Gaps: Product, SKU, GTIN, Reseller, Authorised seller, Source, Market, Price, Currency, Reference, Reference currency, Reference level, Deviation %, Difference, Band, Gap since (UTC), Availability. Opcje w sekcji Dołącz dodają kolumny albo arkusz:
  • Adres oferty i czas pobrania dla każdego wiersza dodaje Offer URL i Seen at (UTC).
  • Kto zmienił cenę jako pierwszy i status sprawy dodaje Moved first, Case i Case status.
  • Arkusz z ofertami, których nie da się porównać (…) (tylko Excel) dodaje drugi arkusz, Not comparable, z kolumnami Product, SKU, Reseller, Source, Market, Price, Currency, Why it cannot be compared, Reference currency, Reference level i Seen at (UTC).
Authorised seller zawiera Yes albo No, a Moved first zawiera Yes albo nic. Czasy są w formacie ISO 8601, w UTC. Gap since (UTC) zaczyna się od before , gdy luka była już otwarta w miejscu, w którym zaczyna się historia cen przechowywana przez Omnilinkera. Plik CSV jest przeznaczony dla innych narzędzi i skryptów:
  • UTF-8 ze znacznikiem kolejności bajtów (BOM).
  • Wartości rozdzielone przecinkami, wiersze zakończone CRLF. Wartość z przecinkiem, cudzysłowem lub znakiem nowego wiersza jest ujęta w cudzysłów, a cudzysłów w jej środku jest podwojony.
  • Liczby mają kropkę jako separator dziesiętny i nie mają separatora tysięcy, niezależnie od języka: ceny z dwoma miejscami po przecinku, Deviation % z jednym.
  • Tekst zaczynający się od =, +, - lub @ dostaje na początku znak ', aby arkusz kalkulacyjny nie wykonał go jako formuły. Usuń go, jeśli Twój skrypt potrzebuje oryginalnego tekstu.
Paczka dowodów to plik ZIP, który zawiera:
  • jeden plik CSV na sprzedawcę, nazwany od domeny sprzedawcy i daty, z kolumnami Product, SKU, GTIN, Reference price level, Recommended price, Currency, Price in the shop, Difference (%), Checked at (UTC), Source i Offer link;
  • summary.txt z zakresem, czasem utworzenia paczki, poziomem ceny odniesienia dla każdego rynku, tolerancją i liczbami;
  • not-comparable.csv, gdy zaznaczysz Plik z ofertami, których nie da się porównać (…).
Dwie opcje kolumn opisane wyżej nie zmieniają plików paczki dowodów. Zobacz Przegląd, mapa cen i luki.

Import stanów magazynowych

Import stanów krok po kroku.

Import produktów, cen i zdjęć

Pliki importu i eksportu katalogu.

Stany i ruchy magazynowe

Co oznacza każda ilość.

Przegląd dla programistów

Wywołuj API zamiast wymieniać pliki.