[DOCS] API custom logic example

This commit is contained in:
arti0090 2021-05-12 13:25:41 +02:00 committed by Grzegorz Sadowski
parent 2ea9298036
commit dfd2ebb1b4
No known key found for this signature in database
GPG key ID: EF87FF4E6E3BD364

View file

@ -129,6 +129,89 @@ For 4 products:
| |
Or if you are using unified API:
First You need to pickup new cart:
.. code-block:: bash
curl -X POST "https://master.demo.sylius.com/api/v2/shop/orders" -H "accept: application/ld+json"
With empty body:
.. code-block:: json
{}
This should return a response with ``tokenValue`` which we would need for next API calls:
.. code-block:: json
{
"shippingState": "string",
"tokenValue": "CART_TOKEN",
"id": 123,
}
Then we need to add product to the cart but first it would be good to have any, You can use this call to retrieve some products:
.. code-block:: bash
curl -X GET "https://master.demo.sylius.com/api/v2/shop/products?page=1&itemsPerPage=30" -H "accept: application/ld+json"
And choose any product variant IRI that you would like to add to your cart:
.. code-block:: bash
curl --location --request PATCH 'https://127.0.0.1:8000/api/v2/shop/orders/CART_TOKEN/items' -H 'Content-Type: application/merge-patch+json'
With product variant of choose in body:
.. code-block:: json
{
"productVariant": "/api/v2/shop/product-variants/PRODUCT_VARIANT_IRI",
"quantity": 1
}
This should return a response with the cart which should contain ``shippingTotal``:
.. code-block:: json
{
"taxTotal": 0,
"shippingTotal": 500,
"orderPromotionTotal": 0
}
.. attention::
API returns costs in decimal numbers that's why in response it is 500 currency unit shipping total (which stands for 5 USD in this case).
Now let's change the quantity of our product variant. We can do it by once again calling endpoint as above, or by utilising ``changeQuantity`` endpoint:
.. code-block:: bash
curl --location --request PATCH 'https://127.0.0.1:8000/api/v2/shop/orders/CART_TOKEN/items/ORDER_ITEM_ID' -H 'Content-Type: application/merge-patch+json'
With new quantity in body:
.. code-block:: json
{
"quantity": 4
}
Which should return a response with the cart:
.. code-block:: json
{
"taxTotal": 0,
"shippingTotal": 1000,
"orderPromotionTotal": 0
}
Amazing job! You've just provided your own logic into a Sylius-based system. Therefore, your store can provide a unique Amazing job! You've just provided your own logic into a Sylius-based system. Therefore, your store can provide a unique
experience for your Customers. Basing on this knowledge, you're ready to customize your shop even more and make it as suitable experience for your Customers. Basing on this knowledge, you're ready to customize your shop even more and make it as suitable
to your business needs as possible. to your business needs as possible.
@ -141,3 +224,4 @@ Learn more
* :doc:`Checkout </book/orders/checkout>` * :doc:`Checkout </book/orders/checkout>`
* :doc:`Orders </book/orders/orders>` * :doc:`Orders </book/orders/orders>`
* :doc:`Adjustments </book/orders/adjustments>` * :doc:`Adjustments </book/orders/adjustments>`
* :doc:`Unified API </api/index>`