Как создать продукт и вариант в Craft commerce 5?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как создать продукт и вариант в Craft commerce 5?

Сообщение Anonymous »

Я получаю json-объект продукта, который необходимо создать в Craft Comemrce 5, но он создает продукт, но не удается создать вариант. Я пробовал использовать приведенные ниже подходы, но безуспешно.
  • Сохраните продукт, затем попробуйте сохранить вариант.
  • Создайте продукт и вариант одновременно. time $product->setVariants([$variant]);
Ниже мой код -

Код: Выделить всё

$product = new Product();
$product->typeId = $data['typeId']; // Product type ID
$product->title = 'Test';   // Product title
$product->enabled = $data['enabled'] ?? true; // Enabled status
$product->productDescription = $data['description'] ?? ''; // Description
$product->postDate = new \DateTime();
if (!\Craft::$app->elements->saveElement($product)) {
return false;
}

// Create a single default variant
$variant = new Variant();
$variant->productId = $product->id;
$variant->sku = "ABCD"; // SKU for the variant
$variant->price = 10.01; // Price
// $variant->stock = 1; // Stock level
$variant->hasUnlimitedStock = false; // Manage stock
$variant->isDefault = true; // Mark as default variant
$variant->availableForPurchase = true;
$variant->promotable = true;
$variant->taxCategoryId = 1;
$variant->shippingCategoryId = 1;

if (!\Craft::$app->elements->saveElement($variant)) {
// dd($product->getErrors());
// \Craft::error('Failed to save product with variants: ' . json_encode($product->getErrors()), __METHOD__);
return false;
}

$product->setVariants([$variant]);
if (!\Craft::$app->elements->saveElement($product)) {
Craft::error('Failed to save product with variants: ' . json_encode($product->getErrors()), __METHOD__);
return false;
}
Кроме того, я хочу сохранить акции, но получаю сообщение об ошибке, что атрибут «Акции» доступен только для чтения.

Подробнее здесь: https://stackoverflow.com/questions/792 ... commerce-5
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»