Merchant API code sample to delete a local inventory.

### Java

    // Copyright 2023 Google LLC
    //
    // Licensed under the Apache License, Version 2.0 (the "License");
    // you may not use this file except in compliance with the License.
    // You may obtain a copy of the License at
    //
    //     https://www.apache.org/licenses/LICENSE-2.0
    //
    // Unless required by applicable law or agreed to in writing, software
    // distributed under the License is distributed on an "AS IS" BASIS,
    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    // See the License for the specific language governing permissions and
    // limitations under the License.

    package shopping.merchant.samples.inventories.v1;
    import com.google.api.gax.core.FixedCredentialsProvider;
    import com.google.auth.oauth2.GoogleCredentials;
    import com.google.shopping.merchant.inventories.v1.DeleteLocalInventoryRequest;
    import com.google.shopping.merchant.inventories.v1.LocalInventoryName;
    import com.google.shopping.merchant.inventories.v1.LocalInventoryServiceClient;
    import com.google.shopping.merchant.inventories.v1.LocalInventoryServiceSettings;
    import shopping.merchant.samples.utils.Authenticator;
    import shopping.merchant.samples.utils.Config;

    /** This class demonstrates how to delete a Local inventory for a given product */
    public class DeleteLocalInventorySample {

      public static void deleteLocalInventory(Config config, String productId, String storeCode)
          throws Exception {
        GoogleCredentials credential = new Authenticator().authenticate();

        LocalInventoryServiceSettings localInventoryServiceSettings =
            LocalInventoryServiceSettings.newBuilder()
                .setCredentialsProvider(FixedCredentialsProvider.create(credential))
                .build();

        String name =
            LocalInventoryName.newBuilder()
                .setAccount(config.getAccountId().toString())
                .setProduct(productId)
                .setStoreCode(storeCode)
                .build()
                .toString();

        try (LocalInventoryServiceClient localInventoryServiceClient =
            LocalInventoryServiceClient.create(localInventoryServiceSettings)) {
          DeleteLocalInventoryRequest request =
              DeleteLocalInventoryRequest.newBuilder().setName(name).build();

          System.out.println("Sending deleteLocalInventory request");
          localInventoryServiceClient.deleteLocalInventory(request); // no response returned on success
          System.out.println(
              "Delete successful, note that it may take up to 30 minutes for the delete to update in"
                  + " the system.");
        }
      }

      public static void main(String[] args) throws Exception {
        Config config = Config.load();
        // An ID assigned to a product by Google. In the format
        // contentLanguage~feedLabel~offerId
        String productId = "en~label~1111111111";
        // The ID uniquely identifying each region.
        String storeCode = "EXAMPLE";

        deleteLocalInventory(config, productId, storeCode);
      }
    }

### PHP

    <?php

    /**
     * Copyright 2023 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     https://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */

    require_once __DIR__ . '/../../../vendor/autoload.php';
    require_once __DIR__ . '/../../Authentication/Authentication.php';
    use Google\ApiCore\ApiException;
    use Google\Shopping\Merchant\Inventories\V1\Client\LocalInventoryServiceClient;
    use Google\Shopping\Merchant\Inventories\V1\DeleteLocalInventoryRequest;

    /**
     * Deletes the specified `LocalInventory` resource from the given product
     * in your merchant account.  It might take up to an hour for the
     * `LocalInventory` to be deleted from the specific product.
     * Once you have received a successful delete response, wait for that
     * period before attempting a delete again.
     */

    class DeleteLocalInventory
    {

        // ENSURE you fill in the merchant account, product, and region ID for the
        // sample to work.
        private const ACCOUNT = 'INSERT_ACCOUNT_ID_HERE';
        private const PRODUCT = 'INSERT_PRODUCT_ID_HERE';
        private const STORE_CODE = 'INSERT_STORE_CODE_HERE';

        /**
         * Deletes a specific local inventory of a given product.
         *
         * @param string $formattedName The name of the `LocalInventory` resource
         * to delete.
         *     Format: `accounts/{account}/products/{product}/localInventories/{store_code}`
         *     Please see {@see LocalInventoryServiceClient::localInventoryName()}
         *     for help formatting this field.
         */
        function deleteLocalInventorySample(string $formattedName): void
        {
             // Gets the OAuth credentials to make the request.
             $credentials = Authentication::useServiceAccountOrTokenFile();

             // Creates options config containing credentials for the client to use.
             $options = ['credentials' => $credentials];

             // Creates a client.
             $localInventoryServiceClient = new LocalInventoryServiceClient($options);

            // Prepare the request message.
            $request = (new DeleteLocalInventoryRequest())
                ->setName($formattedName);

             // Calls the API and catches and prints any network failures/errors.
             try {
                 $localInventoryServiceClient->deleteLocalInventory($request);
                 print 'Delete call completed successfully.' . PHP_EOL;
             } catch (ApiException $ex) {
                 printf('Call failed with message: %s%s', $ex->getMessage(), PHP_EOL);
             }
        }

        /**
         * Helper to execute the sample.
         */
        function callSample(): void
        {
            // These variables are defined at the top of the file.
            $formattedName = LocalInventoryServiceClient::localInventoryName(
                $this::ACCOUNT,
                $this::PRODUCT,
                $this::STORE_CODE
            );

            // Deletes the specific local inventory of the parent product.
            $this->deleteLocalInventorySample($formattedName);
        }
    }


    $sample = new DeleteLocalInventory();
    $sample->callSample();

### Python

    # -*- coding: utf-8 -*-
    # Copyright 2024 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    """A module to delete a Local Inventory."""

    from examples.authentication import configuration
    from examples.authentication import generate_user_credentials
    from google.shopping import merchant_inventories_v1

    # ENSURE you fill in the product ID and store code
    # for the sample to work.
    _ACCOUNT = configuration.Configuration().read_merchant_info()
    _PRODUCT = "[INSERT_PRODUCT_HERE]"
    _STORE_CODE = "[INSERT_STORE_CODE_HERE]"
    _NAME = (f"accounts/{_ACCOUNT}/products/{_PRODUCT}/localInventories/"
             f"{_STORE_CODE}")


    def delete_local_inventory():
      """Deletes the specified `LocalInventory` resource from the given product.

      It might take up to an hour for the `LocalInventory` to be deleted
      from the specific product. Once you have received a successful delete
      response, wait for that period before attempting a delete again.
      """

      # Gets OAuth Credentials.
      credentials = generate_user_credentials.main()

      # Creates a client.
      client = merchant_inventories_v1.LocalInventoryServiceClient(
          credentials=credentials)

      # Creates the request.
      request = merchant_inventories_v1.DeleteLocalInventoryRequest(name=_NAME)

      # Makes the request and catch and print any error messages.
      try:
        client.delete_local_inventory(request=request)
        print("Delete successful")
      except RuntimeError as e:
        print("Delete failed")
        print(e)


    if __name__ == "__main__":
      delete_local_inventory()