npm.io
0.0.41 • Published 22h ago

@86d-app/wish

Licence
MIT
Version
0.0.41
Deps
0
Vulns
0
Weekly
0
Stars
5

86d

The Modern Foundation for Commerce

X · LinkedIn


This project is under active development and is not ready for production use.

Wish Module

Documentation: 86d.app/docs/modules/wish

Integrates your 86d store with Wish marketplace for product listing, order management, and shipment tracking. Supports product review status tracking, tag-based organization, and shipping deadline management.

Installation

npm install @86d-app/wish

Usage

import wish from "@86d-app/wish";

const module = wish({
  accessToken: "your-access-token",
  merchantId: "your-merchant-id",
});

Configuration

Option Type Default Description
accessToken string - Wish API access token
merchantId string - Wish merchant ID

Admin Endpoints

Method Path Description
GET /admin/wish/products List products with optional status, page, and limit filters
POST /admin/wish/products/create Create a new product listing
GET /admin/wish/products/:id Get a single product by ID
PUT /admin/wish/products/:id/update Update product fields
PUT /admin/wish/products/:id/disable Disable a product
GET /admin/wish/orders List orders with optional status, page, and limit filters
GET /admin/wish/orders/pending Get pending shipments (approved orders sorted oldest-first)
PUT /admin/wish/orders/:id/ship Ship an order with tracking number and carrier
GET /admin/wish/stats Get channel statistics

Store Endpoints

Method Path Description
POST /wish/webhooks Receive Wish webhook events

Controller API

interface WishController extends ModuleController {
  createProduct(params: { localProductId: string; title: string; price: number; shippingPrice: number; ... }): Promise<WishProduct>;
  updateProduct(id: string, params: Partial<WishProduct>): Promise<WishProduct | null>;
  disableProduct(id: string): Promise<WishProduct | null>;
  getProduct(id: string): Promise<WishProduct | null>;
  getProductByLocalId(productId: string): Promise<WishProduct | null>;
  listProducts(params?: { status?; take?; skip? }): Promise<WishProduct[]>;
  receiveOrder(params: { wishOrderId: string; items: unknown[]; ... }): Promise<WishOrder>;
  getOrder(id: string): Promise<WishOrder | null>;
  shipOrder(id: string, trackingNumber: string, carrier: string): Promise<WishOrder | null>;
  listOrders(params?: { status?; take?; skip? }): Promise<WishOrder[]>;
  getChannelStats(): Promise<ChannelStats>;
  getPendingShipments(): Promise<WishOrder[]>;
}

Types

  • WishProduct -- Product listing with shipping price, tags, parent SKU grouping, and Wish review status tracking
  • WishOrder -- Order with Wish-specific fee breakdown (orderTotal, shippingTotal, wishFee) and shipping deadlines (shipByDate, deliverByDate)
  • ChannelStats -- Aggregated product and order stats including pending shipment count

Notes

  • Product statuses: active, disabled, pending-review, rejected
  • Order statuses: pending, approved, shipped, delivered, refunded, cancelled
  • Products include shippingPrice as a required field (Wish requires separate shipping pricing)
  • getPendingShipments() returns approved orders sorted oldest-first for priority fulfillment
  • Admin page appears under the Sales group with the Star icon
  • Admin and store endpoints are fully wired via createAdminEndpoint and createStoreEndpoint

Keywords