Skip to content

Merchant Data

Overview

Use merchant data to store additional information coupled with the cart. This can store information about the current user, the merchant, or any custom data needed by your application. When a cart transforms into an order, the merchant data is transferred to the order.

Setting Merchant Data

The stateless CartService accepts merchant data as a JSON string:

typescript
const data = JSON.stringify({ extraData: 'test', extraNumber: 123 });
const cart = await geinsOMS.cart.setMerchantData(cartId, data);

Reading Merchant Data

Merchant data is available on the returned CartType:

typescript
const cart = await geinsOMS.cart.get(cartId);
const merchantData = cart.merchantData; // string
if (merchantData) {
  const parsed = JSON.parse(merchantData);
  console.log(parsed.extraData); // 'test'
}

Type Safety

For type safety, define your merchant data type and use it consistently:

typescript
type MyMerchantData = {
  extraData: string;
  extraNumber?: number;
};

// When setting
const data: MyMerchantData = { extraData: 'test', extraNumber: 123 };
await geinsOMS.cart.setMerchantData(cartId, JSON.stringify(data));

// When reading
const cart = await geinsOMS.cart.get(cartId);
const parsed = JSON.parse(cart.merchantData!) as MyMerchantData;

Session Layer

With CartSession, merchant data is managed through convenience methods:

typescript
// Set
await session.merchantData.set(JSON.stringify({ extraData: 'test' }));

// Get (from cached cart)
const data = session.merchantData.get();

Released under the MIT License.