420 lines
12 KiB
Markdown
420 lines
12 KiB
Markdown
|
# wc/store/cart
|
||
|
|
||
|
## Table of Contents
|
||
|
|
||
|
- [Selectors](#selectors)
|
||
|
- [getCartData](#getcartdata)
|
||
|
- [getCustomerData](#getcustomerdata)
|
||
|
- [getShippingRates](#getshippingrates)
|
||
|
- [getNeedsShipping](#getneedsshipping)
|
||
|
- [getHasCalculatedShipping](#gethascalculatedshipping)
|
||
|
- [getCartTotals](#getcarttotals)
|
||
|
- [getCartMeta](#getcartmeta)
|
||
|
- [getCartErrors](#getcarterrors)
|
||
|
- [isApplyingCoupon](#isapplyingcoupon)
|
||
|
- [isCartDataStale](#iscartdatastale)
|
||
|
- [getCouponBeingApplied](#getcouponbeingapplied)
|
||
|
- [isRemovingCoupon](#isremovingcoupon)
|
||
|
- [getCouponBeingRemoved](#getcouponbeingremoved)
|
||
|
- [getCartItem](#getcartitem)
|
||
|
- [isItemPendingQuantity](#isitempendingquantity)
|
||
|
- [isItemPendingDelete](#isitempendingdelete)
|
||
|
- [isCustomerDataUpdating](#iscustomerdataupdating)
|
||
|
- [isShippingRateBeingSelected](#isshippingratebeingselected)
|
||
|
|
||
|
## Selectors
|
||
|
|
||
|
### getCartData
|
||
|
|
||
|
Returns the Cart data from the state.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`object` - The current cart data. This will be an object with the following keys:
|
||
|
|
||
|
- `coupons` - array containing the coupon items in the cart.
|
||
|
- `shippingRates` - array containing the cart shipping rates (see `getShippingRates` selector).
|
||
|
- `shippingAddress` - object containing the shipping address (see `getCustomerData` selector).
|
||
|
- `billingAddress` - object containing the billing address.
|
||
|
- `items` - array containing the cart items.
|
||
|
- `itemsCount` - number containing total number of items in the cart.
|
||
|
- `itemsWeight` - number containing the total weight of items in the cart.
|
||
|
- `crossSells` - array containing the cross sells.
|
||
|
- `needsPayment` - boolean indicating if the cart needs payment.
|
||
|
- `needsShipping`- boolean indicating if the cart needs shipping.
|
||
|
- `hasCalculatedShipping`- boolean indicating if the cart has calculated shipping.
|
||
|
- `fees`- array containing the cart fees.
|
||
|
- `totals`- object containing the cart totals (see `getCartTotals` selector).
|
||
|
- `errors`- array containing the cart errors (see `getCartErrors` selector).
|
||
|
- `paymentRequirements`- object containing the payment requirements for the cart.
|
||
|
- `extensions`- object containing the extensions data.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const cartData = store.getCartData();
|
||
|
```
|
||
|
|
||
|
### getCustomerData
|
||
|
|
||
|
Returns the shipping and billing address from the state.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`object`- The current shipping and billing address. This will be an object with the following keys:
|
||
|
|
||
|
- `shippingAddress`- Object containing the shipping address. This will be an object with the following
|
||
|
keys:
|
||
|
- `first_name`- string containing the first name.
|
||
|
- `last_name`- string containing the last name.
|
||
|
- `company`- string containing the company.
|
||
|
- `address_1`- string containing the address line 1.
|
||
|
- `address_2`- string containing the address line 2.
|
||
|
- `city`- string containing the city.
|
||
|
- `state`- string containing the state.
|
||
|
- `postcode`- string containing the postcode.
|
||
|
- `country`- string containing the country.
|
||
|
|
||
|
- `billingAddress`- Object containing the billing address (same keys as shipping address).
|
||
|
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const customerData = store.getCustomerData();
|
||
|
```
|
||
|
|
||
|
### getShippingRates
|
||
|
|
||
|
Returns the shipping rates from the state.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`array`- array containing the shipping rates.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const shippingRates = store.getShippingRates();
|
||
|
```
|
||
|
|
||
|
### getNeedsShipping
|
||
|
|
||
|
Queries whether the cart needs shipping.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if the cart needs shipping.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const needsShipping = store.getNeedsShipping();
|
||
|
```
|
||
|
|
||
|
### getHasCalculatedShipping
|
||
|
|
||
|
Queries whether the cart shipping has been calculated.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if the shipping has been calculated.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const hasCalculatedShipping = store.getHasCalculatedShipping();
|
||
|
```
|
||
|
|
||
|
### getCartTotals
|
||
|
|
||
|
Returns the cart totals from state.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`object`- The current cart totals. This will be an object with the following keys:
|
||
|
|
||
|
- `total_items`- string containing the sum total of items in the cart without discount, tax or shipping.
|
||
|
- `total_items_tax`- string containing the total tax on all items before discount.
|
||
|
- `total_fees`- string containing the total transaction fees.
|
||
|
- `total_fees_tax`- string containing the tax on the total transaction fees.
|
||
|
- `total_discount`- string containing the total discount applied to the cart.
|
||
|
- `total_discount_tax`- string containing the tax applied to the total discount amount.
|
||
|
- `total_shipping`- string containing the total shipping cost.
|
||
|
- `total_shipping_tax`- string containing the tax applied to the total shipping cost.
|
||
|
- `total_tax`- string containing the total tax applied to the cart.
|
||
|
- `total_price`- string containing the total price of the cart including discount, tax or shipping.
|
||
|
- `tax_lines`- array of object containing the tax lines: `name`, `price`, and `rate`.
|
||
|
- `currency_code`- string containing the currency code for the cart.
|
||
|
- `currency_symbol`- string containing the currency symbol for the cart.
|
||
|
- `currency_minor_unit`- integer containing the currency minor unit for the cart.
|
||
|
- `currency_decimal_separator`- string containing the currency decimal separator for the cart.
|
||
|
- `currency_thousand_separator`- string containing the currency thousand separator for the cart.
|
||
|
- `currency_prefix`- string containing the currency prefix for the cart.
|
||
|
- `currency_suffix`- string containing the currency suffix for the cart.
|
||
|
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const cartTotals = store.getCartTotals();
|
||
|
```
|
||
|
|
||
|
### getCartMeta
|
||
|
|
||
|
Returns the cart meta from state.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`object`- The current cart meta. This will be an object with the following keys:
|
||
|
|
||
|
- `updatingCustomerData`- boolean indicating if the customer data is being updated.
|
||
|
- `updatingSelectedRate`- boolean indicating if the selected rate is being updated.
|
||
|
- `isCartDataStale`- boolean indicating if the cart data is stale.
|
||
|
- `applyingCoupon`- string containing the coupon code being applied.
|
||
|
- `removingCoupon`- string containing the coupon code being removed.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const cartMeta = store.getCartMeta();
|
||
|
```
|
||
|
|
||
|
### getCartErrors
|
||
|
|
||
|
Returns the cart errors from state if cart receives customer facing errors from the API.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`array`- array containing the cart errors.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const cartErrors = store.getCartErrors();
|
||
|
```
|
||
|
|
||
|
### isApplyingCoupon
|
||
|
|
||
|
Queries whether a coupon is being applied.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if a coupon is being applied.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isApplyingCoupon = store.isApplyingCoupon();
|
||
|
```
|
||
|
|
||
|
### isCartDataStale
|
||
|
|
||
|
Queries whether the cart data is stale.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if the cart data is stale.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isCartDataStale = store.isCartDataStale();
|
||
|
```
|
||
|
|
||
|
### getCouponBeingApplied
|
||
|
|
||
|
Returns the coupon code being applied.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`string`- The coupon code being applied.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const couponBeingApplied = store.getCouponBeingApplied();
|
||
|
```
|
||
|
|
||
|
### isRemovingCoupon
|
||
|
|
||
|
Queries whether a coupon is being removed.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if a coupon is being removed.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isRemovingCoupon = store.isRemovingCoupon();
|
||
|
```
|
||
|
|
||
|
### getCouponBeingRemoved
|
||
|
|
||
|
Returns the coupon code being removed.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`string`- The coupon code being removed.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const couponBeingRemoved = store.getCouponBeingRemoved();
|
||
|
```
|
||
|
|
||
|
### getCartItem
|
||
|
|
||
|
Returns a cart item from the state.
|
||
|
|
||
|
#### _Parameters_
|
||
|
|
||
|
- cartItemKey `string` - The cart item key.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`object`- The cart item. This will be an object with the following keys:
|
||
|
|
||
|
- `key`- string containing the cart item key.
|
||
|
- `id`- number containing the cart item id.
|
||
|
- `catalog_visibility`- string containing the catalog visibility.
|
||
|
- `quantity_limits`- object containing the quantity limits.
|
||
|
- `name`- string containing the cart item name.
|
||
|
- `summary`- string containing the cart item summary.
|
||
|
- `short_description`- string containing the cart item short description.
|
||
|
- `description`- string containing the cart item description.
|
||
|
- `sku`- string containing the cart item sku.
|
||
|
- `low_stock_remaining`- null or number containing the low stock remaining.
|
||
|
- `backorders_allowed`- boolean indicating if backorders are allowed.
|
||
|
- `show_backorder_badge`- boolean indicating if the backorder badge should be shown.
|
||
|
- `sold_individually`- boolean indicating if the item is sold individually.
|
||
|
- `permalink`- string containing the cart item permalink.
|
||
|
- `images`- array containing the cart item images.
|
||
|
- `variation`- array containing the cart item variation.
|
||
|
- `prices`- object containing the cart item prices. The keys for the object will be as follows:
|
||
|
- `currency_code`- string containing the currency code.
|
||
|
- `currency_symbol`- string containing the currency symbol.
|
||
|
- `currency_minor_unit`- number containing the currency minor unit.
|
||
|
- `currency_decimal_separator`- string containing the currency decimal separator.
|
||
|
- `currency_thousand_separator`- string containing the currency thousand separator.
|
||
|
- `currency_prefix`- string containing the currency prefix.
|
||
|
- `currency_suffix`- string containing the currency suffix.
|
||
|
- `price`- string containing the cart item price.
|
||
|
- `regular_price`- string containing the cart item regular price.
|
||
|
- `sale_price`- string containing the cart item sale price.
|
||
|
- `price_range`- string containing the cart item price range.
|
||
|
- `totals`- object containing the cart item totals. They keys for the object will be as follows:
|
||
|
- `currency_code`- string containing the currency code.
|
||
|
- `currency_symbol`- string containing the currency symbol.
|
||
|
- `currency_minor_unit`- number containing the currency minor unit.
|
||
|
- `currency_decimal_separator`- string containing the currency decimal separator.
|
||
|
- `currency_thousand_separator`- string containing the currency thousand separator.
|
||
|
- `currency_prefix`- string containing the currency prefix.
|
||
|
- `currency_suffix`- string containing the currency suffix.
|
||
|
- `line_subtotal`- string containing the cart item line subtotal.
|
||
|
- `line_subtotal_tax`- string containing the cart item line subtotal tax.
|
||
|
- `line_total`- string containing the cart item line total.
|
||
|
- `line_total_tax`- string containing the cart item line total tax.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const cartItem = store.getCartItem( cartItemKey );
|
||
|
```
|
||
|
|
||
|
### isItemPendingQuantity
|
||
|
|
||
|
Queries whether a cart item is pending quantity.
|
||
|
|
||
|
#### _Parameters_
|
||
|
|
||
|
- cartItemKey `string` - The cart item key.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if the cart item is pending quantity.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isItemPendingQuantity = store.isItemPendingQuantity( cartItemKey );
|
||
|
```
|
||
|
|
||
|
### isItemPendingDelete
|
||
|
|
||
|
Queries whether a cart item is pending delete.
|
||
|
|
||
|
#### _Parameters_
|
||
|
|
||
|
- cartItemKey `string` - The cart item key.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if the cart item is pending delete.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isItemPendingDelete = store.isItemPendingDelete( cartItemKey );
|
||
|
```
|
||
|
|
||
|
### isCustomerDataUpdating
|
||
|
|
||
|
Queries whether the customer data is being updated.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if the customer data is being updated.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isCustomerDataUpdating = store.isCustomerDataUpdating();
|
||
|
```
|
||
|
|
||
|
### isShippingRateBeingSelected
|
||
|
|
||
|
Queries whether a shipping rate is being selected.
|
||
|
|
||
|
#### _Returns_
|
||
|
|
||
|
`boolean`- True if a shipping rate is being selected.
|
||
|
|
||
|
#### _Example_
|
||
|
|
||
|
```js
|
||
|
const store = select( 'wc/store/cart' );
|
||
|
const isShippingRateBeingSelected = store.isShippingRateBeingSelected();
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
<!-- FEEDBACK -->
|
||
|
|
||
|
---
|
||
|
|
||
|
[We're hiring!](https://woocommerce.com/careers/) Come work with us!
|
||
|
|
||
|
🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce-blocks/issues/new?assignees=&labels=type%3A+documentation&template=--doc-feedback.md&title=Feedback%20on%20./docs/third-party-developers/extensibility/data-store/checkout.md)
|
||
|
|
||
|
<!-- /FEEDBACK -->
|
||
|
|