Class: AboutYou::SDK::Model::BasketItem
- Inherits:
-
Object
- Object
- AboutYou::SDK::Model::BasketItem
- Includes:
- AbstractBasketItem, BasketVariantItem, ResultError
- Defined in:
- lib/AboutYou/Model/Basket/basket_item.rb
Overview
BasketItem is a class used for adding a variant item into the basket
If you want to add a variant into a basket, you need to create an instance of a BasketItem. The BasketItem represents a variant by it’s variant_id. It can contain $additional_data that will be transmitted to the merchant untouched.
Example usage: $variant_id = $variant->getId(); // $variant is instance of CollinsShopApiModelVariant $basketItem = new BasketItem(‘my-personal-identifier’, $variant_id); $basketItem->setAdditionalData(‘jeans with engraving ’for you”, [‘engraving_text’ => ‘for you’]); $shop_api->addItemToBasket(session_id(), $basketItem);
Constant Summary
Constants included from AbstractBasketItem
AbstractBasketItem::IMAGE_URL_REQUIRED
Instance Attribute Summary collapse
-
#id ⇒ Object
The ID of this basket item.
Attributes included from BasketVariantItem
#app_id, #json_object, #product, #variant, #variant_id
Attributes included from AbstractBasketItem
Attributes included from ResultError
#error_code, #error_ident, #error_message
Instance Method Summary collapse
- #check_id(id) ⇒ Object
-
#create_from_json(json_object, products) ⇒ Object
BasketItem.
-
#initialize(id, variant_id, additional_data = nil, app_id = nil) ⇒ BasketItem
constructor
Constructor.
Methods included from BasketVariantItem
#check_app_id, #check_variant_id, #errors?, #old_price, #tax, #total_net, #total_price, #total_vat, #unique_key
Methods included from AbstractBasketItem
#addition_data=, #check_additional_data, #description
Methods included from ResultError
Constructor Details
#initialize(id, variant_id, additional_data = nil, app_id = nil) ⇒ BasketItem
Constructor.
41 42 43 44 45 |
# File 'lib/AboutYou/Model/Basket/basket_item.rb', line 41 def initialize(id, variant_id, additional_data = nil, app_id = nil) check_id(id) self.id = id super(variant_id, additional_data, app_id) end |
Instance Attribute Details
#id ⇒ Object
The ID of this basket item. You can choose this ID by yourself to identify your item later.
32 33 34 |
# File 'lib/AboutYou/Model/Basket/basket_item.rb', line 32 def id @id end |
Instance Method Details
#check_id(id) ⇒ Object
87 88 89 90 91 |
# File 'lib/AboutYou/Model/Basket/basket_item.rb', line 87 def check_id(id) fail '\InvalidArgumentException! ID of the BasketSetItem must be a String that must contain minimum two characters' unless id.is_a?(String) || id.length < 2 end |
#create_from_json(json_object, products) ⇒ Object
Returns BasketItem.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/AboutYou/Model/Basket/basket_item.rb', line 55 def create_from_json(json_object, products) item = new( json_object['id'], json_object['variant_id'], if json_object.key?('additional_data') [json_object['additional_data']] else nil end, json_object.key?('app_id') ? json_object['app_id'] : nil ) item.parse_error_result(json_object) item.json_object = json_object unless json_object['product_id'].empty? if products.key?(json_object['product_id']) item.product = products[json_object['product_id']] else fail 'UnexpectedResultException! Product with ID ' + String(json_object['product_id']) + ' expected but wasnt received with the basket' end end item end |