Объект digitalData.cart содержит в себе переменные, которые описывают содержание корзины, условия оплаты и доставки.

В зависимости от того на какой странице находится пользователь, состав объекта может изменяться. Например переменная digitalData.cart.shippingMethod появляется только на странице этапа оформления заказа digitalData.page.type = ‘checkout’

Навигация по странице


Введение


Объект digitalData.cart должен быть объявлен и заполнен в исходном коде каждой страницы интернет-магазина:

Пример заполнения:

window.digitalData = {
  ...,
  cart: {
    id: "CART2203",
    currency: "RUB",
    subtotal: 25000,
    vouchers: [
      "MYVOUCHER1"
    ],
    voucherDiscount: 500,
    tax: 0,
    shippingCost: 1500,
    shippingMethod: "Доставка курьером",
    paymentMethod: "Оплата наличными",
    total: 26000,
    lineItems: [LineItem, LineItem, LineItem, ...]
  },
  ...
}

Даже если в корзине посетителя еще нет товаров, объект должен быть объявлен и частично заполнен Пример заполнения пустой корзины:

window.digitalData = {
  ...,
  cart: {
    currency: "RUB",
    subtotal: 0,
    total: 0,
    lineItems: []
  },
  ...
}

cart.currency


Тип данных: строка.

cart.currency - обязательная переменная, которая содержит в себе валюту корзины в формате ISO 4217 (USD, EUR, RUB).

cart.subtotal


Тип данных: число.

cart.subtotal - обязательная переменная, которая содержит в себе суммарную стоимость всех товаров, добавленных в корзину. cart.subtotal не включает доставку и скидки, примененные к корзине.

Включает скидки примененные к конкретным товарам, например сезонные скидки.

cart.total


Тип данных: число.

cart.total - обязательная переменная, которая содержит в себе суммарную стоимость всех товаров, добавленных в корзину, включая налог, скидки и стоимость доставки.

cart.lineItems


Тип данных: массив объектов.

cart.lineItems - обязательная переменная, которая содержит в себе массив объектов. Каждый объект описывает добавленный в корзину товар: сам товар, количество единиц товара и некоторые другие параметры.

Пример заполнения массива cart.lineItems объектами:

window.digitalData = {
  ...,
  cart: {
    ...,
    lineItems: [
      {
        product: {
          id: "1234567890",
          url: "http://website.com/product.html",
          imageUrl: "http://website.com/image.png",
          thumbnailUrl: "http://website.com/image_thump.png",
          name: "Ботинки Timberland",
          description: "Описание данного товара",
          manufacturer: "Timberland",
          category: ["Обувь","Ботинки"],
          currency: "RUB",
          unitPrice: 12990,
          unitSalePrice: 10990,
          skuCode: "TBL6065RW",
        },
        quantity: 2,
        subtotal: 10990,
        shippingMethod: "Почта России",
        shippingCost: 800
      },
      {
        product: {/*все переменные объекта product*/},
        quantity: 1,
        subtotal: 3200,
        shippingMethod: "Самовывоз",
        shippingCost: 0
      }
    ],
    ...
  },
  ...
}

где,

  • product - объект product. Обязательная переменная
  • quantity - число. Обязательная переменная, которая содержит в себе количество товаров с определенными product.id и product.skuCode

    В корзине может лежать несколько одинаковых товаров с разными вариациями, например 2 пары одинаковых ботинок с разным размером. Каждая вариация должна быть описана уникальным объектом массива lineItems

  • subtotal - число. Суммарная стоимость всех элементов lineItems, которая вычисляется как product.unitSalePrice * quantity.
  • totalDiscount - число. Суммарная скидка для текущего элемента массива lineItems от примененных купонов к конкретному товару или же от акций, связанных с количеством покупаемых товаров, вроде “купи 2, получи 1 бесплатно”.
  • shippingMethod - строка. Необязательная переменная. Обычно shippingMethod определяется для корзины, однако если предоставляется возможность выбора различных методов доставки для разных товаров, данное свойство может быть использовано в элементе массива lineItems
  • shippingCost - число. Необязательная переменная. Используете в случае, если применима логика, описанная для shippingMethod.

cart.id


Тип данных: строка.

cart.id - переменная, которая содержит в себе уникальный идентификатор корзины. Идентификатор корзины закрепляется за пользователем с момента первого входа на сайт и до факта оформления заказа. На странице “Спасибо за покупку” идентификатор корзины обновляется.

Данная переменная необходима для работы интеграции с Ofsys

cart.vouchers


Тип данных: массив строк.

cart.vouchers - переменная, которая содержит в себе массив промокодов, примененных к корзине.

Если к корзине был применен всего один промокод, переменная примет значение массива, состоящего из одной строки

cart.voucherDiscount


Тип данных: число.

cart.voucherDiscount - переменная, которая содержит в себе суммарную скидку после применения всех промокодов в валюте корзины.

cart.shippingMethod


Тип данных: строка.

cart.shippingMethod - переменная, которая содержит в себе способ доставки, выбранный в процессе оформления заказа.

Данная переменная появляется в объекте cart только на странице этапа оформления заказа.

cart.shippingCost


Тип данных: число.

cart.shippingCost - переменная, которая содержит в себе стоимость доставки для выбранного способа.

cart.paymentMethod


Тип данных: строка.

cart.paymentMethod - переменная, которая содержит в себе способ оплаты заказа.

Стоимость, способ доставки и вид оплаты могут быть изменены пользователем без перезагрузки страницы. Для динамического изменения любых переменных используйте метод digitalData.changes.push(...).

cart.tax


Тип данных: число.

cart.tax - переменная, которая содержит в себе сумму всех налогов, связанных с товарами корзины.