// POST /v1/customers/{customerId}/cart/items HTTP/1.1
POST /v1/me/cart/items HTTP/1.1
Host: api.clayful.io
Accept: application/json
Accept-Encoding: gzip
Content-Type: application/json
Authorization: Bearer <api-access-token>
Authorization-Customer: <customer-auth-token>

{
    "product": "productId",
    "variant": "variantId",
    "quantity": 1,
    "shippingMethod": "shippingMethodId", // or null
    "bundleItems": [
        {
            "product": "productId",
            "variant": "variantId",
            "quantity": 1,
            "shippingMethod": "shippingMethodId" // or null
        }
    ]
}
var Cart = Clayful.Cart;

var payload = {
    product: 'productId',
    variant: 'variantId',
    quantity: 1,
    shippingMethod: 'shippingMethodId', // or null
    bundleItems: [
        {
            product: 'productId',
            variant: 'variantId',
            quantity: 1,
            shippingMethod: 'shippingMethodId' // or null
        }
    ]
};

var options = {
    customer: '<customer-auth-token>'
};

Cart.addItemForMe(payload, options, function(err, response) {

    if (err) {
        throw err;
    }
    
    console.log(response.data);

});
const Cart = Clayful.Cart;

const payload = {
    product: 'productId',
    variant: 'variantId',
    quantity: 1,
    shippingMethod: 'shippingMethodId', // or null
    bundleItems: [
        {
            product: 'productId',
            variant: 'variantId',
            quantity: 1,
            shippingMethod: 'shippingMethodId' // or null
        }
    ]
};

const options = {
    customer: '<customer-auth-token>'
};

// Cart.addItem('customerId', payload, ...);
Cart.addItemForMe(payload, options, (err, response) => {

    if (err) {
        throw err;
    }

    console.log(response.data);

});
use Clayful\Cart;

$payload = array(
    'product' => 'productId',
    'variant' => 'variantId',
    'quantity' => 1,
    'shippingMethod' => 'shippingMethodId', // or null
    'bundleItems' => array(
        array(
            'product' => 'productId',
            'variant' => 'variantId',
            'quantity' => 1,
            'shippingMethod' => 'shippingMethodId' // or null
        )
    )
);

$options = array(
    'customer' => '<customer-auth-token>'
);

// Cart::addItem('customerId', $payload, ...);
$response = Cart::addItemForMe($payload, $options);

print_r($response->data);
Cart = Clayful.Cart

payload = {
    'product': 'productId',
    'variant': 'variantId',
    'quantity': 1,
    'shippingMethod': 'shippingMethodId', # or None
    'bundleItems': [
        {
            'product': 'productId',
            'variant': 'variantId',
            'quantity': 1,
            'shippingMethod': 'shippingMethodId' # or None
        }
    ]
}

options = {
    'customer': '<customer-auth-token>'
}

# Cart.add_item('customerId', payload, ...)
response = Cart.add_item_for_me(payload, options)

print(response.data)
Cart = Clayful::Cart

payload = {
    'product' => 'productId',
    'variant' => 'variantId',
    'quantity' => 1,
    'shippingMethod' => 'shippingMethodId', # or nil
    'bundleItems' => [
        {
            'product' => 'productId',
            'variant' => 'variantId',
            'quantity' => 1,
            'shippingMethod' => 'shippingMethodId' # or nil
        }
    ]
}

options = {
    'customer' => '<customer-auth-token>'
}

# Cart.add_item('customerId', payload, ...)
response = Cart.add_item_for_me(payload, options)

puts response.data