# Update a single product with Json Merge Patch functionality PATCH https://api.shipbob.com/2025-07/product/{productId} Content-Type: application/json Updates a single product. This endpoint supports Json Merge Patch functionality, which allows partial updates to be made to the product. The endpoint will only update the fields that are provided in the request. For updating variants, you mnust include the ID of the variant that you would like to update. Reference: https://developer.shipbob.com/2025-07/api/products/update-a-single-product-with-json-merge-patch-functionality ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: | Update a single product with Json Merge Patch functionality version: endpoint_products.updateASingleProductWithJsonMergePatchFunctionality paths: /2025-07/product/{productId}: patch: operationId: update-a-single-product-with-json-merge-patch-functionality summary: | Update a single product with Json Merge Patch functionality description: > Updates a single product. This endpoint supports Json Merge Patch functionality, which allows partial updates to be made to the product. The endpoint will only update the fields that are provided in the request. For updating variants, you mnust include the ID of the variant that you would like to update. tags: - - subpackage_products parameters: - name: productId in: path description: | The product identifier required: true schema: type: string format: int64 - name: Authorization in: header description: Authentication using Personal Access Token (PAT) token required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Products.ProductViewModelV5' requestBody: content: application/json: schema: $ref: '#/components/schemas/Products.UpdateProductRequestModelV5' components: schemas: Products.AdditionalHazmatAttributesRequestModel: type: object properties: charge_state_percentage: type: - number - 'null' format: double container_metal: type: - boolean - 'null' container_type: type: - string - 'null' lithium_battery_packaging: type: - string - 'null' lithium_battery_type: type: - string - 'null' magnet: type: - boolean - 'null' net_volume: type: - number - 'null' format: double net_weight: type: - number - 'null' format: double Products.BundleDefinitionRequestModel: type: object properties: quantity: type: integer variant_id: type: integer format: int64 Products.AmazonChannelMetadataRequestModel: type: object properties: channel_id: type: - integer - 'null' currency: type: - string - 'null' id: type: - integer - 'null' format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' asin: type: - string - 'null' fnsku: type: - string - 'null' fulfillment_channel: type: - string - 'null' Products.BaseChannelMetadataRequestModel: type: object properties: channel_id: type: - integer - 'null' currency: type: - string - 'null' id: type: - integer - 'null' format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' Products.BigCommerceChannelMetadataRequestModel: type: object properties: channel_id: type: - integer - 'null' currency: type: - string - 'null' id: type: - integer - 'null' format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' platform_product_id: type: - integer - 'null' format: int64 platform_variant_id: type: - integer - 'null' format: int64 Products.ShopifyChannelMetadataRequestModel: type: object properties: channel_id: type: - integer - 'null' currency: type: - string - 'null' id: type: - integer - 'null' format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' ProductsBaseProductVariantRequestModelChannelMetadataItems: oneOf: - $ref: '#/components/schemas/Products.AmazonChannelMetadataRequestModel' - $ref: '#/components/schemas/Products.BaseChannelMetadataRequestModel' - $ref: '#/components/schemas/Products.BigCommerceChannelMetadataRequestModel' - $ref: '#/components/schemas/Products.ShopifyChannelMetadataRequestModel' Products.CustomsRequestModel: type: object properties: country_code_of_origin: type: - string - 'null' description: type: - string - 'null' hs_tariff_code: type: - string - 'null' is321_eligible: type: boolean value: type: - integer - 'null' Products.DimensionRequestModel: type: object properties: height: type: number format: double length: type: number format: double width: type: number format: double Products.SerialScanRequestModel: type: object properties: exact_character_length: type: - integer - 'null' is_enabled: type: boolean prefix: type: - string - 'null' suffix: type: - string - 'null' Products.FulfillmentSettingsRequestModel: type: object properties: dangerous_goods: type: boolean is_bpm_parcel: type: boolean is_case_pick: type: boolean msds_url: type: - string - 'null' requires_prop65: type: boolean serial_scan: $ref: '#/components/schemas/Products.SerialScanRequestModel' Products.LotInformationRequestModel: type: object properties: is_lot: type: boolean minimum_shelf_life_days: type: - integer - 'null' Products.ReturnPreferencesRequestModel: type: object properties: backup_action_id: type: - integer - 'null' instructions: type: - string - 'null' primary_action_id: type: integer return_to_sender_backup_action_id: type: - integer - 'null' return_to_sender_primary_action_id: type: - integer - 'null' Products.BarcodeRequestModel: type: object properties: sticker_url: type: - string - 'null' value: type: - string - 'null' Products.UpdateProductVariantRequestModelV5: type: object properties: additional_hazmat_attributes: $ref: '#/components/schemas/Products.AdditionalHazmatAttributesRequestModel' bundle_definition: type: - array - 'null' items: $ref: '#/components/schemas/Products.BundleDefinitionRequestModel' channel_metadata: type: - array - 'null' items: $ref: >- #/components/schemas/ProductsBaseProductVariantRequestModelChannelMetadataItems customs: $ref: '#/components/schemas/Products.CustomsRequestModel' dimension: $ref: '#/components/schemas/Products.DimensionRequestModel' fulfillment_settings: $ref: '#/components/schemas/Products.FulfillmentSettingsRequestModel' gtin: type: - string - 'null' is_digital: type: boolean lot_information: $ref: '#/components/schemas/Products.LotInformationRequestModel' name: type: - string - 'null' packaging_material_type_id: type: - integer - 'null' packaging_requirement_id: type: - integer - 'null' return_preferences: $ref: '#/components/schemas/Products.ReturnPreferencesRequestModel' sku: type: - string - 'null' status_id: type: integer upc: type: - string - 'null' weight: type: number format: double barcodes: type: - array - 'null' items: $ref: '#/components/schemas/Products.BarcodeRequestModel' id: type: integer format: int64 Products.UpdateProductRequestModelV5: type: object properties: name: type: - string - 'null' taxonomy_id: type: - integer - 'null' type_id: type: integer id: type: integer format: int64 description: Unique reference ID for the product variants: type: - array - 'null' items: $ref: '#/components/schemas/Products.UpdateProductVariantRequestModelV5' Products.TaxonomyInformationViewModel: type: object properties: id: type: - integer - 'null' name: type: - string - 'null' parent_id: type: - integer - 'null' parent_name: type: - string - 'null' path: type: - string - 'null' Products.AdditionalHazmatAttributesViewModel: type: object properties: charge_state_percentage: type: - number - 'null' format: double container_metal: type: - boolean - 'null' container_type: type: - string - 'null' lithium_battery_packaging: type: - string - 'null' lithium_battery_type: type: - string - 'null' magnet: type: - boolean - 'null' net_volume: type: - number - 'null' format: double net_weight: type: - number - 'null' format: double Products.AssociatedBundlesViewModel: type: object properties: product_id: type: integer format: int64 product_name: type: - string - 'null' quantity: type: integer variant_id: type: integer format: int64 variant_sku: type: - string - 'null' Products.BundleDefinitionViewModel: type: object properties: product_id: type: integer format: int64 quantity: type: integer variant_id: type: integer format: int64 variant_name: type: - string - 'null' variant_sku: type: - string - 'null' Products.CustomsViewModel: type: object properties: country_code_of_origin: type: - string - 'null' currency: type: - string - 'null' description: type: - string - 'null' hs_tariff_code: type: - string - 'null' is321_eligible: type: boolean value: type: - integer - 'null' Products.DimensionViewModel: type: object properties: height: type: number format: double is_locked: type: boolean length: type: number format: double source: type: - string - 'null' unit: type: - string - 'null' width: type: number format: double Products.SerialScanViewModel: type: object properties: exact_character_length: type: - integer - 'null' is_enabled: type: boolean prefix: type: - string - 'null' suffix: type: - string - 'null' Products.FulfillmentSettingsViewModel: type: object properties: dangerous_goods: type: boolean is_bpm_parcel: type: boolean is_case_pick: type: boolean msds_url: type: - string - 'null' requires_prop65: type: boolean serial_scan: $ref: '#/components/schemas/Products.SerialScanViewModel' Products.InventoryViewModel: type: object properties: inventory_id: type: - integer - 'null' on_hand_qty: type: integer Products.LotInformationViewModel: type: object properties: is_lot: type: boolean minimum_shelf_life_days: type: - integer - 'null' Products.MergedChildrenViewModel: type: object properties: channel_ids: type: - array - 'null' items: type: integer format: int64 completed_at: type: string format: date-time inventory_id: type: - integer - 'null' format: int64 variant_id: type: integer format: int64 variant_name: type: - string - 'null' Products.EnumViewModel: type: object properties: id: type: integer format: int64 name: type: - string - 'null' Products.ReturnPreferencesViewModel: type: object properties: backup_action: $ref: '#/components/schemas/Products.EnumViewModel' instructions: type: - string - 'null' primary_action: $ref: '#/components/schemas/Products.EnumViewModel' return_to_sender_backup_action: $ref: '#/components/schemas/Products.EnumViewModel' return_to_sender_primary_action: $ref: '#/components/schemas/Products.EnumViewModel' Products.WeightViewModel: type: object properties: unit: type: - string - 'null' weight: type: number format: double Products.BarcodeViewModel: type: object properties: sticker_url: type: - string - 'null' value: type: - string - 'null' Products.ChannelMetadataViewModel: type: object properties: channel_id: type: integer format: int64 channel_name: type: - string - 'null' currency: type: - string - 'null' id: type: integer format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' Products.AmazonChannelMetadataViewModel: type: object properties: channel_id: type: integer format: int64 channel_name: type: - string - 'null' currency: type: - string - 'null' id: type: integer format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' asin: type: - string - 'null' fnsku: type: - string - 'null' fulfillment_channel: type: - string - 'null' Products.BigCommerceChannelMetadataViewModel: type: object properties: channel_id: type: integer format: int64 channel_name: type: - string - 'null' currency: type: - string - 'null' id: type: integer format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' platform_product_id: type: - integer - 'null' format: int64 platform_variant_id: type: - integer - 'null' format: int64 Products.ShopifyChannelMetadataViewModel: type: object properties: channel_id: type: integer format: int64 channel_name: type: - string - 'null' currency: type: - string - 'null' id: type: integer format: int64 is_inventory_sync_enabled: type: boolean legacy_product_id: type: - integer - 'null' format: int64 platform: type: - string - 'null' platform_identifier: type: - string - 'null' platform_inventory_item_id: type: - string - 'null' price: type: number format: double seller_sku: type: - string - 'null' ProductsVariantViewModelV5ChannelMetadataItems: oneOf: - $ref: '#/components/schemas/Products.ChannelMetadataViewModel' - $ref: '#/components/schemas/Products.AmazonChannelMetadataViewModel' - $ref: '#/components/schemas/Products.BigCommerceChannelMetadataViewModel' - $ref: '#/components/schemas/Products.ShopifyChannelMetadataViewModel' Products.VariantViewModelV5: type: object properties: additional_hazmat_attributes: $ref: '#/components/schemas/Products.AdditionalHazmatAttributesViewModel' associated_bundles: type: - array - 'null' items: $ref: '#/components/schemas/Products.AssociatedBundlesViewModel' bundle_definition: type: - array - 'null' items: $ref: '#/components/schemas/Products.BundleDefinitionViewModel' created_on: type: string format: date-time customs: $ref: '#/components/schemas/Products.CustomsViewModel' dimension: $ref: '#/components/schemas/Products.DimensionViewModel' fulfillment_settings: $ref: '#/components/schemas/Products.FulfillmentSettingsViewModel' gtin: type: - string - 'null' id: type: integer format: int64 inventory: $ref: '#/components/schemas/Products.InventoryViewModel' is_digital: type: boolean is_image_uploaded: type: boolean lot_information: $ref: '#/components/schemas/Products.LotInformationViewModel' merge_children: type: - array - 'null' items: $ref: '#/components/schemas/Products.MergedChildrenViewModel' name: type: - string - 'null' packaging_material_type: $ref: '#/components/schemas/Products.EnumViewModel' packaging_requirement: $ref: '#/components/schemas/Products.EnumViewModel' return_preferences: $ref: '#/components/schemas/Products.ReturnPreferencesViewModel' reviews_pending: type: - array - 'null' items: type: string sku: type: - string - 'null' status: type: - string - 'null' upc: type: - string - 'null' updated_on: type: - string - 'null' format: date-time weight: $ref: '#/components/schemas/Products.WeightViewModel' barcodes: type: - array - 'null' items: $ref: '#/components/schemas/Products.BarcodeViewModel' channel_metadata: type: - array - 'null' items: $ref: >- #/components/schemas/ProductsVariantViewModelV5ChannelMetadataItems Products.ComplianceViewModel: type: object properties: category: type: - array - 'null' items: type: string reasons: type: - array - 'null' items: type: string status: type: - string - 'null' Products.VariantInternalViewModelV5: type: object properties: additional_hazmat_attributes: $ref: '#/components/schemas/Products.AdditionalHazmatAttributesViewModel' associated_bundles: type: - array - 'null' items: $ref: '#/components/schemas/Products.AssociatedBundlesViewModel' bundle_definition: type: - array - 'null' items: $ref: '#/components/schemas/Products.BundleDefinitionViewModel' created_on: type: string format: date-time customs: $ref: '#/components/schemas/Products.CustomsViewModel' dimension: $ref: '#/components/schemas/Products.DimensionViewModel' fulfillment_settings: $ref: '#/components/schemas/Products.FulfillmentSettingsViewModel' gtin: type: - string - 'null' id: type: integer format: int64 inventory: $ref: '#/components/schemas/Products.InventoryViewModel' is_digital: type: boolean is_image_uploaded: type: boolean lot_information: $ref: '#/components/schemas/Products.LotInformationViewModel' merge_children: type: - array - 'null' items: $ref: '#/components/schemas/Products.MergedChildrenViewModel' name: type: - string - 'null' packaging_material_type: $ref: '#/components/schemas/Products.EnumViewModel' packaging_requirement: $ref: '#/components/schemas/Products.EnumViewModel' return_preferences: $ref: '#/components/schemas/Products.ReturnPreferencesViewModel' reviews_pending: type: - array - 'null' items: type: string sku: type: - string - 'null' status: type: - string - 'null' upc: type: - string - 'null' updated_on: type: - string - 'null' format: date-time weight: $ref: '#/components/schemas/Products.WeightViewModel' barcodes: type: - array - 'null' items: $ref: '#/components/schemas/Products.BarcodeViewModel' channel_metadata: type: - array - 'null' items: $ref: >- #/components/schemas/ProductsVariantViewModelV5ChannelMetadataItems compliance: $ref: '#/components/schemas/Products.ComplianceViewModel' ProductsProductViewModelV5VariantsItems: oneOf: - $ref: '#/components/schemas/Products.VariantViewModelV5' - $ref: '#/components/schemas/Products.VariantInternalViewModelV5' Products.ProductViewModelV5: type: object properties: created_on: type: string format: date-time id: type: integer format: int64 name: type: - string - 'null' taxonomy: $ref: '#/components/schemas/Products.TaxonomyInformationViewModel' type: type: - string - 'null' updated_on: type: - string - 'null' format: date-time user_id: type: integer format: int64 variants: type: - array - 'null' items: $ref: '#/components/schemas/ProductsProductViewModelV5VariantsItems' ``` ## SDK Code Examples ```python Products_updateASingleProductWithJsonMergePatchFunctionality_example import requests url = "https://api.shipbob.com/2025-07/product/productId" payload = { "id": 0, "name": "string", "taxonomy_id": 0, "type_id": 0, "variants": [ { "additional_hazmat_attributes": { "charge_state_percentage": 0.1, "container_type": "string", "lithium_battery_packaging": "string", "lithium_battery_type": "string", "magnet": True, "net_volume": 0.1, "net_weight": 0.1, "container_metal": True }, "barcodes": [ { "sticker_url": "string", "value": "string" } ], "bundle_definition": [ { "quantity": 0, "variant_id": 0 } ], "channel_metadata": [ { "asin": "string", "fnsku": "string", "fulfillment_channel": "string", "channel_id": 0, "currency": "string", "id": 0, "is_inventory_sync_enabled": True, "legacy_product_id": 0, "platform": "string", "platform_identifier": "string", "platform_inventory_item_id": "string", "price": 0.1, "seller_sku": "string" } ], "customs": { "country_code_of_origin": "string", "description": "string", "hs_tariff_code": "string", "is321_eligible": True, "value": 0 }, "dimension": { "height": 0.1, "length": 0.1, "width": 0.1 }, "fulfillment_settings": { "dangerous_goods": True, "is_bpm_parcel": True, "is_case_pick": True, "msds_url": "string", "requires_prop65": True, "serial_scan": { "exact_character_length": 0, "is_enabled": True, "prefix": "string", "suffix": "string" } }, "gtin": "string", "id": 0, "is_digital": True, "lot_information": { "is_lot": True, "minimum_shelf_life_days": 0 }, "name": "string", "packaging_material_type_id": 0, "packaging_requirement_id": 0, "return_preferences": { "backup_action_id": 0, "instructions": "string", "primary_action_id": 0, "return_to_sender_backup_action_id": 0, "return_to_sender_primary_action_id": 0 }, "sku": "string", "status_id": 0, "upc": "string", "weight": 0.1 } ] } headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.patch(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Products_updateASingleProductWithJsonMergePatchFunctionality_example const url = 'https://api.shipbob.com/2025-07/product/productId'; const options = { method: 'PATCH', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{"id":0,"name":"string","taxonomy_id":0,"type_id":0,"variants":[{"additional_hazmat_attributes":{"charge_state_percentage":0.1,"container_type":"string","lithium_battery_packaging":"string","lithium_battery_type":"string","magnet":true,"net_volume":0.1,"net_weight":0.1,"container_metal":true},"barcodes":[{"sticker_url":"string","value":"string"}],"bundle_definition":[{"quantity":0,"variant_id":0}],"channel_metadata":[{"asin":"string","fnsku":"string","fulfillment_channel":"string","channel_id":0,"currency":"string","id":0,"is_inventory_sync_enabled":true,"legacy_product_id":0,"platform":"string","platform_identifier":"string","platform_inventory_item_id":"string","price":0.1,"seller_sku":"string"}],"customs":{"country_code_of_origin":"string","description":"string","hs_tariff_code":"string","is321_eligible":true,"value":0},"dimension":{"height":0.1,"length":0.1,"width":0.1},"fulfillment_settings":{"dangerous_goods":true,"is_bpm_parcel":true,"is_case_pick":true,"msds_url":"string","requires_prop65":true,"serial_scan":{"exact_character_length":0,"is_enabled":true,"prefix":"string","suffix":"string"}},"gtin":"string","id":0,"is_digital":true,"lot_information":{"is_lot":true,"minimum_shelf_life_days":0},"name":"string","packaging_material_type_id":0,"packaging_requirement_id":0,"return_preferences":{"backup_action_id":0,"instructions":"string","primary_action_id":0,"return_to_sender_backup_action_id":0,"return_to_sender_primary_action_id":0},"sku":"string","status_id":0,"upc":"string","weight":0.1}]}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Products_updateASingleProductWithJsonMergePatchFunctionality_example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.shipbob.com/2025-07/product/productId" payload := strings.NewReader("{\n \"id\": 0,\n \"name\": \"string\",\n \"taxonomy_id\": 0,\n \"type_id\": 0,\n \"variants\": [\n {\n \"additional_hazmat_attributes\": {\n \"charge_state_percentage\": 0.1,\n \"container_type\": \"string\",\n \"lithium_battery_packaging\": \"string\",\n \"lithium_battery_type\": \"string\",\n \"magnet\": true,\n \"net_volume\": 0.1,\n \"net_weight\": 0.1,\n \"container_metal\": true\n },\n \"barcodes\": [\n {\n \"sticker_url\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"bundle_definition\": [\n {\n \"quantity\": 0,\n \"variant_id\": 0\n }\n ],\n \"channel_metadata\": [\n {\n \"asin\": \"string\",\n \"fnsku\": \"string\",\n \"fulfillment_channel\": \"string\",\n \"channel_id\": 0,\n \"currency\": \"string\",\n \"id\": 0,\n \"is_inventory_sync_enabled\": true,\n \"legacy_product_id\": 0,\n \"platform\": \"string\",\n \"platform_identifier\": \"string\",\n \"platform_inventory_item_id\": \"string\",\n \"price\": 0.1,\n \"seller_sku\": \"string\"\n }\n ],\n \"customs\": {\n \"country_code_of_origin\": \"string\",\n \"description\": \"string\",\n \"hs_tariff_code\": \"string\",\n \"is321_eligible\": true,\n \"value\": 0\n },\n \"dimension\": {\n \"height\": 0.1,\n \"length\": 0.1,\n \"width\": 0.1\n },\n \"fulfillment_settings\": {\n \"dangerous_goods\": true,\n \"is_bpm_parcel\": true,\n \"is_case_pick\": true,\n \"msds_url\": \"string\",\n \"requires_prop65\": true,\n \"serial_scan\": {\n \"exact_character_length\": 0,\n \"is_enabled\": true,\n \"prefix\": \"string\",\n \"suffix\": \"string\"\n }\n },\n \"gtin\": \"string\",\n \"id\": 0,\n \"is_digital\": true,\n \"lot_information\": {\n \"is_lot\": true,\n \"minimum_shelf_life_days\": 0\n },\n \"name\": \"string\",\n \"packaging_material_type_id\": 0,\n \"packaging_requirement_id\": 0,\n \"return_preferences\": {\n \"backup_action_id\": 0,\n \"instructions\": \"string\",\n \"primary_action_id\": 0,\n \"return_to_sender_backup_action_id\": 0,\n \"return_to_sender_primary_action_id\": 0\n },\n \"sku\": \"string\",\n \"status_id\": 0,\n \"upc\": \"string\",\n \"weight\": 0.1\n }\n ]\n}") req, _ := http.NewRequest("PATCH", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Products_updateASingleProductWithJsonMergePatchFunctionality_example require 'uri' require 'net/http' url = URI("https://api.shipbob.com/2025-07/product/productId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Patch.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"id\": 0,\n \"name\": \"string\",\n \"taxonomy_id\": 0,\n \"type_id\": 0,\n \"variants\": [\n {\n \"additional_hazmat_attributes\": {\n \"charge_state_percentage\": 0.1,\n \"container_type\": \"string\",\n \"lithium_battery_packaging\": \"string\",\n \"lithium_battery_type\": \"string\",\n \"magnet\": true,\n \"net_volume\": 0.1,\n \"net_weight\": 0.1,\n \"container_metal\": true\n },\n \"barcodes\": [\n {\n \"sticker_url\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"bundle_definition\": [\n {\n \"quantity\": 0,\n \"variant_id\": 0\n }\n ],\n \"channel_metadata\": [\n {\n \"asin\": \"string\",\n \"fnsku\": \"string\",\n \"fulfillment_channel\": \"string\",\n \"channel_id\": 0,\n \"currency\": \"string\",\n \"id\": 0,\n \"is_inventory_sync_enabled\": true,\n \"legacy_product_id\": 0,\n \"platform\": \"string\",\n \"platform_identifier\": \"string\",\n \"platform_inventory_item_id\": \"string\",\n \"price\": 0.1,\n \"seller_sku\": \"string\"\n }\n ],\n \"customs\": {\n \"country_code_of_origin\": \"string\",\n \"description\": \"string\",\n \"hs_tariff_code\": \"string\",\n \"is321_eligible\": true,\n \"value\": 0\n },\n \"dimension\": {\n \"height\": 0.1,\n \"length\": 0.1,\n \"width\": 0.1\n },\n \"fulfillment_settings\": {\n \"dangerous_goods\": true,\n \"is_bpm_parcel\": true,\n \"is_case_pick\": true,\n \"msds_url\": \"string\",\n \"requires_prop65\": true,\n \"serial_scan\": {\n \"exact_character_length\": 0,\n \"is_enabled\": true,\n \"prefix\": \"string\",\n \"suffix\": \"string\"\n }\n },\n \"gtin\": \"string\",\n \"id\": 0,\n \"is_digital\": true,\n \"lot_information\": {\n \"is_lot\": true,\n \"minimum_shelf_life_days\": 0\n },\n \"name\": \"string\",\n \"packaging_material_type_id\": 0,\n \"packaging_requirement_id\": 0,\n \"return_preferences\": {\n \"backup_action_id\": 0,\n \"instructions\": \"string\",\n \"primary_action_id\": 0,\n \"return_to_sender_backup_action_id\": 0,\n \"return_to_sender_primary_action_id\": 0\n },\n \"sku\": \"string\",\n \"status_id\": 0,\n \"upc\": \"string\",\n \"weight\": 0.1\n }\n ]\n}" response = http.request(request) puts response.read_body ``` ```java Products_updateASingleProductWithJsonMergePatchFunctionality_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.patch("https://api.shipbob.com/2025-07/product/productId") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"id\": 0,\n \"name\": \"string\",\n \"taxonomy_id\": 0,\n \"type_id\": 0,\n \"variants\": [\n {\n \"additional_hazmat_attributes\": {\n \"charge_state_percentage\": 0.1,\n \"container_type\": \"string\",\n \"lithium_battery_packaging\": \"string\",\n \"lithium_battery_type\": \"string\",\n \"magnet\": true,\n \"net_volume\": 0.1,\n \"net_weight\": 0.1,\n \"container_metal\": true\n },\n \"barcodes\": [\n {\n \"sticker_url\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"bundle_definition\": [\n {\n \"quantity\": 0,\n \"variant_id\": 0\n }\n ],\n \"channel_metadata\": [\n {\n \"asin\": \"string\",\n \"fnsku\": \"string\",\n \"fulfillment_channel\": \"string\",\n \"channel_id\": 0,\n \"currency\": \"string\",\n \"id\": 0,\n \"is_inventory_sync_enabled\": true,\n \"legacy_product_id\": 0,\n \"platform\": \"string\",\n \"platform_identifier\": \"string\",\n \"platform_inventory_item_id\": \"string\",\n \"price\": 0.1,\n \"seller_sku\": \"string\"\n }\n ],\n \"customs\": {\n \"country_code_of_origin\": \"string\",\n \"description\": \"string\",\n \"hs_tariff_code\": \"string\",\n \"is321_eligible\": true,\n \"value\": 0\n },\n \"dimension\": {\n \"height\": 0.1,\n \"length\": 0.1,\n \"width\": 0.1\n },\n \"fulfillment_settings\": {\n \"dangerous_goods\": true,\n \"is_bpm_parcel\": true,\n \"is_case_pick\": true,\n \"msds_url\": \"string\",\n \"requires_prop65\": true,\n \"serial_scan\": {\n \"exact_character_length\": 0,\n \"is_enabled\": true,\n \"prefix\": \"string\",\n \"suffix\": \"string\"\n }\n },\n \"gtin\": \"string\",\n \"id\": 0,\n \"is_digital\": true,\n \"lot_information\": {\n \"is_lot\": true,\n \"minimum_shelf_life_days\": 0\n },\n \"name\": \"string\",\n \"packaging_material_type_id\": 0,\n \"packaging_requirement_id\": 0,\n \"return_preferences\": {\n \"backup_action_id\": 0,\n \"instructions\": \"string\",\n \"primary_action_id\": 0,\n \"return_to_sender_backup_action_id\": 0,\n \"return_to_sender_primary_action_id\": 0\n },\n \"sku\": \"string\",\n \"status_id\": 0,\n \"upc\": \"string\",\n \"weight\": 0.1\n }\n ]\n}") .asString(); ``` ```php Products_updateASingleProductWithJsonMergePatchFunctionality_example request('PATCH', 'https://api.shipbob.com/2025-07/product/productId', [ 'body' => '{ "id": 0, "name": "string", "taxonomy_id": 0, "type_id": 0, "variants": [ { "additional_hazmat_attributes": { "charge_state_percentage": 0.1, "container_type": "string", "lithium_battery_packaging": "string", "lithium_battery_type": "string", "magnet": true, "net_volume": 0.1, "net_weight": 0.1, "container_metal": true }, "barcodes": [ { "sticker_url": "string", "value": "string" } ], "bundle_definition": [ { "quantity": 0, "variant_id": 0 } ], "channel_metadata": [ { "asin": "string", "fnsku": "string", "fulfillment_channel": "string", "channel_id": 0, "currency": "string", "id": 0, "is_inventory_sync_enabled": true, "legacy_product_id": 0, "platform": "string", "platform_identifier": "string", "platform_inventory_item_id": "string", "price": 0.1, "seller_sku": "string" } ], "customs": { "country_code_of_origin": "string", "description": "string", "hs_tariff_code": "string", "is321_eligible": true, "value": 0 }, "dimension": { "height": 0.1, "length": 0.1, "width": 0.1 }, "fulfillment_settings": { "dangerous_goods": true, "is_bpm_parcel": true, "is_case_pick": true, "msds_url": "string", "requires_prop65": true, "serial_scan": { "exact_character_length": 0, "is_enabled": true, "prefix": "string", "suffix": "string" } }, "gtin": "string", "id": 0, "is_digital": true, "lot_information": { "is_lot": true, "minimum_shelf_life_days": 0 }, "name": "string", "packaging_material_type_id": 0, "packaging_requirement_id": 0, "return_preferences": { "backup_action_id": 0, "instructions": "string", "primary_action_id": 0, "return_to_sender_backup_action_id": 0, "return_to_sender_primary_action_id": 0 }, "sku": "string", "status_id": 0, "upc": "string", "weight": 0.1 } ] }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp Products_updateASingleProductWithJsonMergePatchFunctionality_example using RestSharp; var client = new RestClient("https://api.shipbob.com/2025-07/product/productId"); var request = new RestRequest(Method.PATCH); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"id\": 0,\n \"name\": \"string\",\n \"taxonomy_id\": 0,\n \"type_id\": 0,\n \"variants\": [\n {\n \"additional_hazmat_attributes\": {\n \"charge_state_percentage\": 0.1,\n \"container_type\": \"string\",\n \"lithium_battery_packaging\": \"string\",\n \"lithium_battery_type\": \"string\",\n \"magnet\": true,\n \"net_volume\": 0.1,\n \"net_weight\": 0.1,\n \"container_metal\": true\n },\n \"barcodes\": [\n {\n \"sticker_url\": \"string\",\n \"value\": \"string\"\n }\n ],\n \"bundle_definition\": [\n {\n \"quantity\": 0,\n \"variant_id\": 0\n }\n ],\n \"channel_metadata\": [\n {\n \"asin\": \"string\",\n \"fnsku\": \"string\",\n \"fulfillment_channel\": \"string\",\n \"channel_id\": 0,\n \"currency\": \"string\",\n \"id\": 0,\n \"is_inventory_sync_enabled\": true,\n \"legacy_product_id\": 0,\n \"platform\": \"string\",\n \"platform_identifier\": \"string\",\n \"platform_inventory_item_id\": \"string\",\n \"price\": 0.1,\n \"seller_sku\": \"string\"\n }\n ],\n \"customs\": {\n \"country_code_of_origin\": \"string\",\n \"description\": \"string\",\n \"hs_tariff_code\": \"string\",\n \"is321_eligible\": true,\n \"value\": 0\n },\n \"dimension\": {\n \"height\": 0.1,\n \"length\": 0.1,\n \"width\": 0.1\n },\n \"fulfillment_settings\": {\n \"dangerous_goods\": true,\n \"is_bpm_parcel\": true,\n \"is_case_pick\": true,\n \"msds_url\": \"string\",\n \"requires_prop65\": true,\n \"serial_scan\": {\n \"exact_character_length\": 0,\n \"is_enabled\": true,\n \"prefix\": \"string\",\n \"suffix\": \"string\"\n }\n },\n \"gtin\": \"string\",\n \"id\": 0,\n \"is_digital\": true,\n \"lot_information\": {\n \"is_lot\": true,\n \"minimum_shelf_life_days\": 0\n },\n \"name\": \"string\",\n \"packaging_material_type_id\": 0,\n \"packaging_requirement_id\": 0,\n \"return_preferences\": {\n \"backup_action_id\": 0,\n \"instructions\": \"string\",\n \"primary_action_id\": 0,\n \"return_to_sender_backup_action_id\": 0,\n \"return_to_sender_primary_action_id\": 0\n },\n \"sku\": \"string\",\n \"status_id\": 0,\n \"upc\": \"string\",\n \"weight\": 0.1\n }\n ]\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Products_updateASingleProductWithJsonMergePatchFunctionality_example import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "id": 0, "name": "string", "taxonomy_id": 0, "type_id": 0, "variants": [ [ "additional_hazmat_attributes": [ "charge_state_percentage": 0.1, "container_type": "string", "lithium_battery_packaging": "string", "lithium_battery_type": "string", "magnet": true, "net_volume": 0.1, "net_weight": 0.1, "container_metal": true ], "barcodes": [ [ "sticker_url": "string", "value": "string" ] ], "bundle_definition": [ [ "quantity": 0, "variant_id": 0 ] ], "channel_metadata": [ [ "asin": "string", "fnsku": "string", "fulfillment_channel": "string", "channel_id": 0, "currency": "string", "id": 0, "is_inventory_sync_enabled": true, "legacy_product_id": 0, "platform": "string", "platform_identifier": "string", "platform_inventory_item_id": "string", "price": 0.1, "seller_sku": "string" ] ], "customs": [ "country_code_of_origin": "string", "description": "string", "hs_tariff_code": "string", "is321_eligible": true, "value": 0 ], "dimension": [ "height": 0.1, "length": 0.1, "width": 0.1 ], "fulfillment_settings": [ "dangerous_goods": true, "is_bpm_parcel": true, "is_case_pick": true, "msds_url": "string", "requires_prop65": true, "serial_scan": [ "exact_character_length": 0, "is_enabled": true, "prefix": "string", "suffix": "string" ] ], "gtin": "string", "id": 0, "is_digital": true, "lot_information": [ "is_lot": true, "minimum_shelf_life_days": 0 ], "name": "string", "packaging_material_type_id": 0, "packaging_requirement_id": 0, "return_preferences": [ "backup_action_id": 0, "instructions": "string", "primary_action_id": 0, "return_to_sender_backup_action_id": 0, "return_to_sender_primary_action_id": 0 ], "sku": "string", "status_id": 0, "upc": "string", "weight": 0.1 ] ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.shipbob.com/2025-07/product/productId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PATCH" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```