[magento] В чем разница между isSaleable () и isAvailable ()?



Answers

Я вижу тех, у кого есть семантические различия. Элемент, который отсутствует на складе, все еще может быть продан, если указанный элемент настроен на разрешение обратных операций.

Насколько я могу судить, похоже, что isAvailable проверяет экземпляр типа продукта, чтобы узнать, может ли тип продукта быть isAvailable если он действительно доступен.

Поэтому, чтобы рискнуть предположить, когда вы можете выбрать один за другим:

Если вы проверяете отдельный продукт, чтобы убедиться, что данный продукт действительно готов к продаже, вы должны использовать isSalable() , поскольку он будет вызывать isAvailable() .

Чтобы проверить, может ли быть продан продукт (тип которого вы не знаете), я предположил, что пропуская шаг проверки типа продукта, вы можете вызвать isAvailable() на продукте.

isAvailable() проверяет, isAvailable() ли тип продукта.

isSalable() проверяет, isSalable() ли товар.

isSaleable() является псевдонимом isSalable() .

Question

Я работаю над отображением доступности акций на отдельной странице продукта моей темы Magento, и я кое-что не понимаю об этом.

Я вижу два метода, используемых в шаблонах, чтобы проверить, доступен ли продукт для продажи:

Mage_Catalog_Model_Product::isAvailable()
Mage_Catalog_Model_Product::isSaleable()

Мои собственные выводы:
Я вижу, что isSalable() (который в свою очередь вызывается isSaleable() ) вызывает isAvailable() но также отправляет два события ( catalog_product_is_salable_before и catalog_product_is_salable_after ).

На фронте я заметил, что в базовом шаблоне Magento isAvailable() используется, чтобы решить, показывать ли продукт как «на складе» или «нет на складе»; isSaleable() используется, чтобы решить что-то вроде того, показывать ли кнопку «Добавить в корзину».

На бэкэнд я заметил, что когда количество запасов становится равным нулю, а недостоверные данные не допускаются, доступность запаса продукта идет «на складе». Когда количество запасов становится равным нулю, а допустимые запасы допускаются, наличие запаса а продукта остается неизменным.

Вопрос:
Свойства «наличие запаса» и «количество запасов», очевидно, связаны между собой и упомянутыми методами PHP. Я бы хотел знать:

  • что семантическая разница между методами PHP isAvailable() и isSaleable() есть и почему я буду использовать один над другим;

  • что я, кажется, еще не знаю об их связи с этими свойствами и поведением Мадженто.

Спасибо.

РЕДАКТИРОВАТЬ:
Я пробовал каждую соответствующую комбинацию количества запасов (-1,0,1), наличия запаса (в / из) и резервных копий (вкл / выкл) для продукта, и это результат:

St.Qu  BckOrd  St.Av  isSalable()  isSaleable()  isAvailable()
   -1       0      0            0             0              0
   -1       0      1          N/A           N/A            N/A
   -1       1      0            0             0              0
   -1       1      1            1             1              1
    0       0      0            0             0              0
    0       0      1          N/A           N/A            N/A
    0       1      0            0             0              0
    0       1      1            1             1              1
    1       0      0            0             0              0
    1       0      1            1             1              1
    1       1      0            0             0              0
    1       1      1            1             1              1

Только ради полноты:

St.Av 0  = out of stock
St.Av 1  = in stock
BckOrd 0 = no backorders allowed
BckOrd 1 = backorders are allowed

Это переключатель доступности запаса в Magento, который контролирует возвращаемое значение всех методов PHP, но когда резервные копии отключены и количество запасов падает ниже 1, доступность запаса автоматически будет сброшена до «нет в наличии» (следовательно, N/A Строки).




isAvailable () используется для определения того, следует ли отображать продукт как на складе или вне его , а isSaleable () используется для определения того, показывать ли кнопку « Добавить в корзину» или нет.






Related