brainerce 1.63.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -619,6 +619,15 @@ interface ProductMetafield {
619
619
  */
620
620
  name?: string;
621
621
  }
622
+ /**
623
+ * Publish state of a product. **Lowercase**, unlike order statuses.
624
+ *
625
+ * `active` is visible to shoppers; `draft` is merchant-only. The backend
626
+ * validates this exact pair on both the query filter and the write DTOs, and
627
+ * defaults a product to `active`. There is no `archived` product state on this
628
+ * platform. Archiving exists for modifier groups and modifiers, not products.
629
+ */
630
+ type ProductStatus = 'active' | 'draft';
622
631
  interface Product {
623
632
  id: string;
624
633
  name: string;
@@ -707,7 +716,7 @@ interface Product {
707
716
  /** ISO 4217 currency of `displayPrice` (the buyer's region currency). */
708
717
  displayCurrency?: string;
709
718
  /** Product status (active, draft). Always returned by backend. */
710
- status: string;
719
+ status: ProductStatus;
711
720
  type: 'SIMPLE' | 'VARIABLE';
712
721
  /** Whether product is downloadable/digital. */
713
722
  isDownloadable?: boolean;
@@ -838,6 +847,20 @@ interface ProductReviewImageAdmin extends ProductReviewImage {
838
847
  hiddenAt: string | null;
839
848
  createdAt: string;
840
849
  }
850
+ /**
851
+ * Moderation states of a marketplace **app** submission, the values the
852
+ * platform stores on an app review submission while Brainerce staff approve or
853
+ * reject a listed app.
854
+ *
855
+ * ⛔ **This has nothing to do with product reviews.** Customer product reviews
856
+ * publish immediately and carry no status field at all: see `ProductReview`
857
+ * below. Do not build a product-review moderation queue on this type; the
858
+ * platform does not have one.
859
+ *
860
+ * Exported for completeness of the platform vocabulary. No SDK method returns
861
+ * or accepts it today.
862
+ */
863
+ type ReviewStatus = 'PENDING' | 'IN_REVIEW' | 'APPROVED' | 'REJECTED' | 'CHANGES_REQUESTED';
841
864
  /**
842
865
  * Product review submitted by a customer.
843
866
  * Reviews publish immediately (no PENDING state). Merchants hide via the admin
@@ -990,8 +1013,13 @@ interface ProductVariant {
990
1013
  } | null;
991
1014
  /** Display position/order for sorting variants */
992
1015
  position: number;
993
- /** Variant status */
994
- status?: string | null;
1016
+ /**
1017
+ * Variant publish state. Same lowercase pair as `ProductStatus`, and the
1018
+ * backend validates it with the same `active` / `draft` enum on the create
1019
+ * and update DTOs. Null when the merchant never set it, which the server
1020
+ * treats as `active`.
1021
+ */
1022
+ status?: VariantStatus | null;
995
1023
  createdAt: string;
996
1024
  updatedAt: string;
997
1025
  /** Per-sales-channel field overrides keyed by connectionId */
@@ -1441,7 +1469,7 @@ interface ProductQueryParams {
1441
1469
  page?: number;
1442
1470
  limit?: number;
1443
1471
  search?: string;
1444
- status?: 'active' | 'draft';
1472
+ status?: ProductStatus;
1445
1473
  /** Filter by category IDs (comma-separated or array) */
1446
1474
  categories?: string | string[];
1447
1475
  /** Filter by brand IDs (comma-separated or array) */
@@ -1467,8 +1495,27 @@ interface ProductQueryParams {
1467
1495
  * ```
1468
1496
  */
1469
1497
  metafields?: Record<string, string | string[]>;
1470
- /** Sort by field (default: menuOrder) */
1471
- sortBy?: 'name' | 'price' | 'createdAt';
1498
+ /**
1499
+ * Sort field. **Which values actually take effect depends on the SDK mode.**
1500
+ *
1501
+ * - `storeId` (public storefront) and `apiKey` (admin) modes validate against
1502
+ * the full set: `name`, `price`, `createdAt`, `updatedAt`, `menuOrder`.
1503
+ * Anything outside it is rejected with a 400.
1504
+ * - `salesChannelId` (vibe-coded) mode honours only `name`, `price` and
1505
+ * `createdAt`. It does **not** reject `updatedAt` or `menuOrder`; it
1506
+ * silently ignores them and returns the merchant's curated order instead,
1507
+ * so a sort that looks accepted may simply not have happened.
1508
+ *
1509
+ * Omit `sortBy` entirely and every mode returns the merchant's curated order
1510
+ * (`menuOrder` ascending, then newest first). That is the right default for a
1511
+ * storefront listing, because it is the order the merchant arranged in the
1512
+ * dashboard.
1513
+ *
1514
+ * `price` sorts on the stored `basePrice` column. For VARIABLE products that
1515
+ * can differ from the effective price a shopper sees, which is the minimum
1516
+ * across variants.
1517
+ */
1518
+ sortBy?: 'name' | 'price' | 'createdAt' | 'updatedAt' | 'menuOrder';
1472
1519
  sortOrder?: 'asc' | 'desc';
1473
1520
  /** Locale for translated content (e.g., "he", "es"). Falls back to store default. */
1474
1521
  locale?: string;
@@ -1598,7 +1645,7 @@ interface CreateProductDto {
1598
1645
  basePrice: number;
1599
1646
  salePrice?: number;
1600
1647
  costPrice?: number;
1601
- status?: 'active' | 'draft';
1648
+ status?: ProductStatus;
1602
1649
  type?: 'SIMPLE' | 'VARIABLE';
1603
1650
  isDownloadable?: boolean;
1604
1651
  /** Existing category IDs to assign. Unknown/cross-store IDs are rejected with 400. To assign by name (auto-creating if missing), use `categoryNames`. */
@@ -1732,7 +1779,7 @@ interface UpdateProductDto {
1732
1779
  basePrice?: number;
1733
1780
  salePrice?: number | null;
1734
1781
  costPrice?: number | null;
1735
- status?: 'active' | 'draft';
1782
+ status?: ProductStatus;
1736
1783
  isDownloadable?: boolean;
1737
1784
  /** Existing category IDs to assign (replaces the current set). Pass `[]` to clear. Unknown/cross-store IDs are rejected with 400. To assign by name (auto-creating if missing), use `categoryNames`. */
1738
1785
  categories?: string[];
@@ -1886,10 +1933,21 @@ interface OrderStatusChange {
1886
1933
  note?: string | null;
1887
1934
  }
1888
1935
  /**
1889
- * Order status values are **lowercase**.
1890
- * Do NOT use uppercase values like 'COMPLETED' or 'CANCELLED'.
1936
+ * The canonical order statuses. **The wire format is UPPERCASE.**
1937
+ *
1938
+ * These are the exact values the API returns on `Order.status` and the exact
1939
+ * values it accepts when you set a status. Send `'CANCELLED'`, never
1940
+ * `'cancelled'`.
1941
+ *
1942
+ * The server enforces a state machine on top of this list, so not every value
1943
+ * is reachable from every other one. Terminal states (`CANCELLED`, `REFUNDED`)
1944
+ * do not transition anywhere.
1945
+ *
1946
+ * **Breaking change in SDK 2.0.** Earlier releases declared a shorter,
1947
+ * lowercase union that never matched the API. If you were comparing against
1948
+ * `'pending'` or `'cancelled'`, uppercase those comparisons.
1891
1949
  */
1892
- type OrderStatus = 'pending' | 'processing' | 'shipped' | 'delivered' | 'cancelled' | 'refunded';
1950
+ type OrderStatus = 'DRAFT' | 'PENDING' | 'PROCESSING' | 'ON_HOLD' | 'PAID' | 'SHIPPED' | 'DELIVERED' | 'COMPLETED' | 'FULFILLED' | 'CANCELLED' | 'REFUNDED' | 'PARTIALLY_REFUNDED';
1893
1951
  interface OrderCustomer {
1894
1952
  email: string;
1895
1953
  name?: string;
@@ -1991,6 +2049,11 @@ interface OrderDownloadLink {
1991
2049
  interface OrderQueryParams {
1992
2050
  page?: number;
1993
2051
  limit?: number;
2052
+ /**
2053
+ * Filter by canonical status, UPPERCASE. The server also accepts the id of a
2054
+ * custom status label for stores using that feature, which this union does
2055
+ * not model. Cast if you need to filter by a label id.
2056
+ */
1994
2057
  status?: OrderStatus;
1995
2058
  sortBy?: 'createdAt' | 'totalAmount';
1996
2059
  sortOrder?: 'asc' | 'desc';
@@ -3039,6 +3102,19 @@ type GuestCheckoutStartResponse = {
3039
3102
  message: string;
3040
3103
  };
3041
3104
  type CheckoutStatus = 'PENDING' | 'SHIPPING_SET' | 'PAYMENT_PENDING' | 'PAYMENT_PROCESSING' | 'COMPLETED' | 'FAILED' | 'EXPIRED';
3105
+ /**
3106
+ * How the order reaches the customer. **Lowercase**, unlike `CheckoutStatus`.
3107
+ *
3108
+ * `shipping` is the server default when a checkout is created. `pickup` means
3109
+ * the customer collects from a store location, so the checkout carries a
3110
+ * `pickupLocation` instead of a shipping address, and shipping rates are not
3111
+ * quoted. Set it with `client.setDeliveryType(checkoutId, deliveryType)`.
3112
+ *
3113
+ * These two are the only values the API accepts. Checkout custom fields are
3114
+ * also gated on this value, so a field scoped to pickup does not appear on a
3115
+ * shipping checkout.
3116
+ */
3117
+ type DeliveryType = 'shipping' | 'pickup';
3042
3118
  /**
3043
3119
  * Individual tax line item in the breakdown
3044
3120
  * @example
@@ -3188,6 +3264,13 @@ interface CheckoutLineItem {
3188
3264
  name: string;
3189
3265
  sku: string;
3190
3266
  images?: ProductImage[];
3267
+ /**
3268
+ * Whether this product is a digital/downloadable one. The server always
3269
+ * sends it on checkout line items, so this is how you detect an
3270
+ * all-digital cart: `items.every(i => i.product.isDownloadable)`. Use that
3271
+ * to skip the shipping address step and the delivery-method picker.
3272
+ */
3273
+ isDownloadable?: boolean;
3191
3274
  };
3192
3275
  /**
3193
3276
  * Nested variant information (null for simple products).
@@ -3406,7 +3489,7 @@ interface Checkout {
3406
3489
  /** Customer ID if linked to a customer account */
3407
3490
  customerId?: string | null;
3408
3491
  /** Delivery method: "shipping" (default) or "pickup" */
3409
- deliveryType?: 'shipping' | 'pickup';
3492
+ deliveryType?: DeliveryType;
3410
3493
  /** Pickup location details (when deliveryType is "pickup") */
3411
3494
  pickupLocation?: PickupLocation | null;
3412
3495
  /** Shipping address (required before selecting shipping) */
@@ -3901,7 +3984,19 @@ interface MediaAsset {
3901
3984
  alt: string | null;
3902
3985
  createdAt: string;
3903
3986
  }
3904
- /** Query params for `listMedia`. */
3987
+ /**
3988
+ * Query params for `listMedia`.
3989
+ *
3990
+ * These three are the complete set. The public `GET /api/v1/media` endpoint
3991
+ * that this SDK calls reads only `page`, `limit` and `search`, and `search`
3992
+ * matches on name and filename.
3993
+ *
3994
+ * ⛔ The dashboard's own media browser has a richer filter set (asset type,
3995
+ * sort field, sort direction, in-use vs unused, folder scope), but that lives
3996
+ * on a **different** internal route. Sending those names here does nothing:
3997
+ * they are dropped without an error, and you get an unfiltered first page back
3998
+ * that looks like a successful filter.
3999
+ */
3905
4000
  interface ListMediaParams {
3906
4001
  page?: number;
3907
4002
  limit?: number;
@@ -3936,6 +4031,16 @@ interface Refund {
3936
4031
  currency: string;
3937
4032
  reason?: string;
3938
4033
  items?: RefundLineItemResponse[];
4034
+ /**
4035
+ * ⛔ **Deliberately left as `string`, because the casing is not consistent
4036
+ * across the two methods that return this type.**
4037
+ *
4038
+ * `createRefund()` passes the stored payment-refund status straight through,
4039
+ * so you get an UPPERCASE `PaymentRecordStatus` value such as `'PENDING'`.
4040
+ * `getOrderRefunds()` lowercases it on the way out, so the same refund comes
4041
+ * back as `'pending'`. Compare case-insensitively
4042
+ * (`status.toUpperCase() === 'PENDING'`) rather than against a literal.
4043
+ */
3939
4044
  status: string;
3940
4045
  }
3941
4046
  interface UpdateOrderShippingDto {
@@ -4389,6 +4494,20 @@ interface PaymentIntent {
4389
4494
  /** Runtime client SDK overrides (merged with provider manifest config) */
4390
4495
  clientSdk?: PaymentClientSdk;
4391
4496
  }
4497
+ /**
4498
+ * The stored payment-record vocabulary. **UPPERCASE.**
4499
+ *
4500
+ * These are the values the platform writes to a payment record, a payment
4501
+ * refund record, and a checkout's `paymentStatus` column. `CAPTURED` is the
4502
+ * only state that means the money actually moved. `AUTHORIZED` is a hold, not
4503
+ * a charge, and only a `CAPTURED` payment can be refunded.
4504
+ *
4505
+ * **This is not the same thing as the `PaymentStatus` interface below**, which
4506
+ * is the live checkout-polling object and carries its own lowercase
4507
+ * `pending | processing | succeeded | failed | canceled` field. It is also not
4508
+ * what `Refund.status` returns: see the note on `Refund`.
4509
+ */
4510
+ type PaymentRecordStatus = 'PENDING' | 'AUTHORIZED' | 'CAPTURED' | 'FAILED' | 'REFUNDED' | 'PARTIALLY_REFUNDED' | 'CANCELLED';
4392
4511
  /**
4393
4512
  * Payment status for a checkout.
4394
4513
  * Use this to poll for payment completion after redirect-based flows.
@@ -7853,85 +7972,56 @@ declare class BrainerceClient {
7853
7972
  */
7854
7973
  updateOrder(orderId: string, data: UpdateOrderDto): Promise<Order>;
7855
7974
  /**
7856
- * Update order status
7975
+ * Update order status.
7976
+ *
7977
+ * **Not callable — use {@link updateOrder} instead.** Status changes do work
7978
+ * over the API key, just by a different route.
7979
+ *
7980
+ * @deprecated Call `updateOrder(orderId, { status })`.
7857
7981
  *
7858
7982
  * @example
7859
7983
  * ```typescript
7860
- * const order = await client.updateOrderStatus('order_123', 'shipped');
7984
+ * const order = await client.updateOrder('order_123', { status: 'SHIPPED' });
7861
7985
  * ```
7862
7986
  */
7863
7987
  updateOrderStatus(orderId: string, status: string): Promise<Order>;
7864
7988
  /**
7865
- * Update order payment method
7866
- * Note: Only WooCommerce supports syncing payment method changes back to platform
7989
+ * Update order payment method.
7867
7990
  *
7868
- * @example
7869
- * ```typescript
7870
- * const order = await client.updatePaymentMethod('order_123', 'credit_card');
7871
- * ```
7991
+ * **Not callable.** The API-key `/v1` surface has no payment-method route,
7992
+ * so this throws in every mode. Change the payment method from the
7993
+ * dashboard until the route ships.
7872
7994
  */
7873
7995
  updatePaymentMethod(orderId: string, paymentMethod: string): Promise<Order>;
7874
7996
  /**
7875
- * Update order notes
7997
+ * Update order notes.
7876
7998
  *
7877
- * @example
7878
- * ```typescript
7879
- * const order = await client.updateOrderNotes('order_123', 'Customer requested gift wrapping');
7880
- * ```
7999
+ * **Not callable.** The API-key `/v1` surface has no order-notes route, so
8000
+ * this throws in every mode. Edit notes from the dashboard until the route
8001
+ * ships.
7881
8002
  */
7882
8003
  updateOrderNotes(orderId: string, notes: string): Promise<Order>;
7883
8004
  /**
7884
- * Get refunds for an order
7885
- * Returns refunds from the source platform (Shopify/WooCommerce only)
8005
+ * Get refunds for an order.
7886
8006
  *
7887
- * @example
7888
- * ```typescript
7889
- * const refunds = await client.getOrderRefunds('order_123');
7890
- * console.log('Total refunds:', refunds.length);
7891
- * ```
8007
+ * **Not callable.** The API-key `/v1` surface has no refunds route, so this
8008
+ * throws in every mode. Read refunds from the dashboard until the route
8009
+ * ships.
7892
8010
  */
7893
8011
  getOrderRefunds(orderId: string): Promise<Refund[]>;
7894
8012
  /**
7895
- * Create a refund for an order
7896
- * Creates refund on the source platform (Shopify/WooCommerce only)
7897
- *
7898
- * @example
7899
- * ```typescript
7900
- * // Full refund
7901
- * const refund = await client.createRefund('order_123', {
7902
- * type: 'full',
7903
- * restockInventory: true,
7904
- * notifyCustomer: true,
7905
- * reason: 'Customer request',
7906
- * });
8013
+ * Create a refund for an order.
7907
8014
  *
7908
- * // Partial refund
7909
- * const partialRefund = await client.createRefund('order_123', {
7910
- * type: 'partial',
7911
- * items: [
7912
- * { lineItemId: 'item_456', quantity: 1 },
7913
- * ],
7914
- * restockInventory: true,
7915
- * });
7916
- * ```
8015
+ * **Not callable.** The API-key `/v1` surface has no refunds route, so this
8016
+ * throws in every mode. Refund from the dashboard until the route ships.
7917
8017
  */
7918
8018
  createRefund(orderId: string, data: CreateRefundDto): Promise<Refund>;
7919
8019
  /**
7920
- * Update order shipping address
7921
- * Syncs to source platform (Shopify/WooCommerce only)
8020
+ * Update order shipping address.
7922
8021
  *
7923
- * @example
7924
- * ```typescript
7925
- * const order = await client.updateOrderShipping('order_123', {
7926
- * firstName: 'John',
7927
- * lastName: 'Doe',
7928
- * line1: '456 New Address',
7929
- * city: 'Los Angeles',
7930
- * state: 'CA',
7931
- * country: 'US',
7932
- * postalCode: '90001',
7933
- * });
7934
- * ```
8022
+ * **Not callable.** The API-key `/v1` surface has no order-shipping route,
8023
+ * so this throws in every mode. Correct the address from the dashboard
8024
+ * until the route ships.
7935
8025
  */
7936
8026
  updateOrderShipping(orderId: string, data: UpdateOrderShippingDto): Promise<Order>;
7937
8027
  /**
@@ -8039,14 +8129,12 @@ declare class BrainerceClient {
8039
8129
  }>;
8040
8130
  }>>;
8041
8131
  /**
8042
- * Cancel an order
8043
- * Works for Shopify and WooCommerce orders that haven't been fulfilled
8132
+ * Cancel an order.
8044
8133
  *
8045
- * @example
8046
- * ```typescript
8047
- * const order = await client.cancelOrder('order_123');
8048
- * console.log('Order status:', order.status); // 'cancelled'
8049
- * ```
8134
+ * **Not callable.** The API-key `/v1` surface has no cancel route, so this
8135
+ * throws in every mode. A status move to cancelled may be reachable through
8136
+ * {@link updateOrder} depending on what the order's state machine allows;
8137
+ * otherwise cancel from the dashboard.
8050
8138
  */
8051
8139
  cancelOrder(orderId: string): Promise<Order>;
8052
8140
  /**
@@ -8061,89 +8149,51 @@ declare class BrainerceClient {
8061
8149
  * ship date is not rewritten, and no fulfilment event fires. That is the way
8062
8150
  * to fix a mistyped tracking number.
8063
8151
  *
8064
- * @example
8065
- * ```typescript
8066
- * // First fulfilmentemails the shopper by default.
8067
- * await client.fulfillOrder('order_123', {
8068
- * trackingNumber: '1Z999AA10123456784',
8069
- * trackingCompany: 'UPS',
8070
- * trackingUrl: 'https://www.ups.com/track?tracknum=1Z999AA10123456784',
8071
- * notifyCustomer: true,
8072
- * });
8073
- *
8074
- * // Correction — silent unless you opt back in.
8075
- * await client.fulfillOrder('order_123', {
8076
- * trackingNumber: '1Z999AA10123456785',
8077
- * });
8078
- * ```
8152
+ * **Not callable.** The API-key `/v1` surface has no fulfil route, so this
8153
+ * throws in every mode. To ship an order over the API today, buy a label
8154
+ * with {@link createShippingLabel} — the carrier's webhooks then move the
8155
+ * shipment through in-transit and delivered on their own. Otherwise fulfil
8156
+ * from the dashboard.
8079
8157
  */
8080
8158
  fulfillOrder(orderId: string, data?: FulfillOrderDto): Promise<Order>;
8081
8159
  /**
8082
- * Sync draft orders from connected platforms
8160
+ * Sync draft orders from connected platforms.
8083
8161
  *
8084
- * @example
8085
- * ```typescript
8086
- * const result = await client.syncDraftOrders();
8087
- * console.log('Draft orders synced');
8088
- * ```
8162
+ * **Not callable.** The API-key `/v1` surface has no draft-order routes at
8163
+ * all, so this throws in every mode. {@link triggerSync} covers a general
8164
+ * platform sync; draft orders are managed from the dashboard.
8089
8165
  */
8090
8166
  syncDraftOrders(): Promise<{
8091
8167
  message: string;
8092
8168
  }>;
8093
8169
  /**
8094
- * Complete a draft order (convert to regular order)
8170
+ * Complete a draft order (convert to regular order).
8095
8171
  *
8096
- * @example
8097
- * ```typescript
8098
- * const order = await client.completeDraftOrder('draft_123', {
8099
- * paymentPending: false,
8100
- * });
8101
- * ```
8172
+ * **Not callable.** The API-key `/v1` surface has no draft-order routes at
8173
+ * all, so this throws in every mode. Complete drafts from the dashboard.
8102
8174
  */
8103
8175
  completeDraftOrder(orderId: string, data?: CompleteDraftDto): Promise<Order>;
8104
8176
  /**
8105
- * Send invoice for a draft order
8177
+ * Send invoice for a draft order.
8106
8178
  *
8107
- * @example
8108
- * ```typescript
8109
- * await client.sendDraftInvoice('draft_123', {
8110
- * to: 'customer@example.com',
8111
- * subject: 'Your Invoice',
8112
- * customMessage: 'Thank you for your order!',
8113
- * });
8114
- * ```
8179
+ * **Not callable.** The API-key `/v1` surface has no draft-order routes at
8180
+ * all, so this throws in every mode. Send the invoice from the dashboard.
8115
8181
  */
8116
8182
  sendDraftInvoice(orderId: string, data?: SendInvoiceDto): Promise<{
8117
8183
  message: string;
8118
8184
  }>;
8119
8185
  /**
8120
- * Delete a draft order
8186
+ * Delete a draft order.
8121
8187
  *
8122
- * @example
8123
- * ```typescript
8124
- * await client.deleteDraftOrder('draft_123');
8125
- * ```
8188
+ * **Not callable.** The API-key `/v1` surface has no draft-order routes at
8189
+ * all, so this throws in every mode. Delete drafts from the dashboard.
8126
8190
  */
8127
8191
  deleteDraftOrder(orderId: string): Promise<void>;
8128
8192
  /**
8129
- * Update a draft order
8193
+ * Update a draft order.
8130
8194
  *
8131
- * @example
8132
- * ```typescript
8133
- * const order = await client.updateDraftOrder('draft_123', {
8134
- * note: 'Updated customer note',
8135
- * email: 'newemail@example.com',
8136
- * shippingAddress: {
8137
- * firstName: 'John',
8138
- * lastName: 'Doe',
8139
- * address1: '123 Main St',
8140
- * city: 'New York',
8141
- * province: 'NY',
8142
- * country: 'US',
8143
- * zip: '10001',
8144
- * },
8145
- * });
8146
- * ```
8195
+ * **Not callable.** The API-key `/v1` surface has no draft-order routes at
8196
+ * all, so this throws in every mode. Edit drafts from the dashboard.
8147
8197
  */
8148
8198
  updateDraftOrder(orderId: string, data: UpdateDraftDto): Promise<Order>;
8149
8199
  /**
@@ -8152,7 +8202,14 @@ declare class BrainerceClient {
8152
8202
  */
8153
8203
  updateInventory(productId: string, data: UpdateInventoryDto): Promise<void>;
8154
8204
  /**
8155
- * Get current inventory for a product
8205
+ * Get current inventory for a product.
8206
+ *
8207
+ * **Admin mode only** — the API key needs the `inventory:read` scope.
8208
+ *
8209
+ * This used to request `/api/v1/inventory/:productId`, which does not
8210
+ * exist and 404'd silently. The live route is product-scoped:
8211
+ * `GET /api/v1/products/:id/inventory`. A product with no inventory row
8212
+ * reads back as all zeroes rather than 404ing.
8156
8213
  */
8157
8214
  getInventory(productId: string): Promise<{
8158
8215
  available: number;
@@ -8160,16 +8217,16 @@ declare class BrainerceClient {
8160
8217
  total: number;
8161
8218
  }>;
8162
8219
  /**
8163
- * Edit inventory manually with reason for audit trail
8220
+ * Edit inventory manually with a reason for the audit trail.
8164
8221
  *
8165
- * @example
8166
- * ```typescript
8167
- * const inventory = await client.editInventory({
8168
- * productId: 'prod_123',
8169
- * newTotal: 100,
8170
- * reason: 'Restocked from warehouse',
8171
- * });
8172
- * ```
8222
+ * **Not callable.** The API-key `/v1` surface carries no `inventory`
8223
+ * namespace, so this throws in every mode.
8224
+ *
8225
+ * {@link updateInventory} is the closest working call: it sets the same
8226
+ * absolute stock level over `PUT /api/v1/products/:id/inventory`, but the
8227
+ * reason is not yours to choose — the server records a generic
8228
+ * "Updated via External API" against the audit trail. If the reason text
8229
+ * matters, make the edit from the dashboard.
8173
8230
  */
8174
8231
  editInventory(data: EditInventoryDto): Promise<{
8175
8232
  total: number;
@@ -8177,41 +8234,29 @@ declare class BrainerceClient {
8177
8234
  available: number;
8178
8235
  }>;
8179
8236
  /**
8180
- * Get inventory sync status for all products in the store
8237
+ * Get inventory sync status for all products in the store.
8181
8238
  *
8182
- * @example
8183
- * ```typescript
8184
- * const status = await client.getInventorySyncStatus();
8185
- * console.log(`${status.pending} products pending sync`);
8186
- * console.log(`Last sync: ${status.lastSyncAt}`);
8187
- * ```
8239
+ * **Not callable.** The API-key `/v1` surface carries no `inventory`
8240
+ * namespace, so this throws in every mode. Sync state is visible in the
8241
+ * dashboard; {@link getSyncStatus} covers platform sync jobs.
8188
8242
  */
8189
8243
  getInventorySyncStatus(): Promise<InventorySyncStatus>;
8190
8244
  /**
8191
- * Get inventory for multiple products at once
8245
+ * Get inventory for multiple products at once.
8192
8246
  *
8193
- * @example
8194
- * ```typescript
8195
- * const inventories = await client.getBulkInventory(['prod_123', 'prod_456', 'prod_789']);
8196
- * inventories.forEach(inv => {
8197
- * console.log(`${inv.productId}: ${inv.available} available`);
8198
- * });
8199
- * ```
8247
+ * **Not callable.** The API-key `/v1` surface carries no `inventory`
8248
+ * namespace, so this throws in every mode. There is no bulk stock read on
8249
+ * the API key today: fall back to {@link getInventory} per product, or read
8250
+ * the stock that {@link getProducts} already returns on each product.
8200
8251
  */
8201
8252
  getBulkInventory(productIds: string[]): Promise<BulkInventoryResponse[]>;
8202
8253
  /**
8203
- * Reconcile inventory between Brainerce and connected platforms
8204
- * Detects and optionally fixes discrepancies
8205
- *
8206
- * @example
8207
- * ```typescript
8208
- * // Reconcile single product (dry run)
8209
- * const result = await client.reconcileInventory({ productId: 'prod_123' });
8254
+ * Reconcile inventory between Brainerce and connected platforms.
8255
+ * Detects and optionally fixes discrepancies.
8210
8256
  *
8211
- * // Reconcile all products with auto-fix
8212
- * const summary = await client.reconcileInventory({ autoFix: true });
8213
- * console.log(`Reconciled ${summary.reconciled} products`);
8214
- * ```
8257
+ * **Not callable.** The API-key `/v1` surface carries no `inventory`
8258
+ * namespace, so this throws in every mode, `autoFix` included. Reconcile
8259
+ * from the dashboard.
8215
8260
  */
8216
8261
  reconcileInventory(options?: {
8217
8262
  productId?: string;
@@ -8221,6 +8266,10 @@ declare class BrainerceClient {
8221
8266
  * Check stock availability for one or more items before adding to cart or checkout
8222
8267
  * Use this to validate stock before operations that might fail due to insufficient inventory
8223
8268
  *
8269
+ * **Vibe-coded or storefront mode only.** There is no stock-check route on
8270
+ * the API-key `/v1` surface; in admin mode this throws. The same applies to
8271
+ * {@link checkCartStock}, which routes through here.
8272
+ *
8224
8273
  * @example
8225
8274
  * ```typescript
8226
8275
  * // Check if items are available before adding to cart
@@ -8485,20 +8534,32 @@ declare class BrainerceClient {
8485
8534
  * Request a password reset email for a customer
8486
8535
  * Works in vibe-coded, storefront, and admin mode
8487
8536
  *
8488
- * The `resetUrl` MUST be supplied explicitly in non-browser (SSR / Node)
8489
- * contexts auto-deriving it from `window.location.origin` is impossible
8490
- * there and historically resulted in `undefined` being sent to the backend,
8491
- * which then bounced the email to a broken link. In browser contexts the
8492
- * origin is still used as a fallback but the SDK logs a one-time warning
8493
- * recommending an explicit value so server-rendered + proxied dashboards
8494
- * don't silently rely on the wrong host.
8537
+ * The reset link's host is chosen by the server, not by the caller: it is
8538
+ * derived from the sales channel's own domain, falling back to the backend's
8539
+ * configured frontend URL, and the request is rejected if neither resolves.
8540
+ *
8541
+ * The SDK used to send a `resetUrl` in the request body. The backend
8542
+ * deliberately removed that field: any caller could submit an arbitrary URL
8543
+ * and have it emailed, from a Brainerce-domained sender, to the address
8544
+ * holder — a phishing-link injection. `ForgotPasswordDto` now declares
8545
+ * `email` and nothing else, and the API's global validation pipe runs with
8546
+ * `whitelist` + `forbidNonWhitelisted`, so a body carrying `resetUrl` fails
8547
+ * the whole call with `400 property resetUrl should not exist`. Only `email`
8548
+ * is sent.
8549
+ *
8550
+ * The endpoint always answers 200 so it cannot be used to enumerate
8551
+ * accounts; the mail is only sent when a matching customer exists.
8495
8552
  *
8496
8553
  * @param email - Customer email address
8497
- * @param options - Optional settings
8498
- * @param options.resetUrl - Reset URL the email links should point to.
8499
- * Required outside the browser; recommended inside it.
8554
+ * @param options - Accepted for source compatibility only. Ignored.
8500
8555
  */
8501
8556
  forgotPassword(email: string, options?: {
8557
+ /**
8558
+ * @deprecated Ignored, and never sent. The server derives the reset URL
8559
+ * itself (sales-channel domain, then the configured frontend URL) and
8560
+ * rejects the field outright, so passing it has no effect. To change
8561
+ * where reset links point, set the sales channel's domain.
8562
+ */
8502
8563
  resetUrl?: string;
8503
8564
  }): Promise<{
8504
8565
  message: string;
@@ -12232,7 +12293,7 @@ declare class BrainerceError extends Error {
12232
12293
  constructor(message: string, statusCode: number, details?: unknown);
12233
12294
  }
12234
12295
 
12235
- declare const SDK_VERSION = "1.60.0";
12296
+ declare const SDK_VERSION = "2.0.0";
12236
12297
 
12237
12298
  /**
12238
12299
  * Verify a webhook signature from Brainerce
@@ -12733,4 +12794,4 @@ interface CategorySitemapOptions {
12733
12794
  */
12734
12795
  declare function getCategorySitemapEntries(client: BrainerceClient, opts: CategorySitemapOptions): Promise<SitemapEntry[]>;
12735
12796
 
12736
- export { type AddToCartDto, type AddressDetailsResult, type AddressSuggestion, type AnnouncementContent, type AnnouncementSeverity, type AppliedDiscount, type ApplyCouponDto, type AttachModifierGroupInput, type Attribute, type AttributeOption, type AttributeSource, type AvailabilityClock, type BlogPost, type BlogPostListParams, type BlogPostListResponse, type BlogSitemapOptions, type BrainerceApiError, BrainerceClient, type BrainerceClientOptions, BrainerceError, type Brand, type BulkCreateProductsDto, type BulkCreateProductsError, type BulkCreateProductsJob, type BulkCreateProductsStatus, type BulkInventoryResponse, type BulkSaveVariantsDto, type BulkSaveVariantsResponse, type BulkVariantInput, type BusinessHoursWindow, type Cart, type CartAppliedDiscount, type CartBundleOffer, type CartBundlesResponse, type CartIncludeOption, type CartIncludeOptions, type CartItem, type CartItemModifierLine, type CartNudge, type CartRecommendationsResponse, type CartStatus, type CartUpgradeSuggestion, type CartUpgradesResponse, type CartWithIncludes, type Category, type CategoryDetail, type CategoryNode, type CategorySitemapOptions, type CategorySuggestion, type Checkout, type CheckoutAddress, type CheckoutBumpsResponse, type CheckoutCustomFieldDefinition, type CheckoutFieldPricing, type CheckoutFieldVisibility, type CheckoutLineItem, type CheckoutPrefillData, type CheckoutStatus, type CompleteCheckoutResponse, type CompleteDraftDto, type ConfigureOAuthProviderDto as ConfigureOAuthProviderInput, type ConflictStatus, type ConnectorPlatform, type ContactFormFieldType, type ContactFormFieldValidation, type ContactFormPublic, type ContactFormPublicField, type ContactFormSummary, type Content, type ContentDataMap, type ContentStatus, type ContentSummary, type ContentType, type Coupon, type CouponCreateResponse, type CouponQueryParams, type CouponStatus, type CouponType, type CouponValidationWarning, type CreateAddressDto, type CreateAttributeDto as CreateAttributeInput, type CreateAttributeOptionDto as CreateAttributeOptionInput, type CreateBrandDto as CreateBrandInput, type CreateCategoryDto as CreateCategoryInput, type CreateCheckoutDto, type CreateContentInput, type CreateCouponDto, type CreateCustomApiDto, type CreateCustomerDto, type CreateEmailTemplateDto as CreateEmailTemplateInput, type CreateGuestOrderDto, type CreateInquiryInput, type CreateInquiryResponse, type CreateMetafieldDefinitionDto as CreateMetafieldDefinitionInput, type CreateModifierGroupInput, type CreateModifierInput, type CreateOrderDto, type CreateProductDto, type CreateRefundDto, type CreateShippingRateDto as CreateShippingRateInput, type CreateShippingZoneDto as CreateShippingZoneInput, type CreateTagDto as CreateTagInput, type CreateTaxRateDto as CreateTaxRateInput, type CreateVariantDto, type CustomApiAuthType, type CustomApiConnectionStatus, type CustomApiCredentials, type CustomApiIntegration, type CustomApiSyncConfig, type CustomApiSyncDirection, type CustomApiTestResult, type Customer, type CustomerAddress, type CustomerAuthResponse, type CustomerOAuthProvider, type CustomerProfile, type CustomerQueryParams, type DateAvailabilityConstraints, type DateAvailabilitySurface, type DateFieldParseResult, type DeleteProductResponse, type DiscountBanner, type DiscountRuleType, type DownloadFile, type DraftLineItem, type EditInventoryDto, type EmailDomain, type EmailEventSettings, type EmailEventType, type EmailSettings, type EmailTemplate, type EmailTemplatePreview, type EmailTemplatesResponse, type EmailVerificationResponse, type ExtendReservationResponse, type FaqContent, type FaqItem, type FooterColumn, type FooterContent, type FooterLink, type FooterSocialLink, type FormatPriceOptions, type FormatProductPriceOptions, type FreeAllocationPolicy, type FulfillOrderDto, type GuestCheckoutStartResponse, type GuestOrderResponse, type HeaderContent, type HeaderCta, type HeaderLogo, type HeaderNavItem, type InsufficientStockError, type InventoryInfo, type InventoryReservationStrategy, type InventorySyncStatus, type InventoryTrackingMode, type InvitationStatus, type InviteMemberDto as InviteMemberInput, type InviteStoreMemberDto as InviteStoreMemberInput, type JsonLdOptions, type ListModifierGroupsParams, type LocalCart, type LocalCartItem, type LockedVariant, type LoyaltyNextTierSummary, type LoyaltyReward, type LoyaltyStatus, type LoyaltyTierSummary, type MergeCartsDto, type MetafieldConflict, type MetafieldConflictResolution, type MetafieldDefinition, type MetafieldFilter, type MetafieldFilterValue, type MetafieldFiltersResponse, type MetafieldType, type Modifier, type ModifierGroup, type ModifierSelection, type ModifierSelectionType, type ModifierValidationCode, type ModifierValidationError, type ModifierValidationFailedError, type MyProductReview, type OAuthAuthorizeResponse, type OAuthCallbackResponse, type OAuthConnection, type OAuthConnectionsResponse, type OAuthProviderConfig, type OAuthProviderType, type OAuthProvidersResponse, type Order, type OrderAddress, type OrderBump, type OrderCustomer, type OrderDownloadLink, type OrderItem, type OrderQueryParams, type OrderStatus, type OrderStatusChange, type PageContent, type PageSeo, type PaginatedResponse, type ParsedDateFieldValue, type PaymentClientSdk, type PaymentConfig, type PaymentIntent, type PaymentProvider, type PaymentProviderConfig, type PaymentProvidersConfig, type PaymentStatus, type PaymentUrlOptions, type PickupLocation, type PlatformCouponCapabilities, type PlatformMetafieldMetadata, type PreviewEmailTemplateDto as PreviewEmailTemplateInput, type PriceDriftError, type Product, type ProductAttributeInput, type ProductAvailability, type ProductCustomizationField, type ProductDiscount, type ProductDiscountBadge, type ProductImage, type ProductMetafield, type ProductMetafieldValue, type ProductModifierGroupAttachment, type ProductQueryParams, type ProductRecommendation, type ProductRecommendationsResponse, type ProductRelationType, type ProductReview, type ProductReviewAdmin, type ProductSitemapOptions, type ProductSuggestion, type ProductUnavailableError, type ProductVariant, type PublicMetafieldDefinition, type PublishProductResponse, RTL_LOCALES, type RecommendationVariant, type ReconcileInventoryResponse, type RedeemRewardResult, type ReferralInfo, type Refund, type RefundLineItem, type RefundLineItemResponse, type RefundType, type RegisterCustomerDto, type RelativeDateBounds, type ReservationInfo, type ResolveMetafieldConflictDto as ResolveMetafieldConflictInput, type ResolveSyncConflictDto as ResolveSyncConflictInput, type RichTextContent, SDK_VERSION, type SearchSuggestions, type SelectPickupLocationDto, type SelectShippingMethodDto, type SendInvoiceDto, type SessionCartRef, type SetBillingAddressDto, type SetCheckoutCustomFieldsDto, type SetCheckoutCustomerDto, type SetDefinitionProductsDto as SetDefinitionProductsInput, type SetMetafieldPlatformsDto as SetMetafieldPlatformsInput, type SetShippingAddressDto, type SetShippingAddressResponse, type ShippingDestinations, type ShippingLine, type ShippingRate, type ShippingRateConfig, type ShippingRateType, type ShippingSummaryEntry, type ShippingZone, type ShippingZoneQueryParams, type SitemapEntry, type StockAvailabilityRequest, type StockAvailabilityResponse, type StockAvailabilityResult, type StoreInfo, type StoreInvitation, type StoreInvitationDetails, type StoreMember, type StorePermission, type StoreRole, type StoreTeamResponse, type StoreTracking, type SubmitProductReviewInput, type SupportedLocaleObject, type SyncConflict, type SyncConflictResolution, type SyncJob, type Tag, type TaxBreakdown, type TaxBreakdownItem, type TaxRate, type TaxonomyQueryParams, type TeamInvitation, type TeamInvitationsResponse, type TeamMember, type TeamMembersResponse, type TeamRole, type TrackingEventItem, type TrackingEventName, type TrackingEventPayload, type UpdateAddressDto, type UpdateAttachmentInput, type UpdateAttributeDto as UpdateAttributeInput, type UpdateAttributeOptionDto as UpdateAttributeOptionInput, type UpdateBrandDto as UpdateBrandInput, type UpdateCartItemDto, type UpdateCategoryDto as UpdateCategoryInput, type UpdateContentInput, type UpdateCouponDto, type UpdateCustomApiDto, type UpdateCustomerDto, type UpdateDraftDto, type UpdateEmailSettingsDto as UpdateEmailSettingsInput, type UpdateEmailTemplateDto as UpdateEmailTemplateInput, type UpdateInventoryDto, type UpdateMemberRoleDto as UpdateMemberRoleInput, type UpdateMetafieldDefinitionDto as UpdateMetafieldDefinitionInput, type UpdateModifierGroupInput, type UpdateModifierInput, type UpdateOAuthProviderDto as UpdateOAuthProviderInput, type UpdateOrderDto, type UpdateOrderShippingDto, type UpdateProductDto, type UpdateShippingRateDto as UpdateShippingRateInput, type UpdateShippingZoneDto as UpdateShippingZoneInput, type UpdateStoreMemberDto as UpdateStoreMemberInput, type UpdateTagDto as UpdateTagInput, type UpdateTaxRateDto as UpdateTaxRateInput, type UpdateVariantDto, type UpdateVariantInventoryDto, type UpsertProductMetafieldDto as UpsertProductMetafieldInput, type UserStore, type UserStorePermissions, type VariantInventoryResponse, type VariantPlatformOverlay, type VariantStatus, type WaitForOrderOptions, type WaitForOrderResult, type WebhookEvent, type WebhookEventType, type WriteProductReviewInput, buildArticleJsonLd, buildBreadcrumbJsonLd, buildCollectionPageJsonLd, buildOrganizationJsonLd, buildProductFaqJsonLd, buildProductJsonLd, buildWebsiteJsonLd, computeAvailableSlots, createWebhookHandler, deriveSeoDescription, enableDevGuards, formatMoney, formatPrice, formatProductPrice, formatVariantPrice, getBlogSitemapEntries, getBusinessHoursForDate, getCartItemImage, getCartItemName, getCartTotals, getCategorySitemapEntries, getDescriptionContent, getDirectionForLocale, formatPrice as getPriceDisplay, getProductCustomizationFields, getProductMetafield, getProductMetafieldValue, getProductMetafieldsByType, getProductPrice, getProductPriceInfo, getProductSitemapEntries, getProductSwatches, getStockStatus, getVariantOptions, getVariantPrice, isAllowedPaymentUrl, isCalendarDateAllowed, isCouponApplicableToProduct, isDateValueAllowed, isHtmlDescription, isWebhookEventType, jsonLdScriptProps, parseDateFieldValue, parseWebhookEvent, resolveRelativeBounds, resolveStoreLocalParts, safePaymentRedirect, stripHtml, validateDateAvailabilityConfig, verifyWebhook };
12797
+ export { type AddToCartDto, type AddressDetailsResult, type AddressSuggestion, type AnnouncementContent, type AnnouncementSeverity, type AppliedDiscount, type ApplyCouponDto, type AttachModifierGroupInput, type Attribute, type AttributeOption, type AttributeSource, type AvailabilityClock, type BlogPost, type BlogPostListParams, type BlogPostListResponse, type BlogSitemapOptions, type BrainerceApiError, BrainerceClient, type BrainerceClientOptions, BrainerceError, type Brand, type BulkCreateProductsDto, type BulkCreateProductsError, type BulkCreateProductsJob, type BulkCreateProductsStatus, type BulkInventoryResponse, type BulkSaveVariantsDto, type BulkSaveVariantsResponse, type BulkVariantInput, type BusinessHoursWindow, type Cart, type CartAppliedDiscount, type CartBundleOffer, type CartBundlesResponse, type CartIncludeOption, type CartIncludeOptions, type CartItem, type CartItemModifierLine, type CartNudge, type CartRecommendationsResponse, type CartStatus, type CartUpgradeSuggestion, type CartUpgradesResponse, type CartWithIncludes, type Category, type CategoryDetail, type CategoryNode, type CategorySitemapOptions, type CategorySuggestion, type Checkout, type CheckoutAddress, type CheckoutBumpsResponse, type CheckoutCustomFieldDefinition, type CheckoutFieldPricing, type CheckoutFieldVisibility, type CheckoutLineItem, type CheckoutPrefillData, type CheckoutStatus, type CompleteCheckoutResponse, type CompleteDraftDto, type ConfigureOAuthProviderDto as ConfigureOAuthProviderInput, type ConflictStatus, type ConnectorPlatform, type ContactFormFieldType, type ContactFormFieldValidation, type ContactFormPublic, type ContactFormPublicField, type ContactFormSummary, type Content, type ContentDataMap, type ContentStatus, type ContentSummary, type ContentType, type Coupon, type CouponCreateResponse, type CouponQueryParams, type CouponStatus, type CouponType, type CouponValidationWarning, type CreateAddressDto, type CreateAttributeDto as CreateAttributeInput, type CreateAttributeOptionDto as CreateAttributeOptionInput, type CreateBrandDto as CreateBrandInput, type CreateCategoryDto as CreateCategoryInput, type CreateCheckoutDto, type CreateContentInput, type CreateCouponDto, type CreateCustomApiDto, type CreateCustomerDto, type CreateEmailTemplateDto as CreateEmailTemplateInput, type CreateGuestOrderDto, type CreateInquiryInput, type CreateInquiryResponse, type CreateMetafieldDefinitionDto as CreateMetafieldDefinitionInput, type CreateModifierGroupInput, type CreateModifierInput, type CreateOrderDto, type CreateProductDto, type CreateRefundDto, type CreateShippingRateDto as CreateShippingRateInput, type CreateShippingZoneDto as CreateShippingZoneInput, type CreateTagDto as CreateTagInput, type CreateTaxRateDto as CreateTaxRateInput, type CreateVariantDto, type CustomApiAuthType, type CustomApiConnectionStatus, type CustomApiCredentials, type CustomApiIntegration, type CustomApiSyncConfig, type CustomApiSyncDirection, type CustomApiTestResult, type Customer, type CustomerAddress, type CustomerAuthResponse, type CustomerOAuthProvider, type CustomerProfile, type CustomerQueryParams, type DateAvailabilityConstraints, type DateAvailabilitySurface, type DateFieldParseResult, type DeleteProductResponse, type DeliveryType, type DiscountBanner, type DiscountRuleType, type DownloadFile, type DraftLineItem, type EditInventoryDto, type EmailDomain, type EmailEventSettings, type EmailEventType, type EmailSettings, type EmailTemplate, type EmailTemplatePreview, type EmailTemplatesResponse, type EmailVerificationResponse, type ExtendReservationResponse, type FaqContent, type FaqItem, type FooterColumn, type FooterContent, type FooterLink, type FooterSocialLink, type FormatPriceOptions, type FormatProductPriceOptions, type FreeAllocationPolicy, type FulfillOrderDto, type GuestCheckoutStartResponse, type GuestOrderResponse, type HeaderContent, type HeaderCta, type HeaderLogo, type HeaderNavItem, type InsufficientStockError, type InventoryInfo, type InventoryReservationStrategy, type InventorySyncStatus, type InventoryTrackingMode, type InvitationStatus, type InviteMemberDto as InviteMemberInput, type InviteStoreMemberDto as InviteStoreMemberInput, type JsonLdOptions, type ListModifierGroupsParams, type LocalCart, type LocalCartItem, type LockedVariant, type LoyaltyNextTierSummary, type LoyaltyReward, type LoyaltyStatus, type LoyaltyTierSummary, type MergeCartsDto, type MetafieldConflict, type MetafieldConflictResolution, type MetafieldDefinition, type MetafieldFilter, type MetafieldFilterValue, type MetafieldFiltersResponse, type MetafieldType, type Modifier, type ModifierGroup, type ModifierSelection, type ModifierSelectionType, type ModifierValidationCode, type ModifierValidationError, type ModifierValidationFailedError, type MyProductReview, type OAuthAuthorizeResponse, type OAuthCallbackResponse, type OAuthConnection, type OAuthConnectionsResponse, type OAuthProviderConfig, type OAuthProviderType, type OAuthProvidersResponse, type Order, type OrderAddress, type OrderBump, type OrderCustomer, type OrderDownloadLink, type OrderItem, type OrderQueryParams, type OrderStatus, type OrderStatusChange, type PageContent, type PageSeo, type PaginatedResponse, type ParsedDateFieldValue, type PaymentClientSdk, type PaymentConfig, type PaymentIntent, type PaymentProvider, type PaymentProviderConfig, type PaymentProvidersConfig, type PaymentRecordStatus, type PaymentStatus, type PaymentUrlOptions, type PickupLocation, type PlatformCouponCapabilities, type PlatformMetafieldMetadata, type PreviewEmailTemplateDto as PreviewEmailTemplateInput, type PriceDriftError, type Product, type ProductAttributeInput, type ProductAvailability, type ProductCustomizationField, type ProductDiscount, type ProductDiscountBadge, type ProductImage, type ProductMetafield, type ProductMetafieldValue, type ProductModifierGroupAttachment, type ProductQueryParams, type ProductRecommendation, type ProductRecommendationsResponse, type ProductRelationType, type ProductReview, type ProductReviewAdmin, type ProductSitemapOptions, type ProductStatus, type ProductSuggestion, type ProductUnavailableError, type ProductVariant, type PublicMetafieldDefinition, type PublishProductResponse, RTL_LOCALES, type RecommendationVariant, type ReconcileInventoryResponse, type RedeemRewardResult, type ReferralInfo, type Refund, type RefundLineItem, type RefundLineItemResponse, type RefundType, type RegisterCustomerDto, type RelativeDateBounds, type ReservationInfo, type ResolveMetafieldConflictDto as ResolveMetafieldConflictInput, type ResolveSyncConflictDto as ResolveSyncConflictInput, type ReviewStatus, type RichTextContent, SDK_VERSION, type SearchSuggestions, type SelectPickupLocationDto, type SelectShippingMethodDto, type SendInvoiceDto, type SessionCartRef, type SetBillingAddressDto, type SetCheckoutCustomFieldsDto, type SetCheckoutCustomerDto, type SetDefinitionProductsDto as SetDefinitionProductsInput, type SetMetafieldPlatformsDto as SetMetafieldPlatformsInput, type SetShippingAddressDto, type SetShippingAddressResponse, type ShippingDestinations, type ShippingLine, type ShippingRate, type ShippingRateConfig, type ShippingRateType, type ShippingSummaryEntry, type ShippingZone, type ShippingZoneQueryParams, type SitemapEntry, type StockAvailabilityRequest, type StockAvailabilityResponse, type StockAvailabilityResult, type StoreInfo, type StoreInvitation, type StoreInvitationDetails, type StoreMember, type StorePermission, type StoreRole, type StoreTeamResponse, type StoreTracking, type SubmitProductReviewInput, type SupportedLocaleObject, type SyncConflict, type SyncConflictResolution, type SyncJob, type Tag, type TaxBreakdown, type TaxBreakdownItem, type TaxRate, type TaxonomyQueryParams, type TeamInvitation, type TeamInvitationsResponse, type TeamMember, type TeamMembersResponse, type TeamRole, type TrackingEventItem, type TrackingEventName, type TrackingEventPayload, type UpdateAddressDto, type UpdateAttachmentInput, type UpdateAttributeDto as UpdateAttributeInput, type UpdateAttributeOptionDto as UpdateAttributeOptionInput, type UpdateBrandDto as UpdateBrandInput, type UpdateCartItemDto, type UpdateCategoryDto as UpdateCategoryInput, type UpdateContentInput, type UpdateCouponDto, type UpdateCustomApiDto, type UpdateCustomerDto, type UpdateDraftDto, type UpdateEmailSettingsDto as UpdateEmailSettingsInput, type UpdateEmailTemplateDto as UpdateEmailTemplateInput, type UpdateInventoryDto, type UpdateMemberRoleDto as UpdateMemberRoleInput, type UpdateMetafieldDefinitionDto as UpdateMetafieldDefinitionInput, type UpdateModifierGroupInput, type UpdateModifierInput, type UpdateOAuthProviderDto as UpdateOAuthProviderInput, type UpdateOrderDto, type UpdateOrderShippingDto, type UpdateProductDto, type UpdateShippingRateDto as UpdateShippingRateInput, type UpdateShippingZoneDto as UpdateShippingZoneInput, type UpdateStoreMemberDto as UpdateStoreMemberInput, type UpdateTagDto as UpdateTagInput, type UpdateTaxRateDto as UpdateTaxRateInput, type UpdateVariantDto, type UpdateVariantInventoryDto, type UpsertProductMetafieldDto as UpsertProductMetafieldInput, type UserStore, type UserStorePermissions, type VariantInventoryResponse, type VariantPlatformOverlay, type VariantStatus, type WaitForOrderOptions, type WaitForOrderResult, type WebhookEvent, type WebhookEventType, type WriteProductReviewInput, buildArticleJsonLd, buildBreadcrumbJsonLd, buildCollectionPageJsonLd, buildOrganizationJsonLd, buildProductFaqJsonLd, buildProductJsonLd, buildWebsiteJsonLd, computeAvailableSlots, createWebhookHandler, deriveSeoDescription, enableDevGuards, formatMoney, formatPrice, formatProductPrice, formatVariantPrice, getBlogSitemapEntries, getBusinessHoursForDate, getCartItemImage, getCartItemName, getCartTotals, getCategorySitemapEntries, getDescriptionContent, getDirectionForLocale, formatPrice as getPriceDisplay, getProductCustomizationFields, getProductMetafield, getProductMetafieldValue, getProductMetafieldsByType, getProductPrice, getProductPriceInfo, getProductSitemapEntries, getProductSwatches, getStockStatus, getVariantOptions, getVariantPrice, isAllowedPaymentUrl, isCalendarDateAllowed, isCouponApplicableToProduct, isDateValueAllowed, isHtmlDescription, isWebhookEventType, jsonLdScriptProps, parseDateFieldValue, parseWebhookEvent, resolveRelativeBounds, resolveStoreLocalParts, safePaymentRedirect, stripHtml, validateDateAvailabilityConfig, verifyWebhook };