• Joined on 2026-05-08

@purecut/configurator (1.0.0)

Published 2026-05-18 12:40:44 +00:00 by purecut

Installation

@purecut:registry=https://git.purecut.pl/api/packages/purecut/npm/
npm install @purecut/configurator@1.0.0
"@purecut/configurator": "1.0.0"

About this package

@purecut/configurator

SDK do integracji zewnętrznego konfiguratora z koszykiem PureCut.pl.

Instalacja

# Dodaj registry Gitea do swojego projektu
npm config set @purecut:registry https://git.purecut.pl/api/packages/purecut/npm/

# Zainstaluj paczkę
npm install @purecut/configurator

Lub jednorazowo:

npm install @purecut/configurator --registry https://git.purecut.pl/api/packages/purecut/npm/

Szybki start — Metoda A: Redirect

Przekieruj klienta na koszyk PureCut po zakończeniu konfiguracji. Idealne gdy konfigurator działa jako osobna strona/domena.

import { addToCartViaRedirect } from '@purecut/configurator';

function onConfigurationComplete(config: MyConfig) {
  addToCartViaRedirect({
    id: crypto.randomUUID(),           // unikalny per konfiguracja!
    name: `Tabliczka — ${config.text}`,
    price: config.totalPrice,
    previewUrl: config.previewPdfUrl,  // PDF widoczny klientowi
    productionUrl: config.dxfFileUrl,  // DXF dla laserownicy
    configDescription: `${config.width}×${config.height} cm, tekst: ${config.text}`,
    configSnapshot: config,            // pełny snapshot (niewidoczny dla klienta)
  });
}

Szybki start — Metoda B: postMessage

Wyślij produkt do rodzica gdy konfigurator działa jako iframe osadzony na PureCut.

import { addToCartViaPostMessage } from '@purecut/configurator';

function onConfigurationComplete(config: MyConfig) {
  addToCartViaPostMessage({
    id: crypto.randomUUID(),
    name: `Tabliczka — ${config.text}`,
    price: config.totalPrice,
    previewUrl: config.previewPdfUrl,
    productionUrl: config.dxfFileUrl,
    configDescription: `${config.width}×${config.height} cm`,
  });
}

Upload plików przez API PureCut

Jeśli nie chcesz hostować plików samodzielnie, możesz uploadować je bezpośrednio na serwery PureCut. Wymagany klucz API — skontaktuj się z Mikołajem.

import { PureCutClient, addToCartViaRedirect } from '@purecut/configurator';

const client = new PureCutClient({ storeKey: 'twój-klucz-api' });

async function onConfigurationComplete(config: MyConfig) {
  // 1. Upload plików
  const result = await client.submitFiles(
    {
      name: `Tabliczka — ${config.text}`,
      price: config.totalPrice,
      description: `${config.width}×${config.height} cm, tekst: ${config.text}`,
    },
    {
      previewFile: config.previewPdfFile,    // File lub { buffer, name, mimeType }
      productionFile: config.dxfFile,
      userSvgFiles: config.userUploadedSvgs, // opcjonalne
    },
  );

  // 2. Redirect do koszyka z gotowymi URL
  addToCartViaRedirect({
    id: result.configuredProductId,
    name: result.name,
    price: result.price,
    image: result.image,
    previewUrl: result.previewUrl,
    productionUrl: result.productionUrl,
    userSvgUrls: result.userSvgUrls,
    configDescription: result.description,
  });
}

Typy

import type {
  PureCutCartPayload,  // dane do koszyka
  SubmitMetadata,      // metadane dla API upload
  SubmitFiles,         // pliki dla API upload
  SubmitResult,        // odpowiedź z API upload
} from '@purecut/configurator';

Ważne zasady

  1. Unikalność id — każda konfiguracja musi mieć swój własny ID (np. crypto.randomUUID()).
    Powtórzony ID = zwiększenie ilości zamiast nowego produktu.

  2. Dostępność plików — jeśli hostujesz pliki samodzielnie, URL musi być aktywny przez min. 30 dni.

  3. Produkty konfigurowane pomijają sprawdzanie stocku — każdy jest unikalny.

  4. productionUrl (DXF) jest niewidoczny dla klienta — widzą go tylko pracownicy PureCut.


Aktualizacja paczki

# W katalogu SDK
npm version patch   # lub minor / major
npm run build
npm publish

Linki

Dependencies

Development Dependencies

ID Version
typescript ^5.9.3
Details
npm
2026-05-18 12:40:44 +00:00
146
PureCut
UNLICENSED
latest
8.8 KiB
Assets (1)
Versions (1) View all
1.0.0 2026-05-18