Commerce
Produkty to rekordy modelu, koszyk to publiczna przestrzeń mutacji wołana przez Twój sklep, a zamówienia żyją w panelu.
cmssy ma koszyk, zamówienia, rabaty i pipeline zamówień. Nic z tego nie jest osobnym obszarem produktu: produkt to rekord modelu, sklep rozmawia z tym samym API dostawczym co reszta, a biurkiem zamówień jest panel.
Ta możliwość to flaga planu - canUseCart w get_workspace_info - więc odczytaj ją, zamiast zakładać.
Produkty to rekordy
W cmssy nie ma typu "produkt". Tworzysz model - product, plan, ticket, cokolwiek jest Twoim katalogiem - a konfiguracja koszyka w workspace mapuje ten model do koszyka przez źródło produktów: który model, które pole to cena, które to stan magazynowy, które to warianty.
Dlatego katalog może pochodzić z więcej niż jednego modelu naraz i dlatego ten sam blok, który renderuje dowolny rekord, renderuje produkt.
Co może wołać sklep
Przestrzeń cart jest publiczna: bez tokenu, w zakresie sesji, i jest jedyną częścią API dostawczego, która zapisuje.
cart.get(workspaceId)- pozycje,subtotal,tax,shippingTotal,discountedTotal,totalGross,currency,pricesIncludeTax,availableShippingMethods,appliedDiscount,taxSummary.cart.addItem-{ recordId, quantity, variantSelections, notes }. Pozycja to referencja do rekordu, nie jego kopia.cart.updateItem,cart.removeItem(itemId),cart.clear.cart.applyDiscount(code),cart.removeDiscount,cart.setShippingMethod(shippingMethodId).cart.merge- scala anonimowy koszyk sesji z koszykiem zalogowanego członka. Wołaj raz, zaraz po uwierzytelnieniu.cart.checkout-{ customerEmail, customerNote, poNumber, shippingAddress }zamienia koszyk w zamówienie.
Sumy wracają policzone. Nie dodawaj cen pozycji w przeglądarce: tryb podatku, rabaty i wysyłka rozstrzygają się po stronie serwera, a druga implementacja we froncie to druga odpowiedź.
Status zamówienia bez konta
public.order.byToken zwraca jedno zamówienie - orderNumber, items, paymentStatus, fulfillmentStatus, amountPaid, balanceDue, invoiceUrl - dla tokenu wydanego przy checkoucie. Tak działa strona "śledź zamówienie" dla gościa.
Co konfiguruje workspace
public.siteConfig.publicCart to bezpieczna dla sklepu projekcja ustawień koszyka: defaultCurrency, pricesIncludeTax, taxRates, shippingMethods, productSources, maxItemsPerCart, maxQuantityPerItem, enableSavedCarts, enableQuoteRequests. Odczytaj ją raz i pozwól jej kształtować UI - format waluty, limity ilości, to czy w ogóle oferujesz zapytanie ofertowe.
Zamówienia to zaplecze
Wszystko po checkoucie wymaga autoryzacji: panel albo serwer MCP z tokenem, którego rola na to pozwala. Zamówienia można listować i czytać, tworzyć ręcznie, edytować pozycja po pozycji, oznaczać jako opłacone w całości lub częściowo, zwracać, anulować, przeprowadzać przez realizację, wystawiać im fakturę i przesuwać po konfigurowalnym pipelinie. Rabaty tworzy się, aktualizuje i włącza tak samo; produkty da się zmieniać i usuwać hurtem albo nadać im progi cenowe.
Dostawcy płatności nie są tego częścią: cmssy zapisuje, co się stało - mark_order_paid, record_order_payment, refund_order - a Twoja integracja decyduje, kiedy się stało.
Następne kroki
- Modele danych - rekordy, z których składa się katalog.
- API dostawcze GraphQL - jak ograniczany jest publiczny zapis.
- Webhooki - dziesięć zdarzeń
order.*.