Implemented promocode application feature in the cart, allowing users to select and apply discounts during checkout. Updated GraphQL mutation, cart logic, and UI to support this functionality. - Enhanced `cart.vue` with a new promocode selection section, including dropdown and styling. - Modified `buyOrder` mutation to accept `promocodeUuid` and `forceBalance` parameters. - Updated translations (`en-gb.json` and `ru-ru.json`) to include promocode-related strings. Improves user experience by enabling discount application directly in the cart. No breaking changes.
108 lines
1.9 KiB
TypeScript
108 lines
1.9 KiB
TypeScript
import { ORDER_FRAGMENT } from '@graphql/fragments/orders.fragment';
|
|
|
|
export const ADD_TO_CART = gql`
|
|
mutation addToCart(
|
|
$orderUuid: UUID!,
|
|
$productUuid: UUID!
|
|
) {
|
|
addOrderProduct(
|
|
orderUuid: $orderUuid,
|
|
productUuid: $productUuid
|
|
) {
|
|
order {
|
|
...Order
|
|
}
|
|
}
|
|
}
|
|
${ORDER_FRAGMENT}
|
|
`;
|
|
|
|
export const REMOVE_FROM_CART = gql`
|
|
mutation removeFromCart(
|
|
$orderUuid: UUID!,
|
|
$productUuid: UUID!
|
|
) {
|
|
removeOrderProduct(
|
|
orderUuid: $orderUuid,
|
|
productUuid: $productUuid
|
|
) {
|
|
order {
|
|
...Order
|
|
}
|
|
}
|
|
}
|
|
${ORDER_FRAGMENT}
|
|
`;
|
|
|
|
export const REMOVE_KIND_FROM_CART = gql`
|
|
mutation removeKindFromCart(
|
|
$orderUuid: UUID!,
|
|
$productUuid: UUID!
|
|
) {
|
|
removeOrderProductsOfAKind(
|
|
orderUuid: $orderUuid,
|
|
productUuid: $productUuid
|
|
) {
|
|
order {
|
|
...Order
|
|
}
|
|
}
|
|
}
|
|
${ORDER_FRAGMENT}
|
|
`;
|
|
|
|
export const REMOVE_ALL_FROM_CART = gql`
|
|
mutation removeAllFromCart(
|
|
$orderUuid: UUID!
|
|
) {
|
|
removeAllOrderProducts(
|
|
orderUuid: $orderUuid
|
|
) {
|
|
order {
|
|
...Order
|
|
}
|
|
}
|
|
}
|
|
${ORDER_FRAGMENT}
|
|
`;
|
|
|
|
export const BULK_CART = gql`
|
|
mutation bulkOrderAction(
|
|
$orderUuid: UUID!,
|
|
$action: String!,
|
|
$products: [BulkProductInput]!
|
|
) {
|
|
bulkOrderAction(
|
|
orderUuid: $orderUuid
|
|
action: $action
|
|
products: $products
|
|
) {
|
|
order {
|
|
...Order
|
|
}
|
|
}
|
|
}
|
|
${ORDER_FRAGMENT}
|
|
`;
|
|
|
|
export const BUY_CART = gql`
|
|
mutation buyOrder(
|
|
$orderUuid: String!,
|
|
$forcePayment: Boolean,
|
|
$forceBalance: Boolean,
|
|
$promocodeUuid: String,
|
|
) {
|
|
buyOrder(
|
|
orderUuid: $orderUuid
|
|
forcePayment: $forcePayment
|
|
forceBalance: $forceBalance
|
|
promocodeUuid: $promocodeUuid
|
|
) {
|
|
transaction {
|
|
amount
|
|
process
|
|
paymentMethod
|
|
}
|
|
}
|
|
}
|
|
`;
|