2020-02-18 23:06:37 +00:00
/ * *
* External dependencies
* /
import { __ } from '@wordpress/i18n' ;
2021-06-29 14:04:24 +00:00
import { WC_BLOCKS_IMAGE_URL } from '@woocommerce/block-settings' ;
2021-03-10 15:03:26 +00:00
import { CartResponse } from '@woocommerce/types' ;
2021-04-22 11:37:27 +00:00
import { getSetting } from '@woocommerce/settings' ;
2020-02-18 23:06:37 +00:00
/ * *
* Internal dependencies
* /
2020-03-13 13:41:59 +00:00
import { previewShippingRates } from './shipping-rates' ;
2020-04-08 15:03:39 +00:00
2021-10-26 13:03:51 +00:00
/ * *
* Prices from the API may change because of this display setting . This makes the response use either
* wc_get_price_including_tax or wc_get_price_excluding_tax . It is correct that this setting changes the cart preview
* data .
*
* WooCommerce core has 2 settings which control this , one for cart ( displayCartPricesIncludingTax ) , and one for the
* rest of the store ( displayProductPricesIncludingTax ) . Because of this , Cart endpoints use displayCartPricesIncludingTax
* which is the most appropriate .
*
* Handling the display settings server - side helps work around rounding / display issues that can arise from manually
* adding tax to a price .
* /
2021-05-17 14:00:57 +00:00
const displayWithTax = getSetting ( 'displayCartPricesIncludingTax' , false ) ;
2021-10-26 13:03:51 +00:00
2020-02-18 23:06:37 +00:00
// Sample data for cart block.
// This closely resembles the data returned from the Store API /cart endpoint.
2021-08-13 13:28:41 +00:00
// https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/trunk/src/StoreApi/docs/cart.md#cart-response
2021-03-10 15:03:26 +00:00
export const previewCart : CartResponse = {
2020-03-13 13:41:59 +00:00
coupons : [ ] ,
2021-04-22 11:37:27 +00:00
shipping_rates : getSetting ( 'shippingMethodsExist' , false )
? previewShippingRates
: [ ] ,
2020-02-18 23:06:37 +00:00
items : [
{
key : '1' ,
id : 1 ,
quantity : 2 ,
name : __ ( 'Beanie' , 'woo-gutenberg-products-block' ) ,
short_description : __ (
'Warm hat for winter' ,
'woo-gutenberg-products-block'
) ,
description :
'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.' ,
sku : 'woo-beanie' ,
permalink : 'https://example.org' ,
low_stock_remaining : 2 ,
2020-03-10 15:14:05 +00:00
backorders_allowed : false ,
2020-07-14 15:25:53 +00:00
show_backorder_badge : false ,
2020-03-10 15:14:05 +00:00
sold_individually : false ,
2020-02-18 23:06:37 +00:00
images : [
{
id : 10 ,
2021-06-29 14:04:24 +00:00
src : WC_BLOCKS_IMAGE_URL + 'previews/beanie.jpg' ,
thumbnail : WC_BLOCKS_IMAGE_URL + 'previews/beanie.jpg' ,
2020-02-18 23:06:37 +00:00
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
variation : [
{
attribute : __ ( 'Color' , 'woo-gutenberg-products-block' ) ,
value : __ ( 'Yellow' , 'woo-gutenberg-products-block' ) ,
} ,
{
attribute : __ ( 'Size' , 'woo-gutenberg-products-block' ) ,
value : __ ( 'Small' , 'woo-gutenberg-products-block' ) ,
} ,
] ,
2020-02-25 12:17:13 +00:00
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
2021-10-26 13:03:51 +00:00
price : displayWithTax ? '12000' : '10000' ,
regular_price : displayWithTax ? '12000' : '10000' ,
sale_price : displayWithTax ? '12000' : '10000' ,
2020-03-17 15:34:33 +00:00
raw_prices : {
precision : 6 ,
2021-10-26 13:03:51 +00:00
price : displayWithTax ? '12000000' : '10000000' ,
regular_price : displayWithTax ? '12000000' : '10000000' ,
sale_price : displayWithTax ? '12000000' : '10000000' ,
2020-03-17 15:34:33 +00:00
} ,
2020-02-25 12:17:13 +00:00
} ,
2020-02-18 23:06:37 +00:00
totals : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
2021-10-26 13:03:51 +00:00
line_subtotal : '2000' ,
line_subtotal_tax : '400' ,
line_total : '2000' ,
line_total_tax : '400' ,
2020-02-18 23:06:37 +00:00
} ,
2021-03-16 09:16:56 +00:00
extensions : { } ,
2020-02-18 23:06:37 +00:00
} ,
{
key : '2' ,
id : 2 ,
quantity : 1 ,
name : __ ( 'Cap' , 'woo-gutenberg-products-block' ) ,
short_description : __ (
'Lightweight baseball cap' ,
'woo-gutenberg-products-block'
) ,
description :
'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.' ,
sku : 'woo-cap' ,
permalink : 'https://example.org' ,
2020-03-10 15:14:05 +00:00
backorders_allowed : false ,
2020-07-14 15:25:53 +00:00
show_backorder_badge : false ,
2020-03-10 15:14:05 +00:00
sold_individually : false ,
2020-02-18 23:06:37 +00:00
images : [
{
id : 11 ,
2021-06-29 14:04:24 +00:00
src : WC_BLOCKS_IMAGE_URL + 'previews/cap.jpg' ,
thumbnail : WC_BLOCKS_IMAGE_URL + 'previews/cap.jpg' ,
2020-02-18 23:06:37 +00:00
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
variation : [
{
attribute : __ ( 'Color' , 'woo-gutenberg-products-block' ) ,
value : __ ( 'Orange' , 'woo-gutenberg-products-block' ) ,
} ,
] ,
2020-02-25 12:17:13 +00:00
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
2021-10-26 13:03:51 +00:00
price : displayWithTax ? '2400' : '2000' ,
regular_price : displayWithTax ? '2400' : '2000' ,
sale_price : displayWithTax ? '2400' : '2000' ,
2020-03-17 15:34:33 +00:00
raw_prices : {
precision : 6 ,
2021-10-26 13:03:51 +00:00
price : displayWithTax ? '24000000' : '20000000' ,
regular_price : displayWithTax ? '24000000' : '20000000' ,
sale_price : displayWithTax ? '24000000' : '20000000' ,
2020-03-17 15:34:33 +00:00
} ,
2020-02-25 12:17:13 +00:00
} ,
2020-02-18 23:06:37 +00:00
totals : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
2021-10-26 13:03:51 +00:00
line_subtotal : '2000' ,
line_subtotal_tax : '400' ,
line_total : '2000' ,
line_total_tax : '400' ,
2020-02-18 23:06:37 +00:00
} ,
2021-03-16 09:16:56 +00:00
extensions : { } ,
2020-02-18 23:06:37 +00:00
} ,
] ,
2022-09-21 06:04:15 +00:00
cross_sells : [
{
id : 1 ,
name : __ ( 'Polo' , 'woo-gutenberg-products-block' ) ,
permalink : 'https://example.org' ,
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
price : displayWithTax ? '24000' : '20000' ,
regular_price : displayWithTax ? '24000' : '20000' ,
sale_price : displayWithTax ? '12000' : '10000' ,
raw_prices : {
precision : 6 ,
price : displayWithTax ? '24000000' : '20000000' ,
regular_price : displayWithTax ? '24000000' : '20000000' ,
sale_price : displayWithTax ? '12000000' : '10000000' ,
} ,
} ,
images : [
{
id : 17 ,
src : WC_BLOCKS_IMAGE_URL + 'previews/polo.jpg' ,
thumbnail : WC_BLOCKS_IMAGE_URL + 'previews/polo.jpg' ,
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
average_rating : 4.5 ,
} ,
{
id : 2 ,
name : __ ( 'Long Sleeve Tee' , 'woo-gutenberg-products-block' ) ,
permalink : 'https://example.org' ,
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
price : displayWithTax ? '30000' : '25000' ,
regular_price : displayWithTax ? '30000' : '25000' ,
sale_price : displayWithTax ? '30000' : '25000' ,
raw_prices : {
precision : 6 ,
price : displayWithTax ? '30000000' : '25000000' ,
regular_price : displayWithTax ? '30000000' : '25000000' ,
sale_price : displayWithTax ? '30000000' : '25000000' ,
} ,
} ,
images : [
{
id : 17 ,
src : WC_BLOCKS_IMAGE_URL + 'previews/long-sleeve-tee.jpg' ,
thumbnail :
WC_BLOCKS_IMAGE_URL + 'previews/long-sleeve-tee.jpg' ,
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
average_rating : 4 ,
} ,
{
id : 3 ,
name : __ ( 'Hoodie with Zipper' , 'woo-gutenberg-products-block' ) ,
permalink : 'https://example.org' ,
on_sale : true ,
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
price : displayWithTax ? '15000' : '12500' ,
regular_price : displayWithTax ? '30000' : '25000' ,
sale_price : displayWithTax ? '15000' : '12500' ,
raw_prices : {
precision : 6 ,
price : displayWithTax ? '15000000' : '12500000' ,
regular_price : displayWithTax ? '30000000' : '25000000' ,
sale_price : displayWithTax ? '15000000' : '12500000' ,
} ,
} ,
images : [
{
id : 17 ,
src :
WC_BLOCKS_IMAGE_URL + 'previews/hoodie-with-zipper.jpg' ,
thumbnail :
WC_BLOCKS_IMAGE_URL + 'previews/hoodie-with-zipper.jpg' ,
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
average_rating : 1 ,
} ,
{
id : 4 ,
name : __ ( 'Hoodie with Logo' , 'woo-gutenberg-products-block' ) ,
permalink : 'https://example.org' ,
on_sale : false ,
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
price : displayWithTax ? '4500' : '4250' ,
regular_price : displayWithTax ? '4500' : '4250' ,
sale_price : displayWithTax ? '4500' : '4250' ,
raw_prices : {
precision : 6 ,
price : displayWithTax ? '45000000' : '42500000' ,
regular_price : displayWithTax ? '45000000' : '42500000' ,
sale_price : displayWithTax ? '45000000' : '42500000' ,
} ,
} ,
images : [
{
id : 17 ,
src : WC_BLOCKS_IMAGE_URL + 'previews/hoodie-with-logo.jpg' ,
thumbnail :
WC_BLOCKS_IMAGE_URL + 'previews/hoodie-with-logo.jpg' ,
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
average_rating : 5 ,
} ,
{
id : 5 ,
name : __ ( 'Hoodie with Pocket' , 'woo-gutenberg-products-block' ) ,
permalink : 'https://example.org' ,
on_sale : true ,
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
price : displayWithTax ? '3500' : '3250' ,
regular_price : displayWithTax ? '4500' : '4250' ,
sale_price : displayWithTax ? '3500' : '3250' ,
raw_prices : {
precision : 6 ,
price : displayWithTax ? '35000000' : '32500000' ,
regular_price : displayWithTax ? '45000000' : '42500000' ,
sale_price : displayWithTax ? '35000000' : '32500000' ,
} ,
} ,
images : [
{
id : 17 ,
src :
WC_BLOCKS_IMAGE_URL + 'previews/hoodie-with-pocket.jpg' ,
thumbnail :
WC_BLOCKS_IMAGE_URL + 'previews/hoodie-with-pocket.jpg' ,
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
average_rating : 3.75 ,
} ,
{
id : 6 ,
name : __ ( 'T-Shirt' , 'woo-gutenberg-products-block' ) ,
permalink : 'https://example.org' ,
on_sale : false ,
prices : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
price : displayWithTax ? '1800' : '1500' ,
regular_price : displayWithTax ? '1800' : '1500' ,
sale_price : displayWithTax ? '1800' : '1500' ,
raw_prices : {
precision : 6 ,
price : displayWithTax ? '1800000' : '1500000' ,
regular_price : displayWithTax ? '1800000' : '1500000' ,
sale_price : displayWithTax ? '1800000' : '1500000' ,
} ,
} ,
images : [
{
id : 17 ,
src : WC_BLOCKS_IMAGE_URL + 'previews/tshirt.jpg' ,
thumbnail : WC_BLOCKS_IMAGE_URL + 'previews/tshirt.jpg' ,
srcset : '' ,
sizes : '' ,
name : '' ,
alt : '' ,
} ,
] ,
average_rating : 3 ,
} ,
] ,
2022-04-01 13:45:18 +00:00
fees : [
{
id : 'fee' ,
name : __ ( 'Fee' , 'woo-gutenberg-products-block' ) ,
totals : {
currency_code : 'USD' ,
currency_symbol : '$' ,
currency_minor_unit : 2 ,
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
total : '100' ,
total_tax : '20' ,
tax_lines : [
{
name : __ ( 'Sales tax' , 'woo-gutenberg-products-block' ) ,
rate : '20%' ,
price : '20' ,
} ,
] ,
} ,
} ,
] ,
2020-03-17 12:11:30 +00:00
items_count : 3 ,
2020-03-13 13:41:59 +00:00
items_weight : 0 ,
2020-04-09 14:01:11 +00:00
needs_payment : true ,
2021-04-22 11:37:27 +00:00
needs_shipping : getSetting ( 'shippingEnabled' , true ) ,
has_calculated_shipping : true ,
2021-03-10 15:03:26 +00:00
shipping_address : {
first_name : '' ,
last_name : '' ,
company : '' ,
address_1 : '' ,
address_2 : '' ,
city : '' ,
state : '' ,
postcode : '' ,
country : '' ,
2021-07-22 11:03:00 +00:00
phone : '' ,
2021-03-10 15:03:26 +00:00
} ,
billing_address : {
first_name : '' ,
last_name : '' ,
company : '' ,
address_1 : '' ,
address_2 : '' ,
city : '' ,
state : '' ,
postcode : '' ,
country : '' ,
email : '' ,
phone : '' ,
} ,
2020-02-18 23:06:37 +00:00
totals : {
2020-03-13 13:41:59 +00:00
currency_code : 'USD' ,
currency_symbol : '$' ,
2020-02-18 23:06:37 +00:00
currency_minor_unit : 2 ,
2020-03-13 13:41:59 +00:00
currency_decimal_separator : '.' ,
currency_thousand_separator : ',' ,
currency_prefix : '$' ,
currency_suffix : '' ,
2021-10-26 13:03:51 +00:00
total_items : '4000' ,
total_items_tax : '800' ,
2022-04-01 13:45:18 +00:00
total_fees : '100' ,
total_fees_tax : '20' ,
2020-02-18 23:06:37 +00:00
total_discount : '0' ,
total_discount_tax : '0' ,
2020-11-17 11:58:38 +00:00
total_shipping : '0' ,
2020-02-18 23:06:37 +00:00
total_shipping_tax : '0' ,
2022-04-01 13:45:18 +00:00
total_tax : '820' ,
total_price : '4920' ,
2021-05-17 14:00:57 +00:00
tax_lines : [
{
name : __ ( 'Sales tax' , 'woo-gutenberg-products-block' ) ,
rate : '20%' ,
2022-04-01 13:45:18 +00:00
price : '820' ,
2021-05-17 14:00:57 +00:00
} ,
] ,
2020-02-18 23:06:37 +00:00
} ,
2021-08-13 13:28:41 +00:00
errors : [ ] ,
payment_requirements : [ 'products' ] ,
extensions : { } ,
2020-02-18 23:06:37 +00:00
} ;