Tentative d'assignation de la propriété "price_currency_id" sur le tableau

  • Posts: 8
  • Thank you received: 2
1 year 7 months ago #350765

-- HikaShop version -- : 4.6.2
-- Joomla version -- : 4.2.8
-- PHP version -- : 8.2.0
-- Browser(s) name and version -- : Google Chrome 111.0.5563.146
-- Error-message(debug-mod must be tuned on) -- : Attempt to assign property "price_currency_id" on array

Bonjour,

Je suis sur le développement d'un plugin Hikashop. Lors de la création d'un produit et des prix, j'ai cette erreur qui s'affiche :

0 Attempt to assign property "price_currency_id" on array

Voici mon code :
// Ma classe 
class PriceModel
{
    
    public int $price_currency_id;
    public float $price_value;
    public int $price_min_quantity;

    public function __construct()
    {
        $this->price_currency_id = 1;
        $this->price_min_quantity = 0;
    }

}

$priceHika = new PriceModel;
$priceHika->price_value = $product->price_ttc;

En utilisant le code disponible ici => www.hikashop.com/support/documentation/6...r-documentation.html :
$product = new stdClass();
$product->product_name = 'My product';
$product->categories = array(17, 18); // an array of category ids linked to the product
$price = new stdClass();
$price->price_currency_id = 1;
$price->price_value = 9.99;
$price->price_min_quantity = 0;
$product->images = array(12, 20); // an array of ids from the hikashop_file table where you store the data of each image
// ...etc...
$productClass = hikashop_get('class.product');
$success = $productClass->save($product);
if($success) {
	$productClass->updateCategories($product, $success);
	$productClass->updatePrices($product, $success);
	$productClass->updateFiles($product, $success);
}
J'ai la même erreur.

Ligne 46 de ma classe "Product"
$hikashopProduct = new hikashopProductClass();
$success = $hikashopProduct->save($this->product);

if (!empty($this->product->prices))
{
        $hikashopProduct->updatePrices($this->product, $success);
}

// $this->product est mon objet contenant toutes les informations de mon produit

Voici le tableau de prix qui est dans $this->product->prices :
Array
(
    [0] => Systrio\Plugins\Hikabarr\Hikashop\Models\PriceModel Object
        (
            [price_currency_id] => 1
            [price_value] => 16000
            [price_min_quantity] => 0
        )

)

Est-ce qu'une personne saurait m'orienter pour régler mon problème ?

D'avance merci,
Bonne journée.

Attachments:
Last edit: 1 year 7 months ago by stevenoyer.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 7 months ago #350774

Bonjour,

Difficile à dire quoi que ce soit. Pourriez-vous fournir une copie du code complet du plugin ?
En tout cas, le code de la documentation ne génère pas cette erreur.
Le code de la documentation ne fourni même pas de $product->prices donc l'appel à updatePrices ne va pas généré cette erreur.

The following user(s) said Thank You: stevenoyer

Please Log in or Create an account to join the conversation.

  • Posts: 8
  • Thank you received: 2
1 year 7 months ago #350787

Bonjour Nicolas,

Merci pour votre réponse.

Effectivement je me suis trompé concernant le code de la documentation, je me suis aidé de ce post => www.hikashop.com/forum/install-update/90...-produit-en-php.html

J'ai vu que cette personne avait assigné les prix en procédant ainsi :

$product->prices = array($price);

Concernant le code du plugin, je vous en fait part sur votre messagerie privée.

Bonne journée.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 7 months ago #350788

Rebonjour,

C'est sympa que vous développiez un plugin pour cette plateforme.
Avez-vous intention de le rendre disponible pour d'autres ? J'imagine que d'autres utilisateurs de la communauté Française pourrait être intéressés par ce développement.

Concernant votre problématique sur le prix, le souci vient du code:

if (!empty($this->getPrices()))
        {
            $this->product->prices[] = $this->getPrices();
        }
dans la fonction save de votre class Product
getPrices retourne un array de prix et c'est ça que HikaShop n'aime pas.
J'imagine que ce que vous vouliez écrire c'est plutôt:
if (empty($this->getPrices()))
        {
            $this->product->prices = $this->getPrices();
        }

The following user(s) said Thank You: stevenoyer

Please Log in or Create an account to join the conversation.

  • Posts: 8
  • Thank you received: 2
1 year 7 months ago #350801

Rebonjour Nicolas,

Votre solution est fonctionnelle et je vous remercie de m'avoir aidé à régler mon problème.
En fonction de l'évolution du projet, il est envisageable qu'il soit rendu disponible pour d'autres. Nous vous tiendrons informés.

Merci pour votre temps,
Bonne journée.

The following user(s) said Thank You: nicolas

Please Log in or Create an account to join the conversation.

Time to create page: 0.061 seconds
Powered by Kunena Forum