Skip to content

Commit f81b619

Browse files
authored
Update web pixel schema (#113)
1 parent 3bf1a95 commit f81b619

File tree

8 files changed

+199
-78
lines changed

8 files changed

+199
-78
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 3.0.3 - August 9, 2024
4+
5+
- Upgrades Swift and Android dependencies to `3.0.4`
6+
- Updates Web Pixel schema
7+
38
## 3.0.2 - August 6, 2024
49

510
- Upgrades Swift and Android dependencies to `3.0.3`
@@ -80,7 +85,7 @@ ShopifyCheckoutSheetKit.setConfig({
8085
## 1.0.5 - March 5, 2024
8186

8287
- Updates the underlying swift SDK from `1.0.1` to `1.0.2` to include
83-
https://github.com/Shopify/checkout-sheet-kit-swift/pull/143
88+
<https://github.com/Shopify/checkout-sheet-kit-swift/pull/143>
8489

8590
## 1.0.4 - March 4, 2024
8691

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ behavior can be customized via the `colorScheme` property:
336336

337337
| Name | Default | Description |
338338
| ----------- | ------- | ------------------------------------------------------------------------------------------------ |
339-
| `automatic` | ✔ | Alternates between an idiomatic light and dark theme - depending on the users device preference. |
339+
| `automatic` | ✔ | Alternates between an idiomatic light and dark theme - depending on the users device preference. |
340340
| `light` | | Force the idomatic light theme. |
341341
| `dark` | | Force the idomatic dark theme. |
342342
| `web` | | Force your storefront web theme, as rendered by a mobile browser. |
@@ -723,6 +723,7 @@ Replace the details in the `sample/.env.example` file and rename it to
723723
# Storefront Details
724724
STOREFRONT_DOMAIN="YOUR_STORE.myshopify.com"
725725
STOREFRONT_ACCESS_TOKEN="YOUR_PUBLIC_STOREFRONT_ACCESS_TOKEN"
726+
STOREFRONT_VERSION="2024-04"
726727
```
727728

728729
#### Start the sample app

modules/@shopify/checkout-sheet-kit/RNShopifyCheckoutSheetKit.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Pod::Spec.new do |s|
2020
s.source_files = "ios/*.{h,m,mm,swift}"
2121

2222
s.dependency "React-Core"
23-
s.dependency "ShopifyCheckoutSheetKit", "~> 3.0.3"
23+
s.dependency "ShopifyCheckoutSheetKit", "~> 3.0.4"
2424

2525
if fabric_enabled
2626
install_modules_dependencies(s)

modules/@shopify/checkout-sheet-kit/android/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ ndkVersion=23.1.7779620
55
buildToolsVersion = "33.0.0"
66

77
# Version of Shopify Checkout SDK to use with React Native
8-
SHOPIFY_CHECKOUT_SDK_VERSION=3.0.3
8+
SHOPIFY_CHECKOUT_SDK_VERSION=3.0.4

modules/@shopify/checkout-sheet-kit/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@shopify/checkout-sheet-kit",
33
"license": "MIT",
4-
"version": "3.0.2",
4+
"version": "3.0.3",
55
"main": "lib/commonjs/index.js",
66
"types": "src/index.ts",
77
"source": "src/index.ts",

modules/@shopify/checkout-sheet-kit/src/pixels.d.ts

Lines changed: 180 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -273,19 +273,29 @@ interface Checkout {
273273
attributes?: Attribute[];
274274
/* The billing address to where the order will be charged. */
275275
billingAddress?: MailingAddress;
276+
/* Indicates whether the customer has consented to be sent marketing material via email. */
277+
buyerAcceptsEmailMarketing?: boolean;
278+
/*Indicates whether the customer has consented to be sent marketing material via SMS. */
279+
buyerAcceptsSmsMarketing?: boolean;
276280
/**
277281
* The three-letter code that represents the currency, for example, USD.
278282
* Supported codes include standard ISO 4217 codes, legacy codes, and non-
279283
* standard codes.
280284
*/
281285
currencyCode?: string;
286+
/* Represents the selected delivery options for a checkout. */
287+
delivery?: Delivery;
282288
/* A list of discount applications. */
283289
discountApplications?: DiscountApplication[];
290+
/* The total amount of the discounts applied to the price of the checkout. */
291+
discountsAmount?: MoneyV2;
284292
/* The email attached to this checkout. */
285293
email?: string;
286294
/* A list of line item objects, each one containing information about an item */
287295
/* in the checkout. */
288296
lineItems?: CheckoutLineItem[];
297+
/* Information about the active localized experience. */
298+
localization?: Localization;
289299
/* The resulting order from a paid checkout. */
290300
order?: Order;
291301
/* A unique phone number for the customer. Formatted using E.164 standard. For */
@@ -296,6 +306,8 @@ interface Checkout {
296306
/* Once a shipping rate is selected by the customer it is transitioned to a */
297307
/* `shipping_line` object. */
298308
shippingLine?: ShippingRate;
309+
/* The phone number provided by the buyer after opting in to SMS marketing. */
310+
smsMarketingPhone?: string;
299311
/* The price at checkout before duties, shipping, and taxes. */
300312
subtotalPrice?: MoneyV2;
301313
/* A unique identifier for a particular checkout. */
@@ -319,34 +331,58 @@ interface Attribute {
319331
value?: string;
320332
}
321333

322-
/* A mailing address for customers and shipping. */
323-
interface MailingAddress {
324-
/* The first line of the address. This is usually the street address or a P.O. */
325-
/* Box number. */
326-
address1?: string;
327-
/* The second line of the address. This is usually an apartment, suite, or */
328-
/* unit number. */
329-
address2?: string;
330-
/* The name of the city, district, village, or town. */
331-
city?: string;
332-
/* The name of the country. */
333-
country?: string;
334-
/* The two-letter code that represents the country, for example, US. */
335-
/* The country codes generally follows ISO 3166-1 alpha-2 guidelines. */
336-
countryCode?: string;
337-
/* The customer’s first name. */
338-
firstName?: string;
339-
/* The customer’s last name. */
340-
lastName?: string;
341-
/* The phone number for this mailing address as entered by the customer. */
342-
phone?: string;
343-
/* The region of the address, such as the province, state, or district. */
344-
province?: string;
345-
/* The two-letter code for the region. */
346-
/* For example, ON. */
347-
provinceCode?: string;
348-
/* The ZIP or postal code of the address. */
349-
zip?: string;
334+
/* A single line item in the checkout, grouped by variant and attributes. */
335+
interface CheckoutLineItem {
336+
/* The discounts that have been applied to the checkout line item by a */
337+
/* discount application. */
338+
discountAllocations?: DiscountAllocation[];
339+
/* The combined price of all of the items in the line item after line-level discounts have been applied. */
340+
finalLinePrice?: MoneyV2;
341+
/* A globally unique identifier. */
342+
id?: string;
343+
/** The properties of the line item. A shop may add, or enable customers to add custom information to a line item.
344+
* Line item properties consist of a key and value pair.
345+
*/
346+
properties?: Property[];
347+
/* The quantity of the line item. */
348+
quantity?: number;
349+
/* The title of the line item. Defaults to the product's title. */
350+
sellingPlanAllocation?: SellingPlanAllocation;
351+
title?: string;
352+
/* Product variant of the line item. */
353+
variant?: ProductVariant;
354+
}
355+
356+
interface Country {
357+
/* The ISO-3166-1 code for this country, for example, "US". */
358+
isoCode?: string;
359+
}
360+
361+
interface Delivery {
362+
selectedDeliveryOptions?: DeliveryOption[];
363+
}
364+
365+
interface DeliveryOption {
366+
/* The delivery option that the customer has selected. */
367+
cost?: MoneyV2;
368+
/* The cost of the delivery option after discounts have been applied. */
369+
costAfterDiscounts?: MoneyV2;
370+
/* The description of the delivery option. */
371+
description?: string;
372+
/* The unique identifier of the delivery option. */
373+
handle?: string;
374+
/* The title of the delivery option. */
375+
title?: string;
376+
/* he type of delivery option, e.g. pickup, pickupPoint, shipping, local. */
377+
type?: string;
378+
}
379+
380+
/* The discount that has been applied to the checkout line item. */
381+
interface DiscountAllocation {
382+
/* The monetary value with currency allocated to the discount. */
383+
amount?: MoneyV2;
384+
/* The information about the intent of the discount. */
385+
discountApplication?: DiscountApplication;
350386
}
351387

352388
/* The information about the intent of the discount. */
@@ -389,41 +425,55 @@ interface DiscountApplication {
389425
value?: Value;
390426
}
391427

392-
/* A value given to a customer when a discount is applied to an order. The */
393-
/* application of a discount with this value gives the customer the specified */
394-
/* percentage off a specified item. */
395-
interface Value {
396-
/* The decimal money amount. */
397-
amount?: number;
398-
/* The three-letter code that represents the currency, for example, USD. */
399-
/* Supported codes include standard ISO 4217 codes, legacy codes, and non- */
400-
/* standard codes. */
401-
currencyCode?: string;
402-
/* The percentage value of the object. */
403-
percentage?: number;
428+
interface Language {
429+
/* The BCP-47 language tag. It may contain a dash followed by an ISO 3166-1 alpha-2 region code, for example, "en-US". */
430+
isoCode?: string;
404431
}
405432

406-
/* A single line item in the checkout, grouped by variant and attributes. */
407-
interface CheckoutLineItem {
408-
/* The discounts that have been applied to the checkout line item by a */
409-
/* discount application. */
410-
discountAllocations?: DiscountAllocation[];
411-
/* A globally unique identifier. */
412-
id?: string;
413-
/* The quantity of the line item. */
414-
quantity?: number;
415-
/* The title of the line item. Defaults to the product's title. */
416-
title?: string;
417-
/* Product variant of the line item. */
418-
variant?: ProductVariant;
433+
interface Localization {
434+
/* The country of the active localized experience. */
435+
country?: Country;
436+
/* The language of the active localized experience. */
437+
language?: Language;
438+
/* The market including the country of the active localized experience. */
439+
market?: Market;
419440
}
420441

421-
/* The discount that has been applied to the checkout line item. */
422-
interface DiscountAllocation {
423-
/* The monetary value with currency allocated to the discount. */
424-
amount?: MoneyV2;
425-
/* The information about the intent of the discount. */
426-
discountApplication?: DiscountApplication;
442+
/* A mailing address for customers and shipping. */
443+
interface MailingAddress {
444+
/* The first line of the address. This is usually the street address or a P.O. */
445+
/* Box number. */
446+
address1?: string;
447+
/* The second line of the address. This is usually an apartment, suite, or */
448+
/* unit number. */
449+
address2?: string;
450+
/* The name of the city, district, village, or town. */
451+
city?: string;
452+
/* The name of the country. */
453+
country?: string;
454+
/* The two-letter code that represents the country, for example, US. */
455+
/* The country codes generally follows ISO 3166-1 alpha-2 guidelines. */
456+
countryCode?: string;
457+
/* The customer’s first name. */
458+
firstName?: string;
459+
/* The customer’s last name. */
460+
lastName?: string;
461+
/* The phone number for this mailing address as entered by the customer. */
462+
phone?: string;
463+
/* The region of the address, such as the province, state, or district. */
464+
province?: string;
465+
/* The two-letter code for the region. */
466+
/* For example, ON. */
467+
provinceCode?: string;
468+
/* The ZIP or postal code of the address. */
469+
zip?: string;
470+
}
471+
472+
interface Market {
473+
/* A human-readable, shop-scoped identifier. */
474+
handle?: string;
475+
/* A globally unique identifier. */
476+
id?: string;
427477
}
428478

429479
/**
@@ -434,6 +484,45 @@ interface DiscountAllocation {
434484
interface Order {
435485
/* The ID of the order. */
436486
id?: string;
487+
/* The customer that placed the order. */
488+
customer?: OrderCustomer;
489+
}
490+
491+
interface OrderCustomer {
492+
/* The ID of the customer. */
493+
id?: string;
494+
}
495+
496+
/**
497+
* A value given to a customer when a discount is applied to an order. The
498+
* application of a discount with this value gives the customer the specified
499+
* percentage off a specified item.
500+
*/
501+
interface PricingPercentageValue {
502+
/* The percentage value of the object. */
503+
percentage?: number;
504+
}
505+
506+
interface Property {
507+
/* The key for the property. */
508+
key?: string;
509+
/* The value for the property. */
510+
value?: string;
511+
}
512+
513+
interface SellingPlan {
514+
/* A globally unique identifier. */
515+
id?: string;
516+
/* The name of the selling plan. For example, '6 weeks of prepaid granola, delivered weekly'. */
517+
name?: string;
518+
}
519+
520+
interface SellingPlanAllocation {
521+
/**
522+
* A representation of how products and variants can be sold and purchased. For example, an individual selling plan could be
523+
* '6 weeks of prepaid granola, delivered weekly'.
524+
*/
525+
sellingPlan?: SellingPlan;
437526
}
438527

439528
/* A shipping rate to be applied to a checkout. */
@@ -448,14 +537,40 @@ interface Transaction {
448537
amount?: MoneyV2;
449538
/* The name of the payment provider used for the transaction. */
450539
gateway?: string;
540+
/* The payment method used for the transaction. */
541+
paymentMethod?: TransactionPaymentMethod;
451542
}
452543

453-
/**
454-
* A value given to a customer when a discount is applied to an order. The
455-
* application of a discount with this value gives the customer the specified
456-
* percentage off a specified item.
457-
*/
458-
interface PricingPercentageValue {
544+
interface TransactionPaymentMethod {
545+
/* The name of the payment method used for the transaction. This may further specify the payment method used. */
546+
name?: string;
547+
/**
548+
* The type of payment method used for the transaction.
549+
*
550+
* - creditCard: A vaulted or manually entered credit card.
551+
* - redeemable: A redeemable payment method, such as a gift card or store credit.
552+
* - deferred: A deferred payment, such as invoicing the buyer and collecting payment later.
553+
* - local: A local payment method specific to the current region or market.
554+
* - manualPayment: A manual payment method, such as an in-person retail transaction.
555+
* - paymentOnDelivery: A payment that will be collected on delivery.
556+
* - wallet: An integrated wallet, such as PayPal, Google Pay, Apple Pay, etc.
557+
* - offsite: A payment processed outside of Shopify's checkout, excluding integrated wallets.
558+
* - customOnSite: A custom payment method that is processed through a checkout extension with a payments app.
559+
* - other: Another type of payment not defined here.
560+
*/
561+
type?: string;
562+
}
563+
564+
/* A value given to a customer when a discount is applied to an order. The */
565+
/* application of a discount with this value gives the customer the specified */
566+
/* percentage off a specified item. */
567+
interface Value {
568+
/* The decimal money amount. */
569+
amount?: number;
570+
/* The three-letter code that represents the currency, for example, USD. */
571+
/* Supported codes include standard ISO 4217 codes, legacy codes, and non- */
572+
/* standard codes. */
573+
currencyCode?: string;
459574
/* The percentage value of the object. */
460575
percentage?: number;
461576
}

sample/android/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ newArchEnabled=false
4141
hermesEnabled=true
4242

4343
# Note: only used here for testing
44-
SHOPIFY_CHECKOUT_SDK_VERSION=3.0.3
44+
SHOPIFY_CHECKOUT_SDK_VERSION=3.0.4

0 commit comments

Comments
 (0)