ultracart_api 4.1.198 → 4.1.200

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -2
  3. data/docs/SfvbApi.md +582 -15
  4. data/docs/SfvbApproval.md +3 -1
  5. data/docs/SfvbApprovalCreateRequest.md +11 -1
  6. data/docs/SfvbApprovalParams.md +30 -2
  7. data/docs/SfvbApprovalReview.md +36 -0
  8. data/docs/SfvbApprovalReviewFinding.md +24 -0
  9. data/docs/SfvbItemAttributeBatchRequest.md +20 -0
  10. data/docs/SfvbItemAttributeBatchResponse.md +40 -0
  11. data/docs/SfvbItemAttributeBatchRow.md +30 -0
  12. data/docs/SfvbItemAttributeBatchRowResult.md +36 -0
  13. data/docs/SfvbItemPricing.md +38 -0
  14. data/docs/SfvbItemPricingRequest.md +32 -0
  15. data/docs/SfvbItemRelated.md +28 -0
  16. data/docs/SfvbItemRelatedItem.md +22 -0
  17. data/docs/SfvbItemRelatedRequest.md +22 -0
  18. data/docs/SfvbItemVolumeDiscount.md +20 -0
  19. data/docs/SfvbRedirectDeleteRequest.md +20 -0
  20. data/docs/SfvbRedirectDeleteResponse.md +36 -0
  21. data/docs/SfvbRedirectDeleteRow.md +20 -0
  22. data/docs/SfvbRedirectDeleteRowResult.md +32 -0
  23. data/lib/ultracart_api/api/sfvb_api.rb +852 -69
  24. data/lib/ultracart_api/models/sfvb_approval.rb +13 -4
  25. data/lib/ultracart_api/models/sfvb_approval_create_request.rb +58 -6
  26. data/lib/ultracart_api/models/sfvb_approval_params.rb +181 -5
  27. data/lib/ultracart_api/models/sfvb_approval_review.rb +354 -0
  28. data/lib/ultracart_api/models/sfvb_approval_review_finding.rb +250 -0
  29. data/lib/ultracart_api/models/sfvb_item_attribute_batch_request.rb +232 -0
  30. data/lib/ultracart_api/models/sfvb_item_attribute_batch_response.rb +332 -0
  31. data/lib/ultracart_api/models/sfvb_item_attribute_batch_row.rb +280 -0
  32. data/lib/ultracart_api/models/sfvb_item_attribute_batch_row_result.rb +344 -0
  33. data/lib/ultracart_api/models/sfvb_item_pricing.rb +322 -0
  34. data/lib/ultracart_api/models/sfvb_item_pricing_request.rb +292 -0
  35. data/lib/ultracart_api/models/sfvb_item_related.rb +272 -0
  36. data/lib/ultracart_api/models/sfvb_item_related_item.rb +274 -0
  37. data/lib/ultracart_api/models/sfvb_item_related_request.rb +242 -0
  38. data/lib/ultracart_api/models/sfvb_item_volume_discount.rb +230 -0
  39. data/lib/ultracart_api/models/sfvb_redirect_delete_request.rb +232 -0
  40. data/lib/ultracart_api/models/sfvb_redirect_delete_response.rb +312 -0
  41. data/lib/ultracart_api/models/sfvb_redirect_delete_row.rb +230 -0
  42. data/lib/ultracart_api/models/sfvb_redirect_delete_row_result.rb +324 -0
  43. data/lib/ultracart_api/version.rb +1 -1
  44. data/lib/ultracart_api.rb +16 -0
  45. metadata +34 -2
data/docs/SfvbApi.md CHANGED
@@ -23,11 +23,14 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
23
23
  | [**delete_sfvb_page_multimedia**](SfvbApi.md#delete_sfvb_page_multimedia) | **DELETE** /sfvb/storefronts/{storefront_oid}/pages/multimedia | Detach an image from a page |
24
24
  | [**delete_sfvb_preview_session**](SfvbApi.md#delete_sfvb_preview_session) | **DELETE** /sfvb/storefronts/{storefront_oid}/preview_sessions/{preview_session_id} | Delete a preview session |
25
25
  | [**delete_sfvb_redirect**](SfvbApi.md#delete_sfvb_redirect) | **DELETE** /sfvb/storefronts/{storefront_oid}/redirects/{redirect_id} | Delete a redirect rule |
26
+ | [**delete_sfvb_redirects**](SfvbApi.md#delete_sfvb_redirects) | **POST** /sfvb/storefronts/{storefront_oid}/redirects/delete | Delete up to 5,000 redirect rules in one call |
26
27
  | [**detach_sfvb_blog_post_image**](SfvbApi.md#detach_sfvb_blog_post_image) | **POST** /sfvb/storefronts/{storefront_oid}/blog_posts/{blog_post_oid}/images/detach | Detach an image from a blog post |
27
28
  | [**disable_sfvb_i18n_language**](SfvbApi.md#disable_sfvb_i18n_language) | **POST** /sfvb/storefronts/{storefront_oid}/i18n/languages/{code}/disable | Disable a language |
28
29
  | [**disable_sfvb_upsell_offer**](SfvbApi.md#disable_sfvb_upsell_offer) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid}/disable | Disable an upsell offer |
29
30
  | [**disable_sfvb_upsell_path**](SfvbApi.md#disable_sfvb_upsell_path) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_paths/{upsell_path_oid}/disable | Disable an upsell path |
30
31
  | [**download_sfvb_file**](SfvbApi.md#download_sfvb_file) | **GET** /sfvb/storefronts/{storefront_oid}/files/download | Read a storefront file's raw bytes |
32
+ | [**dry_run_sfvb_item_attribute_batch**](SfvbApi.md#dry_run_sfvb_item_attribute_batch) | **POST** /sfvb/storefronts/{storefront_oid}/items/attributes/batch/dry_run | Check attribute changes across many items without writing them |
33
+ | [**dry_run_sfvb_redirect_delete**](SfvbApi.md#dry_run_sfvb_redirect_delete) | **POST** /sfvb/storefronts/{storefront_oid}/redirects/delete/dry_run | Check a batch delete of redirect rules without writing it |
31
34
  | [**dry_run_sfvb_redirect_import**](SfvbApi.md#dry_run_sfvb_redirect_import) | **POST** /sfvb/storefronts/{storefront_oid}/redirects/import/dry_run | Check a redirect import without writing it |
32
35
  | [**duplicate_sfvb_library_entry**](SfvbApi.md#duplicate_sfvb_library_entry) | **POST** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/duplicate | Copy a library entry into a new private entry |
33
36
  | [**duplicate_sfvb_page**](SfvbApi.md#duplicate_sfvb_page) | **POST** /sfvb/storefronts/{storefront_oid}/pages/duplicate | Copy a page to a new path |
@@ -35,6 +38,8 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
35
38
  | [**duplicate_sfvb_upsell_offer**](SfvbApi.md#duplicate_sfvb_upsell_offer) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid}/duplicate | Duplicate an upsell offer |
36
39
  | [**duplicate_sfvb_upsell_path**](SfvbApi.md#duplicate_sfvb_upsell_path) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_paths/{upsell_path_oid}/duplicate | Duplicate an upsell path or one of its variations |
37
40
  | [**enable_sfvb_i18n_language**](SfvbApi.md#enable_sfvb_i18n_language) | **POST** /sfvb/storefronts/{storefront_oid}/i18n/languages/{code}/enable | Enable a language |
41
+ | [**enable_sfvb_upsell_offer**](SfvbApi.md#enable_sfvb_upsell_offer) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid}/enable | Enable an upsell offer |
42
+ | [**enable_sfvb_upsell_path**](SfvbApi.md#enable_sfvb_upsell_path) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_paths/{upsell_path_oid}/enable | Enable an upsell path |
38
43
  | [**end_sfvb_experiment**](SfvbApi.md#end_sfvb_experiment) | **POST** /sfvb/storefronts/{storefront_oid}/experiments/{experiment_oid}/end | End an experiment |
39
44
  | [**favorite_sfvb_library_entry**](SfvbApi.md#favorite_sfvb_library_entry) | **PUT** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/favorite | Favorite a library entry |
40
45
  | [**get_sfvb_approval**](SfvbApi.md#get_sfvb_approval) | **GET** /sfvb/approvals/{approval_id} | Read one approval request |
@@ -54,6 +59,8 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
54
59
  | [**get_sfvb_i18n_message**](SfvbApi.md#get_sfvb_i18n_message) | **GET** /sfvb/storefronts/{storefront_oid}/i18n/messages/{key} | Read one built-in message |
55
60
  | [**get_sfvb_i18n_message_machine_translations**](SfvbApi.md#get_sfvb_i18n_message_machine_translations) | **GET** /sfvb/storefronts/{storefront_oid}/i18n/messages/{key}/machine_translations | Read where a message's translations come from |
56
61
  | [**get_sfvb_item**](SfvbApi.md#get_sfvb_item) | **GET** /sfvb/storefronts/{storefront_oid}/items | Read an item's storefront facing content |
62
+ | [**get_sfvb_item_pricing**](SfvbApi.md#get_sfvb_item_pricing) | **GET** /sfvb/storefronts/{storefront_oid}/items/pricing | Read what an item charges |
63
+ | [**get_sfvb_item_related**](SfvbApi.md#get_sfvb_item_related) | **GET** /sfvb/storefronts/{storefront_oid}/items/related | Read an item's related items |
57
64
  | [**get_sfvb_library_entry**](SfvbApi.md#get_sfvb_library_entry) | **GET** /sfvb/storefronts/{storefront_oid}/library/{library_oid} | Read one library entry including its CJSON |
58
65
  | [**get_sfvb_library_history**](SfvbApi.md#get_sfvb_library_history) | **GET** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/history | List a library entry's published revisions |
59
66
  | [**get_sfvb_library_share_targets**](SfvbApi.md#get_sfvb_library_share_targets) | **GET** /sfvb/storefronts/{storefront_oid}/library/share_targets | List the accounts a library entry can be shared with |
@@ -118,6 +125,8 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
118
125
  | [**put_sfvb_item_attributes**](SfvbApi.md#put_sfvb_item_attributes) | **PUT** /sfvb/storefronts/{storefront_oid}/items/attributes | Change some of an item's attributes |
119
126
  | [**put_sfvb_item_content**](SfvbApi.md#put_sfvb_item_content) | **PUT** /sfvb/storefronts/{storefront_oid}/items/content | Change an item's title or long description |
120
127
  | [**put_sfvb_item_multimedia**](SfvbApi.md#put_sfvb_item_multimedia) | **PUT** /sfvb/storefronts/{storefront_oid}/items/multimedia | Attach an image to an item |
128
+ | [**put_sfvb_item_pricing**](SfvbApi.md#put_sfvb_item_pricing) | **PUT** /sfvb/storefronts/{storefront_oid}/items/pricing | Change what an item charges |
129
+ | [**put_sfvb_item_related**](SfvbApi.md#put_sfvb_item_related) | **PUT** /sfvb/storefronts/{storefront_oid}/items/related | Replace an item's related items |
121
130
  | [**put_sfvb_item_seo**](SfvbApi.md#put_sfvb_item_seo) | **PUT** /sfvb/storefronts/{storefront_oid}/items/seo | Change an item's search metadata |
122
131
  | [**put_sfvb_menu**](SfvbApi.md#put_sfvb_menu) | **PUT** /sfvb/storefronts/{storefront_oid}/menus/{code} | Replace a store menu's entries |
123
132
  | [**put_sfvb_page_attributes**](SfvbApi.md#put_sfvb_page_attributes) | **PUT** /sfvb/storefronts/{storefront_oid}/pages/attributes | Change a page's attributes |
@@ -149,6 +158,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
149
158
  | [**unpublish_sfvb_library_entry**](SfvbApi.md#unpublish_sfvb_library_entry) | **POST** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/unpublish | Narrow who can see a library entry |
150
159
  | [**unshare_sfvb_library_entry**](SfvbApi.md#unshare_sfvb_library_entry) | **DELETE** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/shares/{merchant_id} | Stop sharing a library entry with an account |
151
160
  | [**update_sfvb_blog_post**](SfvbApi.md#update_sfvb_blog_post) | **PUT** /sfvb/storefronts/{storefront_oid}/blog_posts/{blog_post_oid} | Change a blog post |
161
+ | [**update_sfvb_item_attribute_batch**](SfvbApi.md#update_sfvb_item_attribute_batch) | **POST** /sfvb/storefronts/{storefront_oid}/items/attributes/batch | Change attributes across many items in one call |
152
162
  | [**update_sfvb_library_entry**](SfvbApi.md#update_sfvb_library_entry) | **PUT** /sfvb/storefronts/{storefront_oid}/library/{library_oid} | Update a library entry's draft |
153
163
  | [**update_sfvb_redirect**](SfvbApi.md#update_sfvb_redirect) | **PUT** /sfvb/storefronts/{storefront_oid}/redirects/{redirect_id} | Change a redirect rule |
154
164
  | [**update_sfvb_upsell_offer**](SfvbApi.md#update_sfvb_upsell_offer) | **PUT** /sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid} | Update an upsell offer |
@@ -1197,6 +1207,61 @@ nil (empty response body)
1197
1207
  - **Accept**: application/json
1198
1208
 
1199
1209
 
1210
+ ## delete_sfvb_redirects
1211
+
1212
+ > <SfvbRedirectDeleteResponse> delete_sfvb_redirects(storefront_oid, redirect_delete_request, opts)
1213
+
1214
+ Delete up to 5,000 redirect rules in one call
1215
+
1216
+ Deletes exactly the rows of a dry run, given its plan_hash, in one transaction. Every row needs its hash_sha256. A rule changed since its hash was read is skipped and reported as stale, and a missing one as not_found; the other rows still go through. Needs the approval of the person who signed in the CLI, as an approved redirect.delete_batch request for exactly these rows in the Approval-Id header, and sfvb_publish. Deleting rules lets add and import work again once the storefront is back under 5,000 rules.
1217
+
1218
+
1219
+ ### Examples
1220
+
1221
+
1222
+ (No example for this operation).
1223
+
1224
+
1225
+ #### Using the delete_sfvb_redirects_with_http_info variant
1226
+
1227
+ This returns an Array which contains the response data, status code and headers.
1228
+
1229
+ > <Array(<SfvbRedirectDeleteResponse>, Integer, Hash)> delete_sfvb_redirects_with_http_info(storefront_oid, redirect_delete_request, opts)
1230
+
1231
+ ```ruby
1232
+ begin
1233
+ # Delete up to 5,000 redirect rules in one call
1234
+ data, status_code, headers = api_instance.delete_sfvb_redirects_with_http_info(storefront_oid, redirect_delete_request, opts)
1235
+ p status_code # => 2xx
1236
+ p headers # => { ... }
1237
+ p data # => <SfvbRedirectDeleteResponse>
1238
+ rescue UltracartClient::ApiError => e
1239
+ puts "Error when calling SfvbApi->delete_sfvb_redirects_with_http_info: #{e}"
1240
+ end
1241
+ ```
1242
+
1243
+ ### Parameters
1244
+
1245
+ | Name | Type | Description | Notes |
1246
+ | ---- | ---- | ----------- | ----- |
1247
+ | **storefront_oid** | **Integer** | | |
1248
+ | **redirect_delete_request** | [**SfvbRedirectDeleteRequest**](SfvbRedirectDeleteRequest.md) | The request | |
1249
+ | **approval_id** | **String** | The approval_id of an approved redirect.delete_batch request for exactly these rows. Required. See POST /sfvb/approvals. | [optional] |
1250
+
1251
+ ### Return type
1252
+
1253
+ [**SfvbRedirectDeleteResponse**](SfvbRedirectDeleteResponse.md)
1254
+
1255
+ ### Authorization
1256
+
1257
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
1258
+
1259
+ ### HTTP request headers
1260
+
1261
+ - **Content-Type**: application/json; charset=UTF-8
1262
+ - **Accept**: application/json
1263
+
1264
+
1200
1265
  ## detach_sfvb_blog_post_image
1201
1266
 
1202
1267
  > <SfvbBlogPostDetail> detach_sfvb_blog_post_image(storefront_oid, blog_post_oid, blog_post_image_request)
@@ -1469,6 +1534,114 @@ nil (empty response body)
1469
1534
  - **Accept**: application/octet-stream
1470
1535
 
1471
1536
 
1537
+ ## dry_run_sfvb_item_attribute_batch
1538
+
1539
+ > <SfvbItemAttributeBatchResponse> dry_run_sfvb_item_attribute_batch(storefront_oid, item_attribute_batch_request)
1540
+
1541
+ Check attribute changes across many items without writing them
1542
+
1543
+ Checks up to 2,000 rows on up to 200 items, each with the single attribute update's checks, and answers every row as change, unchanged, stale (expected_value differs from the current value), not_found or invalid, with the current value and its current_sha256, plus a plan_hash over the change rows. Writes nothing. SEO attributes are refused; a batch never touches them or any attribute it does not name.
1544
+
1545
+
1546
+ ### Examples
1547
+
1548
+
1549
+ (No example for this operation).
1550
+
1551
+
1552
+ #### Using the dry_run_sfvb_item_attribute_batch_with_http_info variant
1553
+
1554
+ This returns an Array which contains the response data, status code and headers.
1555
+
1556
+ > <Array(<SfvbItemAttributeBatchResponse>, Integer, Hash)> dry_run_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request)
1557
+
1558
+ ```ruby
1559
+ begin
1560
+ # Check attribute changes across many items without writing them
1561
+ data, status_code, headers = api_instance.dry_run_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request)
1562
+ p status_code # => 2xx
1563
+ p headers # => { ... }
1564
+ p data # => <SfvbItemAttributeBatchResponse>
1565
+ rescue UltracartClient::ApiError => e
1566
+ puts "Error when calling SfvbApi->dry_run_sfvb_item_attribute_batch_with_http_info: #{e}"
1567
+ end
1568
+ ```
1569
+
1570
+ ### Parameters
1571
+
1572
+ | Name | Type | Description | Notes |
1573
+ | ---- | ---- | ----------- | ----- |
1574
+ | **storefront_oid** | **Integer** | | |
1575
+ | **item_attribute_batch_request** | [**SfvbItemAttributeBatchRequest**](SfvbItemAttributeBatchRequest.md) | The rows | |
1576
+
1577
+ ### Return type
1578
+
1579
+ [**SfvbItemAttributeBatchResponse**](SfvbItemAttributeBatchResponse.md)
1580
+
1581
+ ### Authorization
1582
+
1583
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
1584
+
1585
+ ### HTTP request headers
1586
+
1587
+ - **Content-Type**: application/json; charset=UTF-8
1588
+ - **Accept**: application/json
1589
+
1590
+
1591
+ ## dry_run_sfvb_redirect_delete
1592
+
1593
+ > <SfvbRedirectDeleteResponse> dry_run_sfvb_redirect_delete(storefront_oid, redirect_delete_request)
1594
+
1595
+ Check a batch delete of redirect rules without writing it
1596
+
1597
+ Checks up to 5,000 rules by redirect_id and returns each one as deletable, stale (its hash_sha256 differs from the one sent) or not_found, with its current hash, source, target, status, type and note, and a plan_hash. Writes nothing. Rows may leave out hash_sha256; the result carries the current one to send when deleting.
1598
+
1599
+
1600
+ ### Examples
1601
+
1602
+
1603
+ (No example for this operation).
1604
+
1605
+
1606
+ #### Using the dry_run_sfvb_redirect_delete_with_http_info variant
1607
+
1608
+ This returns an Array which contains the response data, status code and headers.
1609
+
1610
+ > <Array(<SfvbRedirectDeleteResponse>, Integer, Hash)> dry_run_sfvb_redirect_delete_with_http_info(storefront_oid, redirect_delete_request)
1611
+
1612
+ ```ruby
1613
+ begin
1614
+ # Check a batch delete of redirect rules without writing it
1615
+ data, status_code, headers = api_instance.dry_run_sfvb_redirect_delete_with_http_info(storefront_oid, redirect_delete_request)
1616
+ p status_code # => 2xx
1617
+ p headers # => { ... }
1618
+ p data # => <SfvbRedirectDeleteResponse>
1619
+ rescue UltracartClient::ApiError => e
1620
+ puts "Error when calling SfvbApi->dry_run_sfvb_redirect_delete_with_http_info: #{e}"
1621
+ end
1622
+ ```
1623
+
1624
+ ### Parameters
1625
+
1626
+ | Name | Type | Description | Notes |
1627
+ | ---- | ---- | ----------- | ----- |
1628
+ | **storefront_oid** | **Integer** | | |
1629
+ | **redirect_delete_request** | [**SfvbRedirectDeleteRequest**](SfvbRedirectDeleteRequest.md) | The request | |
1630
+
1631
+ ### Return type
1632
+
1633
+ [**SfvbRedirectDeleteResponse**](SfvbRedirectDeleteResponse.md)
1634
+
1635
+ ### Authorization
1636
+
1637
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
1638
+
1639
+ ### HTTP request headers
1640
+
1641
+ - **Content-Type**: application/json; charset=UTF-8
1642
+ - **Accept**: application/json
1643
+
1644
+
1472
1645
  ## dry_run_sfvb_redirect_import
1473
1646
 
1474
1647
  > <SfvbRedirectImportResponse> dry_run_sfvb_redirect_import(storefront_oid, redirect_import_request)
@@ -1852,13 +2025,123 @@ end
1852
2025
  - **Accept**: application/json
1853
2026
 
1854
2027
 
2028
+ ## enable_sfvb_upsell_offer
2029
+
2030
+ > <SfvbUpsellOffer> enable_sfvb_upsell_offer(storefront_oid, upsell_offer_oid, opts)
2031
+
2032
+ Enable an upsell offer
2033
+
2034
+ Switches the offer on. The only way to switch one on - create and update refuse active true on an offer that is off. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved upsell.enable request for this offer (see POST /sfvb/approvals). An offer that is already on is returned unchanged, and no approval is used.
2035
+
2036
+
2037
+ ### Examples
2038
+
2039
+
2040
+ (No example for this operation).
2041
+
2042
+
2043
+ #### Using the enable_sfvb_upsell_offer_with_http_info variant
2044
+
2045
+ This returns an Array which contains the response data, status code and headers.
2046
+
2047
+ > <Array(<SfvbUpsellOffer>, Integer, Hash)> enable_sfvb_upsell_offer_with_http_info(storefront_oid, upsell_offer_oid, opts)
2048
+
2049
+ ```ruby
2050
+ begin
2051
+ # Enable an upsell offer
2052
+ data, status_code, headers = api_instance.enable_sfvb_upsell_offer_with_http_info(storefront_oid, upsell_offer_oid, opts)
2053
+ p status_code # => 2xx
2054
+ p headers # => { ... }
2055
+ p data # => <SfvbUpsellOffer>
2056
+ rescue UltracartClient::ApiError => e
2057
+ puts "Error when calling SfvbApi->enable_sfvb_upsell_offer_with_http_info: #{e}"
2058
+ end
2059
+ ```
2060
+
2061
+ ### Parameters
2062
+
2063
+ | Name | Type | Description | Notes |
2064
+ | ---- | ---- | ----------- | ----- |
2065
+ | **storefront_oid** | **Integer** | | |
2066
+ | **upsell_offer_oid** | **Integer** | | |
2067
+ | **approval_id** | **String** | The approval_id of an approved upsell.enable request for this offer. Required when the offer is off. See POST /sfvb/approvals. | [optional] |
2068
+
2069
+ ### Return type
2070
+
2071
+ [**SfvbUpsellOffer**](SfvbUpsellOffer.md)
2072
+
2073
+ ### Authorization
2074
+
2075
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
2076
+
2077
+ ### HTTP request headers
2078
+
2079
+ - **Content-Type**: Not defined
2080
+ - **Accept**: application/json
2081
+
2082
+
2083
+ ## enable_sfvb_upsell_path
2084
+
2085
+ > <SfvbUpsellPath> enable_sfvb_upsell_path(storefront_oid, upsell_path_oid, opts)
2086
+
2087
+ Enable an upsell path
2088
+
2089
+ Switches the path on, so it starts running. The only way to switch one on - create, update and unarchive refuse to. An archived path is refused; unarchive it first. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved upsell.enable request for this path (see POST /sfvb/approvals). A path that is already on is returned unchanged, and no approval is used.
2090
+
2091
+
2092
+ ### Examples
2093
+
2094
+
2095
+ (No example for this operation).
2096
+
2097
+
2098
+ #### Using the enable_sfvb_upsell_path_with_http_info variant
2099
+
2100
+ This returns an Array which contains the response data, status code and headers.
2101
+
2102
+ > <Array(<SfvbUpsellPath>, Integer, Hash)> enable_sfvb_upsell_path_with_http_info(storefront_oid, upsell_path_oid, opts)
2103
+
2104
+ ```ruby
2105
+ begin
2106
+ # Enable an upsell path
2107
+ data, status_code, headers = api_instance.enable_sfvb_upsell_path_with_http_info(storefront_oid, upsell_path_oid, opts)
2108
+ p status_code # => 2xx
2109
+ p headers # => { ... }
2110
+ p data # => <SfvbUpsellPath>
2111
+ rescue UltracartClient::ApiError => e
2112
+ puts "Error when calling SfvbApi->enable_sfvb_upsell_path_with_http_info: #{e}"
2113
+ end
2114
+ ```
2115
+
2116
+ ### Parameters
2117
+
2118
+ | Name | Type | Description | Notes |
2119
+ | ---- | ---- | ----------- | ----- |
2120
+ | **storefront_oid** | **Integer** | | |
2121
+ | **upsell_path_oid** | **Integer** | | |
2122
+ | **approval_id** | **String** | The approval_id of an approved upsell.enable request for this path. Required when the path is off. See POST /sfvb/approvals. | [optional] |
2123
+
2124
+ ### Return type
2125
+
2126
+ [**SfvbUpsellPath**](SfvbUpsellPath.md)
2127
+
2128
+ ### Authorization
2129
+
2130
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
2131
+
2132
+ ### HTTP request headers
2133
+
2134
+ - **Content-Type**: Not defined
2135
+ - **Accept**: application/json
2136
+
2137
+
1855
2138
  ## end_sfvb_experiment
1856
2139
 
1857
2140
  > <SfvbExperiment> end_sfvb_experiment(storefront_oid, experiment_oid, opts)
1858
2141
 
1859
2142
  End an experiment
1860
2143
 
1861
- Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish.
2144
+ Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner, which always needs a fresh authenticator code (see POST /sfvb/approvals).
1862
2145
 
1863
2146
 
1864
2147
  ### Examples
@@ -1891,6 +2174,7 @@ end
1891
2174
  | ---- | ---- | ----------- | ----- |
1892
2175
  | **storefront_oid** | **Integer** | | |
1893
2176
  | **experiment_oid** | **Integer** | | |
2177
+ | **approval_id** | **String** | The approval_id of an approved experiment.end request for this experiment and winner. Required. See POST /sfvb/approvals. | [optional] |
1894
2178
  | **experiment_end_request** | [**SfvbExperimentEndRequest**](SfvbExperimentEndRequest.md) | The winner, if any | [optional] |
1895
2179
 
1896
2180
  ### Return type
@@ -2831,7 +3115,7 @@ end
2831
3115
 
2832
3116
  Read an item's storefront facing content
2833
3117
 
2834
- The attributes, images, title, description and search metadata a StoreFront element can render, reconciled against the templates behind the pages this item sits on. An attribute a template declares but nothing has set comes back present with an empty value, which is how you discover what the page is asking for. Pricing, shipping, inventory, tax, variants and kit structure are not here because no element reads them; use the item API for those. Address by merchant_item_id, the value data-context-item-id carries, or by merchant_item_oid.
3118
+ The attributes, images, title, description and search metadata a StoreFront element can render, reconciled against the templates behind the pages this item sits on. An attribute a template declares but nothing has set comes back present with an empty value, which is how you discover what the page is asking for. Pricing and related items have their own calls, items/pricing and items/related. Shipping, inventory, tax, variants and kit structure stay with the item API. Address by merchant_item_id, the value data-context-item-id carries, or by merchant_item_oid.
2835
3119
 
2836
3120
 
2837
3121
  ### Examples
@@ -2880,6 +3164,116 @@ end
2880
3164
  - **Accept**: application/json
2881
3165
 
2882
3166
 
3167
+ ## get_sfvb_item_pricing
3168
+
3169
+ > <SfvbItemPricing> get_sfvb_item_pricing(storefront_oid, opts)
3170
+
3171
+ Read what an item charges
3172
+
3173
+ Price, sale (with whether it applies now), MSRP and retail volume pricing - what itemprice, itemsale, itemmsrp, itemsavings and itemvolumediscounts render - with a hash_sha256 to send as If-Match when changing it. Wholesale pricing tiers are not shown. Address by merchant_item_id or merchant_item_oid.
3174
+
3175
+
3176
+ ### Examples
3177
+
3178
+
3179
+ (No example for this operation).
3180
+
3181
+
3182
+ #### Using the get_sfvb_item_pricing_with_http_info variant
3183
+
3184
+ This returns an Array which contains the response data, status code and headers.
3185
+
3186
+ > <Array(<SfvbItemPricing>, Integer, Hash)> get_sfvb_item_pricing_with_http_info(storefront_oid, opts)
3187
+
3188
+ ```ruby
3189
+ begin
3190
+ # Read what an item charges
3191
+ data, status_code, headers = api_instance.get_sfvb_item_pricing_with_http_info(storefront_oid, opts)
3192
+ p status_code # => 2xx
3193
+ p headers # => { ... }
3194
+ p data # => <SfvbItemPricing>
3195
+ rescue UltracartClient::ApiError => e
3196
+ puts "Error when calling SfvbApi->get_sfvb_item_pricing_with_http_info: #{e}"
3197
+ end
3198
+ ```
3199
+
3200
+ ### Parameters
3201
+
3202
+ | Name | Type | Description | Notes |
3203
+ | ---- | ---- | ----------- | ----- |
3204
+ | **storefront_oid** | **Integer** | | |
3205
+ | **merchant_item_id** | **String** | | [optional] |
3206
+ | **merchant_item_oid** | **Integer** | | [optional] |
3207
+
3208
+ ### Return type
3209
+
3210
+ [**SfvbItemPricing**](SfvbItemPricing.md)
3211
+
3212
+ ### Authorization
3213
+
3214
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
3215
+
3216
+ ### HTTP request headers
3217
+
3218
+ - **Content-Type**: Not defined
3219
+ - **Accept**: application/json
3220
+
3221
+
3222
+ ## get_sfvb_item_related
3223
+
3224
+ > <SfvbItemRelated> get_sfvb_item_related(storefront_oid, opts)
3225
+
3226
+ Read an item's related items
3227
+
3228
+ What itemrelateditemslist lists - the merchant's own related items (user, addon, complementary) and the ones UltraCart calculates (system), with a hash_sha256 to send as If-Match when changing them.
3229
+
3230
+
3231
+ ### Examples
3232
+
3233
+
3234
+ (No example for this operation).
3235
+
3236
+
3237
+ #### Using the get_sfvb_item_related_with_http_info variant
3238
+
3239
+ This returns an Array which contains the response data, status code and headers.
3240
+
3241
+ > <Array(<SfvbItemRelated>, Integer, Hash)> get_sfvb_item_related_with_http_info(storefront_oid, opts)
3242
+
3243
+ ```ruby
3244
+ begin
3245
+ # Read an item's related items
3246
+ data, status_code, headers = api_instance.get_sfvb_item_related_with_http_info(storefront_oid, opts)
3247
+ p status_code # => 2xx
3248
+ p headers # => { ... }
3249
+ p data # => <SfvbItemRelated>
3250
+ rescue UltracartClient::ApiError => e
3251
+ puts "Error when calling SfvbApi->get_sfvb_item_related_with_http_info: #{e}"
3252
+ end
3253
+ ```
3254
+
3255
+ ### Parameters
3256
+
3257
+ | Name | Type | Description | Notes |
3258
+ | ---- | ---- | ----------- | ----- |
3259
+ | **storefront_oid** | **Integer** | | |
3260
+ | **merchant_item_id** | **String** | | [optional] |
3261
+ | **merchant_item_oid** | **Integer** | | [optional] |
3262
+
3263
+ ### Return type
3264
+
3265
+ [**SfvbItemRelated**](SfvbItemRelated.md)
3266
+
3267
+ ### Authorization
3268
+
3269
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
3270
+
3271
+ ### HTTP request headers
3272
+
3273
+ - **Content-Type**: Not defined
3274
+ - **Accept**: application/json
3275
+
3276
+
2883
3277
  ## get_sfvb_library_entry
2884
3278
 
2885
3279
  > <SfvbLibraryEntry> get_sfvb_library_entry(storefront_oid, library_oid, opts)
@@ -4568,7 +4962,7 @@ end
4568
4962
 
4569
4963
  Request a human approval
4570
4964
 
4571
- Asks the person who signed in the CLI to approve one gated action on one exact target. Name the storefront with the storefront_oid query parameter. The target is checked the way the action will check it, so nobody is asked to approve a call that would fail. Show the person approval_url and user_code, poll GET approvals/{approval_id} every interval_seconds, and once it is approved repeat the gated call with the approval_id in the Approval-Id header. Asking again for the same thing returns the pending request (200) rather than a new one (201). A request lapses after 10 minutes. Requires a token that resolves to a user, so use the device authorization flow.
4965
+ Asks the person who signed in the CLI to approve one gated action on one exact target. Name the storefront with the storefront_oid query parameter. The target is checked the way the action will check it, so nobody is asked to approve a call that would fail. Show the person approval_url and user_code, poll GET approvals/{approval_id} every interval_seconds, and once it is approved repeat the gated call with the approval_id in the Approval-Id header. Asking again for the same thing returns the pending request (200) rather than a new one (201). A request lapses after 10 minutes. Requires a token that resolves to a user, so use the device authorization flow. For file.put_script send the script as content, or params.version for a revert. The request starts as reviewing while UltraCart's scanner and two AI models read it, then becomes pending with the review attached, or refused. Keep polling, and show approval_url only once it is pending. Only the hash is kept, so the write must send the same bytes.
4572
4966
 
4573
4967
 
4574
4968
  ### Examples
@@ -4784,7 +5178,7 @@ end
4784
5178
 
4785
5179
  Create an upsell offer
4786
5180
 
4787
- Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. Creating it switched on, or with upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
5181
+ Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. It must be created with active false, and switched on with the enable call, which needs approval. upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
4788
5182
 
4789
5183
 
4790
5184
  ### Examples
@@ -4838,7 +5232,7 @@ end
4838
5232
 
4839
5233
  Create an upsell path
4840
5234
 
4841
- Placed last in path order. Every offer a step names must be an offer of this storefront, and every item in the item logic must exist. Creating it switched on needs sfvb_publish; create it with active false to build it without that scope.
5235
+ Placed last in path order. Every offer a step names must be an offer of this storefront, and every item in the item logic must exist. It must be created with active false, and switched on with the enable call, which needs approval.
4842
5236
 
4843
5237
 
4844
5238
  ### Examples
@@ -6093,6 +6487,7 @@ end
6093
6487
  | **if_match** | **String** | Content hash from the last read. Required; 428 when absent, 412 when stale. | |
6094
6488
  | **file_write_request** | [**SfvbFileWriteRequest**](SfvbFileWriteRequest.md) | File content to write | |
6095
6489
  | **path** | **String** | | [optional] |
6490
+ | **approval_id** | **String** | For a .js or .mjs file, the approval_id of an approved file.put_script request for exactly these bytes. Required for scripts. See POST /sfvb/approvals. | [optional] |
6096
6491
 
6097
6492
  ### Return type
6098
6493
 
@@ -6388,6 +6783,121 @@ end
6388
6783
  - **Accept**: application/json
6389
6784
 
6390
6785
 
6786
+ ## put_sfvb_item_pricing
6787
+
6788
+ > <SfvbItemPricing> put_sfvb_item_pricing(storefront_oid, if_match, item_pricing_request, opts)
6789
+
6790
+ Change what an item charges
6791
+
6792
+ Partial - a field left out is untouched. A sale needs sale_cost, sale_start and sale_end together, the end after the start; clear_sale removes it. msrp must be more than 0 (0 only when the price is 0); clear_msrp removes it. volume_discounts replaces the retail quantity breaks. Shoppers pay the new price at once, so this needs sfvb_publish, If-Match with the pricing hash_sha256, and the approval of the person who signed in the CLI - an approved item.pricing request for this item and exactly this change. A change that sets every field to what it already is returns the pricing unchanged and uses no approval.
6793
+
6794
+
6795
+ ### Examples
6796
+
6797
+
6798
+ (No example for this operation).
6799
+
6800
+
6801
+ #### Using the put_sfvb_item_pricing_with_http_info variant
6802
+
6803
+ This returns an Array which contains the response data, status code and headers.
6804
+
6805
+ > <Array(<SfvbItemPricing>, Integer, Hash)> put_sfvb_item_pricing_with_http_info(storefront_oid, if_match, item_pricing_request, opts)
6806
+
6807
+ ```ruby
6808
+ begin
6809
+ # Change what an item charges
6810
+ data, status_code, headers = api_instance.put_sfvb_item_pricing_with_http_info(storefront_oid, if_match, item_pricing_request, opts)
6811
+ p status_code # => 2xx
6812
+ p headers # => { ... }
6813
+ p data # => <SfvbItemPricing>
6814
+ rescue UltracartClient::ApiError => e
6815
+ puts "Error when calling SfvbApi->put_sfvb_item_pricing_with_http_info: #{e}"
6816
+ end
6817
+ ```
6818
+
6819
+ ### Parameters
6820
+
6821
+ | Name | Type | Description | Notes |
6822
+ | ---- | ---- | ----------- | ----- |
6823
+ | **storefront_oid** | **Integer** | | |
6824
+ | **if_match** | **String** | hash_sha256 from the pricing read. Required; 428 when absent, 412 when stale. | |
6825
+ | **item_pricing_request** | [**SfvbItemPricingRequest**](SfvbItemPricingRequest.md) | The change | |
6826
+ | **merchant_item_id** | **String** | | [optional] |
6827
+ | **merchant_item_oid** | **Integer** | | [optional] |
6828
+ | **approval_id** | **String** | The approval_id of an approved item.pricing request for this item and change. Required. See POST /sfvb/approvals. | [optional] |
6829
+
6830
+ ### Return type
6831
+
6832
+ [**SfvbItemPricing**](SfvbItemPricing.md)
6833
+
6834
+ ### Authorization
6835
+
6836
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
6837
+
6838
+ ### HTTP request headers
6839
+
6840
+ - **Content-Type**: application/json; charset=UTF-8
6841
+ - **Accept**: application/json
6842
+
6843
+
6844
+ ## put_sfvb_item_related
6845
+
6846
+ > <SfvbItemRelated> put_sfvb_item_related(storefront_oid, if_match, item_related_request, opts)
6847
+
6848
+ Replace an item's related items
6849
+
6850
+ Replaces the merchant's own related items, in order, and keeps the ones UltraCart calculates. Each must be an item of this account and not the item itself, named once, up to 50. No link back is added to the other items. Needs sfvb_publish and If-Match with the related hash_sha256.
6851
+
6852
+
6853
+ ### Examples
6854
+
6855
+
6856
+ (No example for this operation).
6857
+
6858
+
6859
+ #### Using the put_sfvb_item_related_with_http_info variant
6860
+
6861
+ This returns an Array which contains the response data, status code and headers.
6862
+
6863
+ > <Array(<SfvbItemRelated>, Integer, Hash)> put_sfvb_item_related_with_http_info(storefront_oid, if_match, item_related_request, opts)
6864
+
6865
+ ```ruby
6866
+ begin
6867
+ # Replace an item's related items
6868
+ data, status_code, headers = api_instance.put_sfvb_item_related_with_http_info(storefront_oid, if_match, item_related_request, opts)
6869
+ p status_code # => 2xx
6870
+ p headers # => { ... }
6871
+ p data # => <SfvbItemRelated>
6872
+ rescue UltracartClient::ApiError => e
6873
+ puts "Error when calling SfvbApi->put_sfvb_item_related_with_http_info: #{e}"
6874
+ end
6875
+ ```
6876
+
6877
+ ### Parameters
6878
+
6879
+ | Name | Type | Description | Notes |
6880
+ | ---- | ---- | ----------- | ----- |
6881
+ | **storefront_oid** | **Integer** | | |
6882
+ | **if_match** | **String** | hash_sha256 from the related read. Required; 428 when absent, 412 when stale. | |
6883
+ | **item_related_request** | [**SfvbItemRelatedRequest**](SfvbItemRelatedRequest.md) | The related items | |
6884
+ | **merchant_item_id** | **String** | | [optional] |
6885
+ | **merchant_item_oid** | **Integer** | | [optional] |
6886
+
6887
+ ### Return type
6888
+
6889
+ [**SfvbItemRelated**](SfvbItemRelated.md)
6890
+
6891
+ ### Authorization
6892
+
6893
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
6894
+
6895
+ ### HTTP request headers
6896
+
6897
+ - **Content-Type**: application/json; charset=UTF-8
6898
+ - **Accept**: application/json
6899
+
6900
+
6391
6901
  ## put_sfvb_item_seo
6392
6902
 
6393
6903
  > <SfvbItemResponse> put_sfvb_item_seo(storefront_oid, item_seo_request, opts)
@@ -7437,7 +7947,7 @@ end
7437
7947
 
7438
7948
  ## revert_sfvb_file
7439
7949
 
7440
- > <SfvbFileWriteResponse> revert_sfvb_file(storefront_oid, if_match, file_revert_request)
7950
+ > <SfvbFileWriteResponse> revert_sfvb_file(storefront_oid, if_match, file_revert_request, opts)
7441
7951
 
7442
7952
  Revert a storefront file to an earlier version
7443
7953
 
@@ -7454,12 +7964,12 @@ The revert lands as a new version, so it is itself undoable.
7454
7964
 
7455
7965
  This returns an Array which contains the response data, status code and headers.
7456
7966
 
7457
- > <Array(<SfvbFileWriteResponse>, Integer, Hash)> revert_sfvb_file_with_http_info(storefront_oid, if_match, file_revert_request)
7967
+ > <Array(<SfvbFileWriteResponse>, Integer, Hash)> revert_sfvb_file_with_http_info(storefront_oid, if_match, file_revert_request, opts)
7458
7968
 
7459
7969
  ```ruby
7460
7970
  begin
7461
7971
  # Revert a storefront file to an earlier version
7462
- data, status_code, headers = api_instance.revert_sfvb_file_with_http_info(storefront_oid, if_match, file_revert_request)
7972
+ data, status_code, headers = api_instance.revert_sfvb_file_with_http_info(storefront_oid, if_match, file_revert_request, opts)
7463
7973
  p status_code # => 2xx
7464
7974
  p headers # => { ... }
7465
7975
  p data # => <SfvbFileWriteResponse>
@@ -7475,6 +7985,7 @@ end
7475
7985
  | **storefront_oid** | **Integer** | | |
7476
7986
  | **if_match** | **String** | Content hash of the file being reverted. Required; 428 when absent, 412 when stale. | |
7477
7987
  | **file_revert_request** | [**SfvbFileRevertRequest**](SfvbFileRevertRequest.md) | Version to revert the file to | |
7988
+ | **approval_id** | **String** | For a .js or .mjs file, the approval_id of an approved file.put_script request naming this version. Required for scripts. See POST /sfvb/approvals. | [optional] |
7478
7989
 
7479
7990
  ### Return type
7480
7991
 
@@ -7714,11 +8225,11 @@ end
7714
8225
 
7715
8226
  ## start_sfvb_experiment
7716
8227
 
7717
- > <SfvbExperiment> start_sfvb_experiment(storefront_oid, experiment_start_request)
8228
+ > <SfvbExperiment> start_sfvb_experiment(storefront_oid, experiment_start_request, opts)
7718
8229
 
7719
8230
  Start an experiment
7720
8231
 
7721
- type page starts an experiment element already saved in a page body - send path, slot and widget_id, and its name, objective, duration and variations are read from the element with the builder's rules (2 to 5 variations numbered 0 up with no gaps, 3 to 90 days, traffic on all or none adding up to 100). The new id is written into the element and the body is saved, so pull it again before the next edit. type url splits visitors between existing pages at router_url, and always ends by itself after duration_days. Always needs sfvb_publish, because visitors are split as soon as it starts.
8232
+ type page starts an experiment element already saved in a page body - send path, slot and widget_id, and its name, objective, duration and variations are read from the element with the builder's rules (2 to 5 variations numbered 0 up with no gaps, 3 to 90 days, traffic on all or none adding up to 100). The new id is written into the element and the body is saved, so pull it again before the next edit. type url splits visitors between existing pages at router_url, and always ends by itself after duration_days. Always needs sfvb_publish, because visitors are split as soon as it starts, and the approval of the person who signed in the CLI - an approved experiment.start request for exactly this start (see POST /sfvb/approvals).
7722
8233
 
7723
8234
 
7724
8235
  ### Examples
@@ -7731,12 +8242,12 @@ type page starts an experiment element already saved in a page body - send path,
7731
8242
 
7732
8243
  This returns an Array which contains the response data, status code and headers.
7733
8244
 
7734
- > <Array(<SfvbExperiment>, Integer, Hash)> start_sfvb_experiment_with_http_info(storefront_oid, experiment_start_request)
8245
+ > <Array(<SfvbExperiment>, Integer, Hash)> start_sfvb_experiment_with_http_info(storefront_oid, experiment_start_request, opts)
7735
8246
 
7736
8247
  ```ruby
7737
8248
  begin
7738
8249
  # Start an experiment
7739
- data, status_code, headers = api_instance.start_sfvb_experiment_with_http_info(storefront_oid, experiment_start_request)
8250
+ data, status_code, headers = api_instance.start_sfvb_experiment_with_http_info(storefront_oid, experiment_start_request, opts)
7740
8251
  p status_code # => 2xx
7741
8252
  p headers # => { ... }
7742
8253
  p data # => <SfvbExperiment>
@@ -7751,6 +8262,7 @@ end
7751
8262
  | ---- | ---- | ----------- | ----- |
7752
8263
  | **storefront_oid** | **Integer** | | |
7753
8264
  | **experiment_start_request** | [**SfvbExperimentStartRequest**](SfvbExperimentStartRequest.md) | The experiment to start | |
8265
+ | **approval_id** | **String** | The approval_id of an approved experiment.start request for exactly this start. Required. See POST /sfvb/approvals. | [optional] |
7754
8266
 
7755
8267
  ### Return type
7756
8268
 
@@ -7772,7 +8284,7 @@ end
7772
8284
 
7773
8285
  Unarchive an upsell path
7774
8286
 
7775
- Brings the path back into the default list. Unarchiving one that is switched on starts it, so that needs sfvb_publish.
8287
+ Brings the path back into the default list. A path that is switched on is refused, because unarchiving it would start it without approval - disable it, unarchive it, then enable it.
7776
8288
 
7777
8289
 
7778
8290
  ### Examples
@@ -8093,6 +8605,61 @@ end
8093
8605
  - **Accept**: application/json
8094
8606
 
8095
8607
 
8608
+ ## update_sfvb_item_attribute_batch
8609
+
8610
+ > <SfvbItemAttributeBatchResponse> update_sfvb_item_attribute_batch(storefront_oid, item_attribute_batch_request, opts)
8611
+
8612
+ Change attributes across many items in one call
8613
+
8614
+ Applies exactly the change rows of a dry run, given its plan_hash, each with its merchant_item_oid and current_sha256. Each item is saved once with all of its rows; a row whose value changed since the dry run is skipped as stale and never overwritten, and an item that cannot be saved does not stop the others. Only the named attributes change. Needs sfvb_publish and the approval of the person who signed in the CLI, an approved item.attribute_batch request for exactly these rows in the Approval-Id header.
8615
+
8616
+
8617
+ ### Examples
8618
+
8619
+
8620
+ (No example for this operation).
8621
+
8622
+
8623
+ #### Using the update_sfvb_item_attribute_batch_with_http_info variant
8624
+
8625
+ This returns an Array which contains the response data, status code and headers.
8626
+
8627
+ > <Array(<SfvbItemAttributeBatchResponse>, Integer, Hash)> update_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request, opts)
8628
+
8629
+ ```ruby
8630
+ begin
8631
+ # Change attributes across many items in one call
8632
+ data, status_code, headers = api_instance.update_sfvb_item_attribute_batch_with_http_info(storefront_oid, item_attribute_batch_request, opts)
8633
+ p status_code # => 2xx
8634
+ p headers # => { ... }
8635
+ p data # => <SfvbItemAttributeBatchResponse>
8636
+ rescue UltracartClient::ApiError => e
8637
+ puts "Error when calling SfvbApi->update_sfvb_item_attribute_batch_with_http_info: #{e}"
8638
+ end
8639
+ ```
8640
+
8641
+ ### Parameters
8642
+
8643
+ | Name | Type | Description | Notes |
8644
+ | ---- | ---- | ----------- | ----- |
8645
+ | **storefront_oid** | **Integer** | | |
8646
+ | **item_attribute_batch_request** | [**SfvbItemAttributeBatchRequest**](SfvbItemAttributeBatchRequest.md) | The dry run&#39;s change rows and plan_hash | |
8647
+ | **approval_id** | **String** | The approval_id of an approved item.attribute_batch request for exactly these rows. Required. See POST /sfvb/approvals. | [optional] |
8648
+
8649
+ ### Return type
8650
+
8651
+ [**SfvbItemAttributeBatchResponse**](SfvbItemAttributeBatchResponse.md)
8652
+
8653
+ ### Authorization
8654
+
8655
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
8656
+
8657
+ ### HTTP request headers
8658
+
8659
+ - **Content-Type**: application/json; charset=UTF-8
8660
+ - **Accept**: application/json
8661
+
8662
+
8096
8663
  ## update_sfvb_library_entry
8097
8664
 
8098
8665
  > <SfvbLibraryEntry> update_sfvb_library_entry(storefront_oid, library_oid, if_match, library_entry)
@@ -8211,7 +8778,7 @@ end
8211
8778
 
8212
8779
  Update an upsell offer
8213
8780
 
8214
- A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, switching one on, or changing upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Settings the API does not show, such as the offer's screenshots, are kept.
8781
+ A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, or changing upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. An update cannot switch an offer on; that is the enable call, which needs approval. Settings the API does not show, such as the offer's screenshots, are kept.
8215
8782
 
8216
8783
 
8217
8784
  ### Examples
@@ -8267,7 +8834,7 @@ end
8267
8834
 
8268
8835
  Update an upsell path
8269
8836
 
8270
- A full replace. Send back the whole path you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Order and archived keep their stored values; change them with the move, archive and unarchive calls. Changing a running path, or switching one on, needs sfvb_publish.
8837
+ A full replace. Send back the whole path you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Order and archived keep their stored values; change them with the move, archive and unarchive calls. Changing a running path needs sfvb_publish. An update cannot switch a path on; that is the enable call, which needs approval.
8271
8838
 
8272
8839
 
8273
8840
  ### Examples