<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tulipanfutar.hu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tulipanf</id>
	<title>Stulipan Tudástár - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tulipanfutar.hu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tulipanf"/>
	<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php/Special:Contributions/Tulipanf"/>
	<updated>2026-06-10T23:36:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=107</id>
		<title>Order</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=107"/>
		<updated>2022-03-26T13:28:25Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Funkciók és logika */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
Tudnivalók az Order-ről...&lt;br /&gt;
&lt;br /&gt;
== Funkciók és logika ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Funkció !! Leírás !! Egyéb&lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAfterSale()''' || A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár. || &lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAmountToPay()''' || Ez a fizetendő összeg. &amp;lt;pre&amp;gt;totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice&amp;lt;/pre&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| '''getAmountPaidByCustomer()''' || Az összeg, amit a vásárló kifizetett. Jelenleg, ez a rendelés teljes összege (nincs részleges fizetés.) || &lt;br /&gt;
|-&lt;br /&gt;
| ''' ''' ||   || &lt;br /&gt;
|-&lt;br /&gt;
| ''' ''' ||   || &lt;br /&gt;
|-&lt;br /&gt;
| ''' ''' ||   || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=106</id>
		<title>Order</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=106"/>
		<updated>2022-03-26T13:27:53Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Funkciók és logika */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
Tudnivalók az Order-ről...&lt;br /&gt;
&lt;br /&gt;
== Funkciók és logika ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Funkció !! Leírás !! Egyéb&lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAfterSale()''' || A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár. || &lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAmountToPay()''' || Ez a fizetendő összeg. &amp;lt;pre&amp;gt;totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice&amp;lt;/pre&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| '''getAmountPaidByCustomer()''' || Az összeg, amit a vásárló kifizetett. Jelenleg, ez a rendelés teljes összege (nincs részleges fizetés.) || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=105</id>
		<title>Order</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=105"/>
		<updated>2022-03-26T13:27:05Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Funkciók és logika */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
Tudnivalók az Order-ről...&lt;br /&gt;
&lt;br /&gt;
== Funkciók és logika ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Funkció !! Leírás !! Egyéb&lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAfterSale()''' || A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár. || &lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAmountToPay()''' || Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice || &lt;br /&gt;
|-&lt;br /&gt;
| '''getAmountPaidByCustomer()''' || Az összeg, amit a vásárló kifizetett. Jelenleg, ez a rendelés teljes összege (nincs részleges fizetés.) || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=104</id>
		<title>Order</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=104"/>
		<updated>2022-03-26T13:26:38Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* getTotalAmountToPay() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
Tudnivalók az Order-ről...&lt;br /&gt;
&lt;br /&gt;
== Funkciók és logika ==&lt;br /&gt;
&lt;br /&gt;
=== getTotalAfterSale() ===&lt;br /&gt;
&lt;br /&gt;
A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár.&lt;br /&gt;
&lt;br /&gt;
=== getTotalAmountToPay() ===&lt;br /&gt;
&lt;br /&gt;
Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Funkció !! Leírás !! Egyéb&lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAfterSale()''' || A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár. || &lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAmountToPay()''' || Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice || &lt;br /&gt;
|-&lt;br /&gt;
| '''getAmountPaidByCustomer()''' || Az összeg, amit a vásárló kifizetett. Jelenleg, ez a rendelés teljes összege (nincs részleges fizetés.) || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=103</id>
		<title>Order</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=103"/>
		<updated>2022-03-26T13:21:52Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Funkciók és logika */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
Tudnivalók az Order-ről...&lt;br /&gt;
&lt;br /&gt;
== Funkciók és logika ==&lt;br /&gt;
&lt;br /&gt;
=== getTotalAfterSale() ===&lt;br /&gt;
&lt;br /&gt;
A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár.&lt;br /&gt;
&lt;br /&gt;
=== getTotalAmountToPay() ===&lt;br /&gt;
&lt;br /&gt;
Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Funkció !! Leírás !! Egyéb&lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAfterSale()''' || A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár. || &lt;br /&gt;
|-&lt;br /&gt;
| '''getTotalAmountToPay()''' || Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice || &lt;br /&gt;
|-&lt;br /&gt;
| '''Example''' || Example || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=102</id>
		<title>Order</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Order&amp;diff=102"/>
		<updated>2022-03-26T13:17:38Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: Created page with &amp;quot;= Gondolatok =  Tudnivalók az Order-ről...  == Funkciók és logika ==  === getTotalAfterSale() ===  A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár.  === getTotalAmountToPay() ===  Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
Tudnivalók az Order-ről...&lt;br /&gt;
&lt;br /&gt;
== Funkciók és logika ==&lt;br /&gt;
&lt;br /&gt;
=== getTotalAfterSale() ===&lt;br /&gt;
&lt;br /&gt;
A termékek eladási árával kalkulál. Tehát, ha egy termék akciós áron forgalmazzuk, akkor az eladási ár = akciós ár.&lt;br /&gt;
&lt;br /&gt;
=== getTotalAmountToPay() ===&lt;br /&gt;
&lt;br /&gt;
Ez a fizetendő összeg. totalAmountToPay = totalAfterSale + shippingFeeToPay + paymentFeeToPay + schedulingPrice&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Main_Page&amp;diff=101</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Main_Page&amp;diff=101"/>
		<updated>2022-03-26T13:11:02Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Stulipan| Stulipan tudástár]]&lt;br /&gt;
&lt;br /&gt;
[[Checkout]]&lt;br /&gt;
&lt;br /&gt;
[[Order]]&lt;br /&gt;
&lt;br /&gt;
* [[Same as shipping logic]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=100</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=100"/>
		<updated>2022-03-26T07:34:14Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Step1 - Delivery Address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Submitting the CustomerBasic form this happens:&lt;br /&gt;
&amp;lt;pre&amp;gt;CheckoutSnippets::setCustomer() &amp;gt;&amp;gt; CheckoutBuilder::setCustomerBasic() &amp;gt;&amp;gt; StoreEvent::CUSTOMER_CREATE &amp;amp; StoreEvent::CUSTOMER_UPDATE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Ordert. A Checkout megmarad statisztika miatt.&lt;br /&gt;
** ha sikeres, akkor torlom a Checkoutot (es Cartot)&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=99</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=99"/>
		<updated>2022-03-26T07:33:10Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Step1 - Delivery Address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
&lt;br /&gt;
:: Submitting the CustomerBasic form this happens:&lt;br /&gt;
::&amp;lt;pre&amp;gt;CheckoutSnippets::setCustomer() &amp;gt;&amp;gt; CheckoutBuilder::setCustomerBasic() &amp;gt;&amp;gt; StoreEvent::CUSTOMER_CREATE &amp;amp; StoreEvent::CUSTOMER_UPDATE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Ordert. A Checkout megmarad statisztika miatt.&lt;br /&gt;
** ha sikeres, akkor torlom a Checkoutot (es Cartot)&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=98</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=98"/>
		<updated>2022-03-26T07:32:23Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Step1 - Delivery Address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
::&amp;lt;pre&amp;gt;CheckoutSnippets::setCustomer() &amp;gt;&amp;gt; CheckoutBuilder::setCustomerBasic() &amp;gt;&amp;gt; StoreEvent::CUSTOMER_CREATE &amp;amp; StoreEvent::CUSTOMER_UPDATE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Ordert. A Checkout megmarad statisztika miatt.&lt;br /&gt;
** ha sikeres, akkor torlom a Checkoutot (es Cartot)&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=97</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=97"/>
		<updated>2022-03-26T07:25:16Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Step1 - Delivery Address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet &amp;gt;&amp;gt; CheckoutSnippets::setCustomer() &amp;gt; CheckoutBuilder::setCustomerBasic() &amp;gt; StoreEvent::CUSTOMER_CREATE &amp;amp; StoreEvent::CUSTOMER_UPDATE&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Ordert. A Checkout megmarad statisztika miatt.&lt;br /&gt;
** ha sikeres, akkor torlom a Checkoutot (es Cartot)&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=96</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=96"/>
		<updated>2022-03-12T09:51:24Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Ordert. A Checkout megmarad statisztika miatt.&lt;br /&gt;
** ha sikeres, akkor torlom a Checkoutot (es Cartot)&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=95</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=95"/>
		<updated>2022-03-12T09:47:07Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Order. A checkout megmarad statisztika miatt.&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=94</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=94"/>
		<updated>2022-03-12T09:46:50Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
* csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
* ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
* ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
** egy honap utan torlom az Order. A checkout megmarad statisztika miatt.&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=93</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=93"/>
		<updated>2022-03-12T09:46:35Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
# csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
# ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
# ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
## egy honap utan torlom az Order. A checkout megmarad statisztika miatt.&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=92</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=92"/>
		<updated>2022-03-12T09:46:11Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
&lt;br /&gt;
	# csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
	# ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
	# ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
		## egy honap utan torlom az Order. A checkout megmarad statisztika miatt.&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=91</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=91"/>
		<updated>2022-03-12T09:45:41Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
'''Checkout - Order viszony'''&lt;br /&gt;
&lt;br /&gt;
Checkout -&amp;gt; submit -&amp;gt; order kreala &amp;gt;&amp;gt; lesz ilyen: checkout.order&lt;br /&gt;
	- csak az Ordernek van Transactionje. Miert? Azert mert, CC fizetes eseten tobb tranzakcio is varhato (authorization, void/capture, partial/refund). Ez mind az Orderhez kell kotni. &lt;br /&gt;
	- ez esetben, ha COD a fizetes, akkor egy Transaction letezik. &lt;br /&gt;
	- ha CC fizetes, es nem sikeres, akkor lesz egy Checkout, es egy Order -&amp;gt; mindketto Abandoned&lt;br /&gt;
		- egy honap utan torlom az Order. A checkout megmarad statisztika miatt.&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=90</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=90"/>
		<updated>2022-02-21T10:16:42Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Egyeb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Egyeb =&lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=89</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=89"/>
		<updated>2022-02-21T10:16:27Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=88</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=88"/>
		<updated>2022-02-21T10:16:10Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=87</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=87"/>
		<updated>2022-02-21T10:15:53Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''ABANDONED CARTS vs. ABANDONED CHECKOUTS'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=86</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=86"/>
		<updated>2022-02-21T10:15:14Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''Abandoned Carts vs. Abandoned Checkouts'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=85</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=85"/>
		<updated>2022-02-21T10:14:52Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
'''Abandoned Carts vs. Abandoned Checkouts'''&lt;br /&gt;
&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=84</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=84"/>
		<updated>2022-02-21T10:14:38Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
'''Abandoned Carts vs. Abandoned Checkouts'''&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=83</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=83"/>
		<updated>2022-02-21T10:14:07Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Abandoned Carts vs. Abandoned Checkouts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=82</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=82"/>
		<updated>2022-02-21T10:13:40Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CART attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=81</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=81"/>
		<updated>2022-02-21T10:13:06Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CART attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
=== Shopify CART attributes ===&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=80</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=80"/>
		<updated>2022-02-21T10:12:38Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Shopify CHECKOUT attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=79</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=79"/>
		<updated>2022-02-21T10:12:26Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Complete the checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
'''Complete the checkout'''&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=78</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=78"/>
		<updated>2022-02-21T10:12:12Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* checkout.order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
'''checkout.order'''&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=77</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=77"/>
		<updated>2022-02-21T10:11:55Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Considerations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
'''Considerations'''&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=76</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=76"/>
		<updated>2022-02-21T10:11:33Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* FROM SHOPIFY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
'''FROM SHOPIFY'''&lt;br /&gt;
&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
'''COUPON'''&lt;br /&gt;
&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=75</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=75"/>
		<updated>2022-02-21T10:10:29Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
= CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship =&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=74</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=74"/>
		<updated>2022-02-21T10:10:13Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Gondolatok */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gondolatok =&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=73</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=73"/>
		<updated>2022-02-21T10:09:49Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Gondolatok ==&lt;br /&gt;
&lt;br /&gt;
In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=72</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=72"/>
		<updated>2022-02-21T10:09:24Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Gondolatok */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=71</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=71"/>
		<updated>2022-02-21T10:08:55Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* InitiliazeCheckout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
* AddToCart --&amp;gt; termek a Kosar (Order)-ba kerul --&amp;gt; Ar nelkul!!&lt;br /&gt;
&lt;br /&gt;
* Kosar - oldalon, lekerjuk az OrderItemeket, es a kapcsolodo termekek arat !!&lt;br /&gt;
&lt;br /&gt;
* Majd a Continue to Checkout-kor, minden egyes alkalommal OrderItembe elmentjuk a termekarat&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items (quantity and prices)&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=70</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=70"/>
		<updated>2022-02-21T10:08:42Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* InitiliazeCheckout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
* AddToCart --&amp;gt; termek a Kosar (Order)-ba kerul --&amp;gt; Ar nelkul!!&lt;br /&gt;
&lt;br /&gt;
* Kosar - oldalon, lekerjuk az OrderItemeket, es a kapcsolodo termekek arat !!&lt;br /&gt;
&lt;br /&gt;
* Majd a Continue to Checkout-kor, minden egyes alkalommal OrderItembe elmentjuk a termekarat&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
* each time we update items with quantity and prices&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=69</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=69"/>
		<updated>2022-02-21T10:06:36Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Gondolatok */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
* AddToCart --&amp;gt; termek a Kosar (Order)-ba kerul --&amp;gt; Ar nelkul!!&lt;br /&gt;
&lt;br /&gt;
* Kosar - oldalon, lekerjuk az OrderItemeket, es a kapcsolodo termekek arat !!&lt;br /&gt;
&lt;br /&gt;
* Majd a Continue to Checkout-kor, minden egyes alkalommal OrderItembe elmentjuk a termekarat&lt;br /&gt;
&lt;br /&gt;
=== AddToCart ===&lt;br /&gt;
&lt;br /&gt;
* we add a product to the cart&lt;br /&gt;
* the Cart is created&lt;br /&gt;
* we have CartItems&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items &amp;gt;&amp;gt; CartItems&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* we import items from Cart &amp;gt;&amp;gt; we have CheckoutItems&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=68</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=68"/>
		<updated>2022-02-21T09:57:28Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Gondolatok */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
* AddToCart --&amp;gt; termek a Kosar (Order)-ba kerul --&amp;gt; Ar nelkul!!&lt;br /&gt;
&lt;br /&gt;
* Kosar - oldalon, lekerjuk az OrderItemeket, es a kapcsolodo termekek arat !!&lt;br /&gt;
&lt;br /&gt;
* Majd a Continue to Checkout-kor, minden egyes alkalommal OrderItembe elmentjuk a termekarat&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* do: import items from Cart&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=67</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=67"/>
		<updated>2022-02-21T09:56:45Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Gondolatok */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
* AddToCart --&amp;gt; termek a Kosar (Order)-ba kerul --&amp;gt; Ar nelkul!!&lt;br /&gt;
&lt;br /&gt;
* Kosar - oldalon, lekerjuk az OrderItemeket, es a kapcsolodo termekek arat !!&lt;br /&gt;
&lt;br /&gt;
* Majd a Continue to Checkout-kor, minden egyes alkalommal OrderItembe elmentjuk a termekarat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step0 - Cart ===&lt;br /&gt;
* If items are present:&lt;br /&gt;
* we have the Cart &lt;br /&gt;
* we have items&lt;br /&gt;
&lt;br /&gt;
=== InitiliazeCheckout ===&lt;br /&gt;
* we have the Cart&lt;br /&gt;
* do: import items from Cart&lt;br /&gt;
&lt;br /&gt;
=== Step1 - Delivery Address ===&lt;br /&gt;
* we have Checkout entity&lt;br /&gt;
* we have items in Checkout&lt;br /&gt;
* no email address in Checkout yet&lt;br /&gt;
* no Customer entity yet&lt;br /&gt;
* no Recipient&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Shipping method ===&lt;br /&gt;
* we have Customer entity&lt;br /&gt;
* we have Recipient&lt;br /&gt;
* no Shipping method&lt;br /&gt;
&lt;br /&gt;
=== Step3 - Payment method &amp;amp; Billing ===&lt;br /&gt;
* we have Shipping method&lt;br /&gt;
* no Payment&lt;br /&gt;
* no Sender yet&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=66</id>
		<title>Checkout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Checkout&amp;diff=66"/>
		<updated>2022-02-21T09:54:33Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Gondolatok */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my own logic, the '''Cart''' is temporary and it should expire. It can only exist until the cookie expires. Otherwise, it can't be linked to a user/buyer. &lt;br /&gt;
&lt;br /&gt;
When the buyer enters an email address the Cart becomes a '''Checkout'''. Thus the Checkout will exist until the order is placed and the Checkout becomes an Order. As a result, as soon as it is created a Checkout is in fact an Abandoned Checkout. &lt;br /&gt;
&lt;br /&gt;
The '''Order''' is the final destination. If the Order is created from a Checkout, then the Checkout will be deleted from database. Another way to create an Order is to create it in the admin. &lt;br /&gt;
&lt;br /&gt;
In theory, the '''Transaction''' can be considered the true final destination, meaning that an Order becomes a Transaction. Ezt még át kell gondolni...&lt;br /&gt;
&lt;br /&gt;
== Gondolatok ==&lt;br /&gt;
* AddToCart --&amp;gt; termek a Kosar (Order)-ba kerul --&amp;gt; Ar nelkul!!&lt;br /&gt;
&lt;br /&gt;
* Kosar - oldalon, lekerjuk az OrderItemeket, es a kapcsolodo termekek arat !!&lt;br /&gt;
&lt;br /&gt;
* Majd a Continue to Checkout-kor, minden egyes alkalommal OrderItembe elmentjuk a termekarat&lt;br /&gt;
&lt;br /&gt;
== CART &amp;gt;&amp;gt; CHECKOUT &amp;gt;&amp;gt; ORDER relationship ==&lt;br /&gt;
https://community.shopify.com/c/shopify-apis-and-sdks/difference-between-webhook-quot-checkout-create-quot-quot-orders/td-p/484679 &lt;br /&gt;
&lt;br /&gt;
* A '''checkout/create''' event is fired when a checkout is initiated. That means that a user proceeds from their cart to checkout and the cart line items are &amp;quot;transferred&amp;quot; to the checkout line items. As the user enters data throughout the stages of checkout, personal details, shipping, shipping address, payment method, billing address etc. the checkout/update fires.&lt;br /&gt;
&lt;br /&gt;
* The '''orders/create''' event is fired once the checkout is completed i.e. the user successfully completes all checkout steps and is presented with the checkout order summary screen. However, this event is also fired when you manually create an order in Admin UI or if you mark a draft order as paid i.e. the draft order progresses to become an actual order.&lt;br /&gt;
&lt;br /&gt;
* A '''checkout/update''' event is fired when a customer with an active checkout makes updates to their cart during checkout.&lt;br /&gt;
&lt;br /&gt;
=== FROM SHOPIFY ===&lt;br /&gt;
When a customer reaches the payment method page of the checkout, their cart is checked against your store's inventory levels. If the inventory is available, then it is held for the customer while they complete the payment. If the inventory has become unavailable, then an error message appears. If a payment fails, then the hold is released until the customer reaches the payment method page again.&lt;br /&gt;
&lt;br /&gt;
==== COUPON ====&lt;br /&gt;
* Apply coupon at Checkout (not at Cart!!)&lt;br /&gt;
* at Cart level, you know only the Savings (from sale prices)&lt;br /&gt;
* therefore Savings and Coupon discounts are 2 different things&lt;br /&gt;
&lt;br /&gt;
== Shopify CART attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/cart&lt;br /&gt;
+API: https://shopify.dev/api/admin-rest/2022-01/resources/checkout#resource_object&lt;br /&gt;
+ https://shopify.dev/custom-storefronts/cart:&lt;br /&gt;
&lt;br /&gt;
==== Considerations ====&lt;br /&gt;
* The cart is subject to the same throttling restrictions as the Storefront API.&lt;br /&gt;
* The cart supports a maximum of 500 line items.&lt;br /&gt;
* A shop or customer can create an unlimited number of carts.&lt;br /&gt;
* Unused and abandoned carts are auto-expired 10 days after creation by Shopify.&lt;br /&gt;
* Shopify automatically deletes the cart when the customer completes their checkout.&lt;br /&gt;
&lt;br /&gt;
When a cart is created an id is assigned to it and it has an expiration which is set in cookie with name &amp;quot;cart&amp;quot; this token is also delivered in webhook post callbacks as id and cart_token in carts_update and checkout event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shopify CHECKOUT attributes ==&lt;br /&gt;
Attributes: https://shopify.dev/api/liquid/objects/checkout &lt;br /&gt;
&lt;br /&gt;
API: https://shopify.dev/api/admin-rest/2022-01/resources/order#top &lt;br /&gt;
&lt;br /&gt;
==== checkout.order ====&lt;br /&gt;
Returns the order created by the checkout. Depending on the payment provider, the order might not have been created yet on the checkout order status page and this property could be nil.&lt;br /&gt;
&lt;br /&gt;
==== Complete the checkout ====&lt;br /&gt;
After you've finished creating and performing any updates to the checkout, you can complete the checkout. There are several ways to complete a checkout:&lt;br /&gt;
&lt;br /&gt;
# Use the webUrl field to redirect the customer to Shopify's web checkout form.&lt;br /&gt;
# Complete the checkout using one of the following methods:&lt;br /&gt;
## Shopify card vault&lt;br /&gt;
## Stripe&lt;br /&gt;
## Spreedly&lt;br /&gt;
&lt;br /&gt;
== Shopify ORDER attributes ==&lt;br /&gt;
https://shopify.dev/api/liquid/objects/order &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abandoned Carts vs. Abandoned Checkouts ==&lt;br /&gt;
https://keepshoppers.com/blog/the-difference-between-abandoned-carts-and-abandoned-checkouts&lt;br /&gt;
&lt;br /&gt;
== Egyeb == &lt;br /&gt;
&lt;br /&gt;
This may be a simple question but I find the documentation quite confusing.&lt;br /&gt;
&lt;br /&gt;
The REST API document shows the following entities: Abandoned checkouts, Order, Transaction&lt;br /&gt;
&lt;br /&gt;
The webhook API document shows the following entities: Cart, Checkout, Order, OrderTransaction&lt;br /&gt;
&lt;br /&gt;
What is the relationship between all these entities? And what is the overall flow.&lt;br /&gt;
&lt;br /&gt;
Is like this: Cart =&amp;gt; Checkout =&amp;gt; Order =&amp;gt; Transaction?&lt;br /&gt;
&lt;br /&gt;
Why is the terminology different for both APIs?&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Is a checkout always abandoned?&lt;br /&gt;
&lt;br /&gt;
Is a transaction the same as an order transaction?&lt;br /&gt;
&lt;br /&gt;
Why can't I retrieve Carts with the REST api?&lt;br /&gt;
&lt;br /&gt;
Can I expect the same fields in both the REST and the webhook API?&lt;br /&gt;
&lt;br /&gt;
For a given webhook entity, can I expect the same fields for the various topics (e.g checkouts/create and checkouts/delete)&lt;br /&gt;
&lt;br /&gt;
What causes a checkout to be deleted?&lt;br /&gt;
&lt;br /&gt;
Do carts ever get deleted?&lt;br /&gt;
&lt;br /&gt;
This is all very confusing...&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=65</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=65"/>
		<updated>2022-02-21T09:16:32Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* B. Logged-in checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then ''Same as shipping'' is selected.&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new Sender with Recipient details&lt;br /&gt;
* already a Sender in db &amp;gt;&amp;gt; overwrite Sender with Recipient details&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then ''Same as shipping'' is selected.&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new Sender with Recipient details&lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* then apply either A. or B. from above&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
* a Sender is in db &amp;gt;&amp;gt; replace it.&lt;br /&gt;
* no Sender &amp;gt;&amp;gt; create a new one.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
* Sender already in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
&lt;br /&gt;
Note: there is a verification if the new sender already exists in previously saved list. &lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new one&lt;br /&gt;
* Sender already in db &amp;gt;&amp;gt; apply either A. or B. from above&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=64</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=64"/>
		<updated>2022-02-20T11:37:57Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Same as shipping address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then ''Same as shipping'' is selected.&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new Sender with Recipient details&lt;br /&gt;
* already a Sender in db &amp;gt;&amp;gt; overwrite Sender with Recipient details&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then ''Same as shipping'' is selected.&lt;br /&gt;
&lt;br /&gt;
* no * no Sender in db &amp;gt;&amp;gt; create new Sender with Recipient details&lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* then apply either A. or B. from above&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
* a Sender is in db &amp;gt;&amp;gt; replace it.&lt;br /&gt;
* no Sender &amp;gt;&amp;gt; create a new one.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
* Sender already in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
&lt;br /&gt;
Note: there is a verification if the new sender already exists in previously saved list. &lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new one&lt;br /&gt;
* Sender already in db &amp;gt;&amp;gt; apply either A. or B. from above&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=63</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=63"/>
		<updated>2022-02-20T11:27:30Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Add new billing address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then with ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* the Sender entity is updated with Recipient details ONLY upon Order creation.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and &lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* then apply either A. or B. from above&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
* a Sender is in db &amp;gt;&amp;gt; replace it.&lt;br /&gt;
* no Sender &amp;gt;&amp;gt; create a new one.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
* Sender already in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
&lt;br /&gt;
Note: there is a verification if the new sender already exists in previously saved list. &lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
* no Sender in db &amp;gt;&amp;gt; create new one&lt;br /&gt;
* Sender already in db &amp;gt;&amp;gt; apply either A. or B. from above&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=62</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=62"/>
		<updated>2022-02-20T11:26:41Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Add new billing address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then with ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* the Sender entity is updated with Recipient details ONLY upon Order creation.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and &lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* then apply either A. or B. from above&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
If a Sender is in db &amp;gt;&amp;gt; replace it.&lt;br /&gt;
&lt;br /&gt;
If no Sender &amp;gt;&amp;gt; create a new one.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If no Sender in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
&lt;br /&gt;
If Sender already in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
&lt;br /&gt;
Note: there is a verification if the new sender already exists in previously saved list. &lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If no Sender in db &amp;gt;&amp;gt; create new one&lt;br /&gt;
&lt;br /&gt;
If Sender already in db &amp;gt;&amp;gt; apply either A. or B. from above&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=61</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=61"/>
		<updated>2022-02-20T11:26:23Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then with ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* the Sender entity is updated with Recipient details ONLY upon Order creation.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and &lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* then apply either A. or B. from above&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
If a Sender is in db &amp;gt;&amp;gt; replace it.&lt;br /&gt;
If no Sender &amp;gt;&amp;gt; create a new one.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If no Sender in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
If Sender already in db &amp;gt;&amp;gt; create new one &lt;br /&gt;
&lt;br /&gt;
Note: there is a verification if the new sender already exists in previously saved list. &lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If no Sender in db &amp;gt;&amp;gt; create new one&lt;br /&gt;
If Sender already in db &amp;gt;&amp;gt; apply either A. or B. from above&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=60</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=60"/>
		<updated>2022-02-20T11:15:53Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Same as shipping address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== A. Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then with ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* the Sender entity is updated with Recipient details ONLY upon Order creation.&lt;br /&gt;
&lt;br /&gt;
==== B. Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and &lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
==== C. Abandoned checkout URL ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* then apply either A. or B. from above&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== Dealing with  ====&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=59</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=59"/>
		<updated>2022-02-20T11:09:37Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Same as shipping address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then with ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* the Sender entity is updated with Recipient details &lt;br /&gt;
&lt;br /&gt;
upon Order creation.&lt;br /&gt;
&lt;br /&gt;
==== Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and &lt;br /&gt;
* the Sender entity remains in the Checkout, but will be removed upon Order creation.&lt;br /&gt;
** we don't remove it because the flag tells us to ignore it.&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== Dealing with  ====&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
	<entry>
		<id>https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=58</id>
		<title>Same as shipping logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tulipanfutar.hu/index.php?title=Same_as_shipping_logic&amp;diff=58"/>
		<updated>2022-02-20T11:02:27Z</updated>

		<summary type="html">&lt;p&gt;Tulipanf: /* Guest checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
The Recipient and Sender are linked to a User, if any. A user may have more than one Recipient / Sender. Why this is important? In the checkout process there are two scenarios: &lt;br /&gt;
&lt;br /&gt;
# Guest checkout&lt;br /&gt;
# Logged-in checkout&lt;br /&gt;
# Abandoned checkout URL process&lt;br /&gt;
&lt;br /&gt;
== 1. Guest checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario when editing the Recipient / Sender details they are always overwritten. In other words, a Guest checkout will have one Recipient and one Sender object. These Recipient and Sender are not linked to a User.&lt;br /&gt;
&lt;br /&gt;
== 2. Logged-in checkout ==&lt;br /&gt;
&lt;br /&gt;
In this scenario the customer has two options: '''Add a new address''' and '''List previously saved addresses'''.  &lt;br /&gt;
&lt;br /&gt;
* With '''Add a new address''' a new Recipient / Sender is created in db and linked to the Checkout. &lt;br /&gt;
* When picking a '''previously saved address''' a different Recipient / Sender is linked to the Checkout.&lt;br /&gt;
&lt;br /&gt;
== 3. Abandoned checkout URL ==&lt;br /&gt;
&lt;br /&gt;
This is affected by whether the Checkout was previously done with scenario (1) or (2). &lt;br /&gt;
&lt;br /&gt;
When resuming an ''Abandoned checkout'', you can edit only data linked to the current Checkout. Therefore, if the checkout was done by a ''logged-in user'' you no longer have access to the previous Recipient / Sender lists. &lt;br /&gt;
&lt;br /&gt;
So, when editing a Recipient / Sender the entity linked to the Checkout is therefore overwritten.&lt;br /&gt;
&lt;br /&gt;
= The &amp;quot;Same As Shipping&amp;quot; workflow =&lt;br /&gt;
When choosing the Billing Address (Sender) the Customer has 2 options:&lt;br /&gt;
&lt;br /&gt;
* Same as shipping address&lt;br /&gt;
* Add new billing address&lt;br /&gt;
&lt;br /&gt;
== Same as shipping address ==&lt;br /&gt;
&lt;br /&gt;
Guest and logged-in checkout scenarios do not affect the ''Same as shipping'' logic. With this logic no Sender is created in db, but a flag is marked. As a result, upon checkout completion a Sender will be created and attached to the Order. &lt;br /&gt;
&lt;br /&gt;
NOTE: Recipient fields must match Sender's. Results that Recipient must have Company and Company VAT fields.&lt;br /&gt;
&lt;br /&gt;
==== Guest checkout ====&lt;br /&gt;
&lt;br /&gt;
Previously a new Sender was added to the Checkout, then with ''Same as shipping'':&lt;br /&gt;
&lt;br /&gt;
* the flag becomes true and&lt;br /&gt;
* the Sender details will be updated with Recipient details &lt;br /&gt;
&lt;br /&gt;
upon Order creation.&lt;br /&gt;
&lt;br /&gt;
==== Logged-in checkout ====&lt;br /&gt;
&lt;br /&gt;
If previously a new Sender was added to the Checkout, then when choosing ''Same as shipping'' the flag becomes true and the Sender is removed (from the Checkout) upon Order creation.&lt;br /&gt;
&lt;br /&gt;
== Add new billing address == &lt;br /&gt;
&lt;br /&gt;
In this case the ''same_as_shipping'' flag is set to false (0) and a new Sender is created and added to the Checkout. &lt;br /&gt;
&lt;br /&gt;
==== Dealing with  ====&lt;/div&gt;</summary>
		<author><name>Tulipanf</name></author>
	</entry>
</feed>